2017-08-15 15:59:43 +01:00
import { Component } from '@angular/core' ;
import { Validators , FormBuilder , FormGroup } from '@angular/forms' ;
2017-09-19 14:48:22 +01:00
import { ValidationManager } from 'ng2-validation-manager' ;
2017-08-15 15:59:43 +01:00
import { ApiService } from '../providers/api-service' ;
import { Router } from '@angular/router' ;
import 'rxjs/add/operator/map' ;
@Component ( {
templateUrl : 'register.component.html' ,
} )
export class RegisterComponent {
signupForm : ValidationManager ;
customerForm : ValidationManager ;
organisationForm : ValidationManager ;
years : Object [ ] ;
2017-08-24 17:09:01 +01:00
registerStatus : any ;
2017-09-19 14:48:22 +01:00
registerStatusError = 'Error received, please try again.' ;
2017-09-15 17:33:34 +01:00
2017-08-15 15:59:43 +01:00
constructor (
2017-09-19 14:48:22 +01:00
private formBuilder : FormBuilder ,
private router : Router ,
private api : ApiService ,
) {
this . years = [ ] ;
const max = new Date ( ) . getFullYear ( ) - 10 ,
min = max - 140 ;
2017-08-15 15:59:43 +01:00
2017-09-19 14:48:22 +01:00
for ( let i = max ; i >= min ; i -- ) {
this . years . push ( i ) ;
}
this . signupForm = new ValidationManager ( {
token : 'required' ,
usertype : 'required' ,
email : 'required|email' ,
password : 'required' ,
confirmpassword : 'required|equalTo:password'
} ) ;
this . customerForm = new ValidationManager ( {
display_name : 'required' ,
full_name : 'required' ,
postcode : 'required' ,
year_of_birth : 'required' ,
} ) ;
this . organisationForm = new ValidationManager ( {
name : 'required' ,
2017-08-15 15:59:43 +01:00
sector : 'required' ,
2017-09-19 14:48:22 +01:00
street_name : 'required' ,
town : 'required' ,
postcode : 'required' ,
} ) ;
2017-08-15 15:59:43 +01:00
}
2017-09-15 17:33:34 +01:00
2017-08-15 15:59:43 +01:00
onSubmitCustomer() {
2017-09-15 17:33:34 +01:00
2017-08-15 15:59:43 +01:00
console . log ( this . signupForm . isValid ( ) ) ;
2017-09-19 14:48:22 +01:00
if ( ! this . signupForm . isValid ( ) && ! this . customerForm . isValid ( ) ) {
console . log ( 'Not Valid!' ) ;
this . registerStatus = 'validation_failed' ;
2017-08-24 17:09:01 +01:00
console . log ( this . registerStatus ) ;
2017-09-19 14:48:22 +01:00
return ;
}
const signupForm = this . signupForm . getForm ( ) . value ;
const customerForm = this . customerForm . getForm ( ) . value ;
2017-09-15 17:33:34 +01:00
2017-09-19 14:48:22 +01:00
const data = {
token : signupForm.token ,
usertype : signupForm.usertype ,
email : signupForm.email ,
password : signupForm.password ,
display_name : customerForm.display_name ,
full_name : customerForm.full_name ,
postcode : customerForm.postcode ,
year_of_birth : customerForm.year_of_birth ,
} ;
console . log ( data ) ;
this . api
2017-08-15 15:59:43 +01:00
. register ( data )
. subscribe (
result = > {
console . log ( 'registered!' ) ;
2017-09-19 14:48:22 +01:00
this . registerStatus = 'success' ;
2017-08-25 12:18:14 +01:00
console . log ( this . registerStatus ) ;
2017-09-19 14:48:22 +01:00
this . router . navigate ( [ '/dashboard' ] ) ;
2017-08-15 15:59:43 +01:00
} ,
error = > {
2017-09-15 17:33:34 +01:00
console . log ( 'Register Error' ) ;
console . log ( error ) ;
try {
console . log ( error . error ) ;
2017-09-19 14:48:22 +01:00
const jsonError = error . json ( ) ;
console . log ( 'boop' ) ;
2017-09-15 17:33:34 +01:00
this . registerStatusError = '"' + jsonError . error + '" Error, ' + jsonError . message ;
2017-09-19 14:48:22 +01:00
} catch ( e ) {
2017-09-15 17:33:34 +01:00
this . registerStatusError = 'There was a server error, please try again later.' ;
}
2017-09-19 14:48:22 +01:00
this . registerStatus = 'send_failed' ;
2017-09-15 17:33:34 +01:00
console . log ( this . registerStatus ) ;
2017-08-15 15:59:43 +01:00
}
) ;
}
onSubmitOrganisation() {
2017-09-15 17:33:34 +01:00
2017-08-15 15:59:43 +01:00
console . log ( this . signupForm . isValid ( ) ) ;
2017-09-19 14:48:22 +01:00
if ( ! this . signupForm . isValid ( ) || ! this . organisationForm . isValid ( ) ) {
console . log ( 'Not Valid!' ) ;
this . registerStatus = 'validation_failed' ;
2017-08-24 17:09:01 +01:00
console . log ( this . registerStatus ) ;
2017-09-19 14:48:22 +01:00
return ;
}
const signupForm = this . signupForm . getForm ( ) . value ;
const organisationForm = this . organisationForm . getForm ( ) . value ;
2017-09-15 17:33:34 +01:00
2017-09-19 14:48:22 +01:00
const data = {
token : signupForm.token ,
usertype : signupForm.usertype ,
email : signupForm.email ,
password : signupForm.password ,
name : organisationForm.name ,
2017-08-15 15:59:43 +01:00
sector : organisationForm.sector ,
2017-09-19 14:48:22 +01:00
street_name : organisationForm.street_name ,
town : organisationForm.town ,
postcode : organisationForm.postcode ,
} ;
console . log ( data ) ;
this . api
2017-08-15 15:59:43 +01:00
. register ( data )
. subscribe (
result = > {
console . log ( 'registered!' ) ;
2017-09-19 14:48:22 +01:00
this . registerStatus = 'success' ;
2017-08-24 17:09:01 +01:00
console . log ( this . registerStatus ) ;
this . router . navigate ( [ '/dashboard' ] ) ;
2017-08-15 15:59:43 +01:00
} ,
error = > {
2017-09-15 17:33:34 +01:00
console . log ( 'Register Error' ) ;
console . log ( error ) ;
try {
console . log ( error . error ) ;
2017-09-19 14:48:22 +01:00
const jsonError = error . json ( ) ;
console . log ( 'boop' ) ;
2017-09-15 17:33:34 +01:00
this . registerStatusError = '"' + jsonError . error + '" Error, ' + jsonError . message ;
2017-09-19 14:48:22 +01:00
} catch ( e ) {
2017-09-15 17:33:34 +01:00
this . registerStatusError = 'There was a server error, please try again later.' ;
}
2017-09-19 14:48:22 +01:00
this . registerStatus = 'send_failed' ;
2017-08-24 17:09:01 +01:00
console . log ( this . registerStatus ) ;
2017-08-15 15:59:43 +01:00
}
) ;
}
2017-09-08 15:22:15 +01:00
}