You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aConnect-UX/src/app/user-management/third-party-registration/third-party-registration.co...

71 lines
2.8 KiB
TypeScript

import { CommonModule } from '@angular/common';
import { Component, OnInit, ViewChild } from '@angular/core';
import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
import { NgSelectModule } from '@ng-select/ng-select';
import { PasswordHideShowComponent } from '../../shared/components/password-hide-show/password-hide-show.component';
import { pageSizeOptions } from '../../utils/app.constants';
import { URIKey } from '../../utils/uri-enums';
import { HttpURIService } from '../../app.http.uri.service';
@Component({
selector: 'app-third-party-registration',
imports: [TranslateModule, CommonModule, FormsModule, ReactiveFormsModule, PasswordHideShowComponent, NgSelectModule ],
templateUrl: './third-party-registration.component.html',
styleUrl: './third-party-registration.component.scss'
})
export class ThirdPartyRegistrationComponent implements OnInit {
thirdPartyRegForm! : FormGroup;
searchText: string = '';
passwordType: string = 'password';
renewalDataExpanded = true;
pageSizeOptions = pageSizeOptions;
itemsPerPage: number = 5;
constructor(private fb: FormBuilder, private httpURIService: HttpURIService){}
@ViewChild(PasswordHideShowComponent) passwordHideShow?: PasswordHideShowComponent;
togglePasswordType() {
this.passwordType = this.passwordHideShow?.showPassword ? 'password' : 'text';
}
ngOnInit(): void{
this.thirdPartyRegForm = this.fb.group({
thirdPartyId: ['', [Validators.required]],
thirdPartyName: ['',[Validators.required]],
email: ['',[Validators.required, Validators.email]],
address: ['',[Validators.required]],
phoneNumber: ['',[Validators.required, Validators.pattern('^[0-9]{10}$') ], ],
newNumberOfAccounts: ['',[Validators.required]],
password: ['',[Validators.required, Validators.minLength(6)]],
});
}
get passwordError(){
const control = this.thirdPartyRegForm.get('password');
if (!control || !control.touched) return null;
if (control.hasError('minlength')) return 'passwordTooShort';
return null;
}
onSubmit(){
if(this.thirdPartyRegForm.invalid){return}
const payload = {
thirdPartyId: this.thirdPartyRegForm.value.thirdPartyId,
thirdPartyName: this.thirdPartyRegForm.value.thirdPartyName,
email: this.thirdPartyRegForm.value.email,
address: this.thirdPartyRegForm.value.address,
phoneNumber: this.thirdPartyRegForm.value.phoneNumber,
newNumberOfAccounts: this.thirdPartyRegForm.value.newNumberOfAccounts,
password: this.thirdPartyRegForm.value.password
};
this.httpURIService.requestPOST(URIKey.THIRD_PARTY_REGISTER_URI, payload)
.subscribe();
}
}