谁能让我知道如何依次调用2个API? api1
成功返回用户名后,请致电api2
以通过传递用户名来获取数据。我怎样才能做到这一点?
user.service.ts
async createUser(body: CreateUserDto): Promise<any> {
const api1 = await this.keycloakService.createUser(body);
const api2 = await this.keycloakService.searchByusername(); // I have to pass username once createUser api call success
return {
api2
};
}
keycloak.service.ts
async createUser(user: IUserRepresentation) {
return new Promise(async (resolve,reject) => {
const url = `${this.baseUrl}/admin/realms/${this.realmName}/users`;
const auth = await this.getadminAuth();
const req = {
url,auth: {
bearer: auth.access_token,},body: user,method: 'POST',json: true,};
request(req,(err,res,body) => {
if (err) {
return reject(err);
}
try {
if (res.statusCode === 201) {
return resolve(req.body.username);
} else {
throw {
thrown: true,statusCode: res.statusCode,message: body.errorMessage,};
}
} catch (e) {
reject(e);
}
});
});
}
async searchByusername(username: string) {
return new Promise(async (resolve,reject) => {
const url = `${this.baseUrl}/admin/realms/${this.realmName}/users?username=${username}`;
const auth = await this.getadminAuth();
const req = {
url,method: 'GET',body) => {
if (err) {
return reject(err);
}
try {
if (res.statusCode === HttpStatus.OK) {
return resolve(body);
} else {
throw {
thrown: true,};
}
} catch (e) {
reject(e);
}
});
});
}