import { Component, OnInit } from '@angular/core'; import { FormGroup, FormControl, Validators } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { UikitAuthService } from '@bit/dapi.lib-uikit-auth.uikit-auth/dist/uikit-auth' import { SessionService } from 'src/app/services/session/session.service'; import { loginVariables } from '../login/variables'; @Component({ selector: 'app-sign-up', templateUrl: './sign-up.component.html', styleUrls: ['./sign-up.component.scss'] }) export class SignUpComponent implements OnInit { redirectUri = '' loginVariables: any signUpAppear = false errorMessage = false signUpForm = new FormGroup({ email: new FormControl('', [ Validators.required, Validators.pattern('^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$'), ]), name: new FormControl('',Validators.required) }) constructor( private router: Router, private route: ActivatedRoute, private sessionService: SessionService, private snackBarService: UikitAuthService, ) { this.redirectUri = this.route.snapshot.queryParamMap.get('redirect_uri') this.loginVariables = loginVariables.admin } ngOnInit() { this.sessionService .verifyRedirectUri(this.redirectUri) .then((isValid: boolean) => { isValid ? (this.signUpAppear = true) : this.router.navigate(['invalid']) }) .catch((err) => { console.error(err) this.router.navigate(['invalid']) }) } /** * Register User * * @memberof SignUpComponent */ signUp(){ let userCreate = { ...this.signUpForm.value, has_admin_access: true, has_robotinuum_studio_access: true, has_apptinuum_access: true, has_robotinuum_access: true, isActive: true } this.sessionService.signUp(userCreate) .then((result:any) => { const username = result.User.Attributes.find(attr => attr.Name === "name").Value this.snackBarService.openSnackBar('The user '+ username +' has been registered successfully') result.statusCode===401 ? this.snackBarService.openSnackBar("The user hasn't been registered, please contact your administrator") : this.router.navigate([''], { queryParams: { redirect_uri: this.redirectUri }}) }) .catch((err) => { this.snackBarService.openSnackBar(err.error ? err.error : "The user hasn't been registered") }) } }