Я хочу создать пользователя Cognito и назначить пользователя группе пользователей одновременно .когда вам нужно создать наблюдаемое, это хорошо для меня.Но когда нужно создать наблюдаемую, которая делает два запроса, я не работаю.Я думаю, что мы должны использовать forkJoin
или flatMap
.Я использую Angular 7, поэтому RxJs 6.x.
Создать код ОК:
createUser(user: User): Observable<User[]> {
const _self = this;
const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider({
credentials: this.getCognitoCreds()
});
const params = {
UserPoolId: this.poolData.UserPoolId,
Username: user.username,
DesiredDeliveryMediums: [ 'EMAIL' ],
ForceAliasCreation: false,
MessageAction: 'SUPPRESS',
TemporaryPassword: '1234fooo*',
UserAttributes: [
{
Name: 'email',
Value: user.email
}
]
};
return Observable.create(obs => {
cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) {
if (error) {
console.log(error);
return Observable.throw(error || 'Server error');
} else {
console.log(data);
//
//
// HERE user is create :)
// I want add to group here (see code down in this post)
//
//
return obs.next(data);
}
});
});
}
Добавить код группы ОК:
const p = {
GroupName: 'admin',
UserPoolId: _self.poolData.UserPoolId,
Username: user.username
};
return Observable.create(o => {
cognitoidentityserviceprovider.adminAddUserToGroup(p, function(err, d) {
if (err) {
console.log(err);
return Observable.throw(err || 'Server error');
} else {
console.log(d);
return o.next(d);
}
});
});