@quinck/aws-cognito-client
Version:
Provides a user attributes generic cognito client.
68 lines (67 loc) • 2.46 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CognitoUserService = void 0;
require("@quinck/collections");
const basic_cognito_service_1 = require("./basic-cognito-service");
class CognitoUserService extends basic_cognito_service_1.BasicCognitoService {
constructor(config) {
super(config);
this.clientId = config.clientId;
}
signUp(credentials, user) {
return this.tryDo(async () => {
const attributes = this.createAttributesFromObject(this.fitSignUpInfo(user), false);
const { password, username } = credentials;
await this.cognitoIdentityProvider.signUp({
Username: username,
Password: password,
UserAttributes: attributes,
ClientId: this.clientId,
});
});
}
async confirmSignUp(username, code) {
return this.tryDo(async () => {
await this.cognitoIdentityProvider.confirmSignUp({
ClientId: this.clientId,
ConfirmationCode: code,
Username: username,
});
});
}
async resendConfirmationCode(username) {
return this.tryDo(async () => {
await this.cognitoIdentityProvider.resendConfirmationCode({
ClientId: this.clientId,
Username: username,
});
});
}
getUserInfo(token) {
return this.tryDo(async () => {
const { Username, UserAttributes } = await this.cognitoIdentityProvider.getUser({
AccessToken: token.accessToken,
});
const attributes = this.parseUserAttributes(UserAttributes ?? []);
return this.createUserInfo(Username ?? '', attributes);
});
}
updateUserInfo(token, user) {
return this.tryDo(async () => {
const info = this.fitUserUpdateInfo(user);
const UserAttributes = this.createAttributesFromObject(info, false);
await this.cognitoIdentityProvider.updateUserAttributes({
AccessToken: token.accessToken,
UserAttributes,
});
});
}
deleteUser(token) {
return this.tryDo(async () => {
await this.cognitoIdentityProvider.deleteUser({
AccessToken: token.accessToken,
});
});
}
}
exports.CognitoUserService = CognitoUserService;