diff --git a/db.json b/db.json index 48bd32d..2f1f6b5 100644 --- a/db.json +++ b/db.json @@ -6059,6 +6059,18 @@ "email": "coco@mail.com", "password": "$2a$10$UdJi398SK6x93IFAWNbYK.KlhZ.20E6vF7v/Va1HplivYQWrMMl2G", "id": 2 + }, + { + "email": "julian@mail.com", + "password": "$2a$10$Zvontm1V.XFZRRR7wE6vnuFlRBknKOZEPKnI1sLKes4uSa8HM7ci6", + "id": 3 + }, + { + "email": "zfzz@efzefz.com", + "password": "$2a$10$KVxyOURcblApZM4QvdxbzeodcCm9y3sxJHTsEdiI/nNxK36mHIMQy", + "firstName": "zfzfz", + "lastName": "fzfzfz", + "id": 4 } ] -} +} \ No newline at end of file diff --git a/src/app/modules/account/account.module.ts b/src/app/modules/account/account.module.ts index 525ccb9..babf4fb 100644 --- a/src/app/modules/account/account.module.ts +++ b/src/app/modules/account/account.module.ts @@ -6,7 +6,7 @@ import { PageSigninComponent } from './pages/page-signin/page-signin.component'; import { PageSignupnComponent } from './pages/page-signupn/page-signupn.component'; import { PageForgotPasswordComponent } from './pages/page-forgot-password/page-forgot-password.component'; import { PageResetPasswordComponent } from './pages/page-reset-password/page-reset-password.component'; -import { FormsModule } from '@angular/forms'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @NgModule({ @@ -19,7 +19,8 @@ import { FormsModule } from '@angular/forms'; imports: [ CommonModule, AccountRoutingModule, - FormsModule + FormsModule, + ReactiveFormsModule ] }) export class AccountModule { } diff --git a/src/app/modules/account/models/user.ts b/src/app/modules/account/models/user.ts new file mode 100644 index 0000000..a5f3b02 --- /dev/null +++ b/src/app/modules/account/models/user.ts @@ -0,0 +1,6 @@ +export interface User { + firstName: string; + lastName: string; + email: string; + password?: string; +} diff --git a/src/app/modules/account/pages/page-signin/page-signin.component.html b/src/app/modules/account/pages/page-signin/page-signin.component.html index 7168c8f..b8539ef 100644 --- a/src/app/modules/account/pages/page-signin/page-signin.component.html +++ b/src/app/modules/account/pages/page-signin/page-signin.component.html @@ -1 +1,44 @@ -

page-signin works!

+ +
+
+
+

Merci de vous connecter

+
+ + +
+
+ + +
+ + + +
+ +
+

Il manque des informations dans le formulaire...

