File tree Expand file tree Collapse file tree 5 files changed +47
-18
lines changed
Expand file tree Collapse file tree 5 files changed +47
-18
lines changed Original file line number Diff line number Diff line change 22from fastapi .responses import HTMLResponse
33from fastapi .templating import Jinja2Templates
44from pathlib import Path
5+ import requests
6+ from src .config import Settings
57
8+ from src import models
9+ from src import app
610# from app import TEMPLATES
711
812router = APIRouter (
1519
1620@router .get ("/" )
1721def home (request : Request , response_model = HTMLResponse ):
18-
1922 return TEMPLATES .TemplateResponse ("home/index.html" , {"request" : request })
2023
2124@router .get ("/login" )
22- def login (request : Request , response_model = HTMLResponse ):
25+ def signin (request : Request , response_model = HTMLResponse ):
2326 return TEMPLATES .TemplateResponse ("accounts/login.html" , {"request" : request })
2427
2528@router .get ("/register" )
2629def register (request : Request , response_model = HTMLResponse ):
2730 return TEMPLATES .TemplateResponse ("accounts/register.html" , {"request" : request })
28-
29- @router .post ("/register" )
30- async def register (request : Request ):
31- data = await request .form ()
32- print (data )
33-
34-
35- return TEMPLATES .TemplateResponse ("accounts/register.html" , {"request" : request })
Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ <h3 class="font-weight-bolder text-info text-gradient">
3838 </ div >
3939 < div class ="card-body ">
4040
41- < form role ="form text-left " method ="post " action ="/api/auth ">
41+ < form role ="form text-left " method ="post " action ="{{ url_for('login') }} ">
4242
4343 < label > Username</ label >
4444 < div class ="mb-3 ">
@@ -55,7 +55,7 @@ <h3 class="font-weight-bolder text-info text-gradient">
5555 </ div >
5656
5757 < div class ="text-center ">
58- < a href ="" class ="btn bg-gradient-secondary w-100 mt-4 mb-0 "> Sign UP</ a >
58+ < a href ="{{ url_for('register')}} " class ="btn bg-gradient-secondary w-100 mt-4 mb-0 "> Sign UP</ a >
5959 </ div >
6060
6161 </ form >
Original file line number Diff line number Diff line change @@ -65,9 +65,7 @@ <h5>Sign UP</h5>
6565
6666 {% else %}
6767
68- < form role ="form text-left " method ="post " action ="{{ url_for('register') }} ">
69-
70-
68+ < form id ="register_form " action ="{{ url_for('create_user') }} " data-successful_redirect ="{{ url_for('signin') }} " role ="form text-left ">
7169 < label > Username</ label >
7270 < div class ="mb-3 ">
7371 < input type ="text " name ="username " id ="username " placeholder ="username " class ="form-control ">
@@ -86,11 +84,47 @@ <h5>Sign UP</h5>
8684 </ div >
8785
8886 < div class ="text-center ">
89- < a href ="{{ url_for('login ') }} " class ="btn bg-gradient-secondary w-100 mt-4 mb-0 "> Sign IN</ a >
87+ < a href ="{{ url_for('signin ') }} " class ="btn bg-gradient-secondary w-100 mt-4 mb-0 "> Sign IN</ a >
9088 </ div >
9189
9290 </ form >
93-
91+ < script >
92+ let register_form = document . querySelector ( '#register_form' )
93+
94+ register_form . addEventListener ( 'submit' , async function ( event ) {
95+ event . preventDefault ( )
96+ let form_action = register_form . action
97+ let email = register_form . querySelector ( '#email' ) . value
98+ let username = register_form . querySelector ( '#username' ) . value
99+ let password = register_form . querySelector ( '#password' ) . value
100+
101+ let new_user = {
102+ 'email' : email ,
103+ 'username' : username ,
104+ 'password' : password
105+ }
106+
107+ fetch ( form_action , {
108+ method : "POST" ,
109+ headers : { 'Content-Type' : 'application/json' } ,
110+ body : JSON . stringify ( new_user )
111+
112+ } ) . then ( res => {
113+ console . log ( res . status )
114+ if ( res . status == 201 ) {
115+ register_form . reset ( )
116+ alert ( 'success, now signin' )
117+ window . location . href = register_form . dataset . successful_redirect
118+ } else {
119+ alert ( 'something went wrong' )
120+ }
121+
122+ } )
123+
124+ } )
125+
126+
127+ </ script >
94128 {% endif %}
95129
96130 </ div >
Original file line number Diff line number Diff line change 1515 < ul class ="navbar-nav mx-auto ms-xl-auto ">
1616
1717 < li class ="nav-item ">
18- < a class ="nav-link me-2 " href ="">
18+ < a class ="nav-link me-2 " href ="{{ url_for('register') }} ">
1919 < i class ="fas fa-user-circle opacity-6 me-1 "> </ i >
2020 Sign Up
2121 </ a >
You can’t perform that action at this time.
0 commit comments