// tslint:disable
/*
* Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0/
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
// tslint:enable
import { Component, Input } from '@angular/core';
import { AmplifyService, AuthState } from '../../../providers';
import { includes } from '../common';
const template = `
`
@Component({
selector: 'amplify-auth-sign-in-core',
template: template
})
export class SignInComponentCore {
_authState: AuthState;
_show: boolean;
username: string;
password: string;
errorMessage: string;
amplifyService: AmplifyService;
constructor(amplifyService: AmplifyService) {
this.amplifyService = amplifyService;
}
@Input()
set authState(authState: AuthState) {
this._authState = authState;
this._show = includes(['signIn', 'signedOut', 'signedUp'], authState.state);
this.username = authState.user? authState.user.username || '' : '';
}
setUsername(username: string) {
this.username = username;
}
setPassword(password: string) {
this.password = password;
}
onSignIn() {
this.amplifyService.auth().signIn(this.username, this.password)
.then(user => {
if (user['challengeName'] === 'SMS_MFA' || user['challengeName'] === 'SOFTWARE_TOKEN_MFA') {
this.amplifyService.setAuthState({ state: 'confirmSignIn', user: user });
} else if (user['challengeName'] === 'NEW_PASSWORD_REQUIRED') {
this.amplifyService.setAuthState({ state: 'requireNewPassword', user: user });
} else {
this.amplifyService.setAuthState({ state: 'signedIn', user: user });
}
})
.catch((err) => {
this._setError(err);
});
}
onAlertClose() {
this._setError(null);
}
onForgotPassword() {
const user = this.username? { username: this.username } : null;
this.amplifyService.setAuthState({ state: 'forgotPassword', user: user });
}
onSignUp() {
const user = this.username? { username: this.username } : null;
this.amplifyService.setAuthState({ state: 'signUp', user: user });
}
_setError(err) {
if (!err) {
this.errorMessage = null;
return;
}
this.errorMessage = err.message || err;
}
}