+
+
+
diff --git a/src/app/modules/account/pages/page-signin/page-signin.component.scss b/src/app/modules/account/pages/page-signin/page-signin.component.scss index e69de29..c417d4e 100644 --- a/src/app/modules/account/pages/page-signin/page-signin.component.scss +++ b/src/app/modules/account/pages/page-signin/page-signin.component.scss @@ -0,0 +1,32 @@ +.signin-form { + height: 100vh; + padding-top: 40px; + background-color: #f5f5f5; +} + +.form-signin { + width: 100%; + max-width: 330px; + padding: 15px; + margin: auto; +} + +.form-signin .checkbox { + font-weight: 400; +} + +.form-signin .form-floating:focus-within { + z-index: 2; +} + +.form-signin input[type="email"] { + margin-bottom: -1px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.form-signin input[type="password"] { + margin-bottom: 10px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} \ No newline at end of file diff --git a/src/app/modules/account/pages/page-signin/page-signin.component.ts b/src/app/modules/account/pages/page-signin/page-signin.component.ts index 5bc2118..2d8f6bf 100644 --- a/src/app/modules/account/pages/page-signin/page-signin.component.ts +++ b/src/app/modules/account/pages/page-signin/page-signin.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { AuthService } from '../../services/auth.service'; @Component({ selector: 'app-page-signin', @@ -7,9 +8,29 @@ import { Component, OnInit } from '@angular/core'; }) export class PageSigninComponent implements OnInit { - constructor() { } + public errorForm: boolean; + + constructor( + private authService: AuthService) { + this.errorForm = false; + } ngOnInit(): void { } + onSubmit(objectForm: any): void { + console.log(objectForm.form.value); + const email = objectForm.form.value.email; + const password = objectForm.form.value.password; + + if(email !== '' && password !== '') { + this.authService.signin(email, password).subscribe( + resp => console.log(resp) + ); + } else { + //Afficher une erreur à l'utilisateur + this.errorForm = true; + } + } + } diff --git a/src/app/modules/account/pages/page-signupn/page-signupn.component.html b/src/app/modules/account/pages/page-signupn/page-signupn.component.html index 7dd5243..ff02785 100644 --- a/src/app/modules/account/pages/page-signupn/page-signupn.component.html +++ b/src/app/modules/account/pages/page-signupn/page-signupn.component.html @@ -1,18 +1,66 @@
-
+

Merci de vous inscrire

- - + +
- + + +
+
+ + + +
+
+ +
- + +
\ No newline at end of file diff --git a/src/app/modules/account/pages/page-signupn/page-signupn.component.ts b/src/app/modules/account/pages/page-signupn/page-signupn.component.ts index f624bec..cd5e696 100644 --- a/src/app/modules/account/pages/page-signupn/page-signupn.component.ts +++ b/src/app/modules/account/pages/page-signupn/page-signupn.component.ts @@ -1,4 +1,6 @@ import { Component, OnInit } from '@angular/core'; +import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; import { AuthService } from '../../services/auth.service'; @Component({ @@ -8,19 +10,53 @@ import { AuthService } from '../../services/auth.service'; }) export class PageSignupnComponent implements OnInit { - constructor(private authService: AuthService) { } + signupForm : FormGroup; + + constructor( + private authService: AuthService, + private router: Router + ) { + this.signupForm = new FormGroup({}); + } ngOnInit(): void { + this.signupForm = new FormGroup({ + firstNameFc: new FormControl(''), + lastNameFc: new FormControl(''), + emailFc: new FormControl('', [Validators.required, Validators.email, Validators.pattern(/^([\w\.\-_]+)?\w+@[\w-_]+(\.\w+){1,}/igm)]), + passwordFc: new FormControl('', [Validators.minLength(8), Validators.required]) + }); } - public onSubmit(objectForm: any): void { - console.log(objectForm.form.value); - const email = objectForm.form.value.email; + public onSubmit(): void { + console.log("value : ", this.signupForm.value); + console.log(this.signupForm); + const firstName = this.signupForm.value['firstNameFc']; + const lastName = this.signupForm.value['lastNameFc']; + const email = this.signupForm.value['emailFc']; + const password = this.signupForm.value['passwordFc']; + const user = { + firstName: firstName, + lastName: lastName, + email: email, + password: password + } + + if(email !== '' && password !== '') { + this.authService.signup(user).subscribe( + resp => { + this.router.navigate(['account/signin']); + } + ) + } else { + + } + /*const email = objectForm.form.value.email; const password = objectForm.form.value.password; this.authService.signup(email, password).subscribe( resp => console.log(resp) - ); + );*/ } } diff --git a/src/app/modules/account/services/auth.service.ts b/src/app/modules/account/services/auth.service.ts index ab43bdc..e7fcd45 100644 --- a/src/app/modules/account/services/auth.service.ts +++ b/src/app/modules/account/services/auth.service.ts @@ -2,6 +2,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; +import { User } from '../models/user'; @Injectable({ providedIn: 'root' @@ -13,12 +14,25 @@ export class AuthService { this.apiUrl = environment.apiUrl; } - signup(email: string, password: string): Observable { - const body = { - email: email, - password: password - }; + signup(newUser: User): Observable { + // const body = { + // firstName: firstName, + // lastName: lastName, + // email: email, + // password: password + // }; - return this.http.post(`${this.apiUrl}/register`, body); + console.log("newUser : ", newUser); + + return this.http.post(`${this.apiUrl}/register`, newUser); + } + + signin(email: string, password: string): Observable { + const body = { + email: email, + password: password + }; + + return this.http.post(`${this.apiUrl}/login`, body); } }