@kontent-ai/management-sdk
Version:
Official Kontent.ai management SDK
49 lines (42 loc) • 1.78 kB
text/typescript
import { IResponse } from '@kontent-ai/core-sdk';
import { ProjectUserContracts } from '../contracts';
import { ProjectUserModels } from '../models';
import { ProjectUsersResponses } from '../responses';
import { BaseMapper } from './base-mapper';
export class ProjectUserMapper extends BaseMapper {
mapInviteUserResponse(
response: IResponse<ProjectUserContracts.IInviteUserResponseContract>
): ProjectUsersResponses.InviteUserResponse {
return new ProjectUsersResponses.InviteUserResponse(
super.mapResponseDebug(response),
response.data,
this.mapProjectUser(response.data)
);
}
mapChangeUserRolesResponse(
response: IResponse<ProjectUserContracts.IChangeUserRolesResponseContract>
): ProjectUsersResponses.ChangeUserRolesResponse {
return new ProjectUsersResponses.ChangeUserRolesResponse(
super.mapResponseDebug(response),
response.data,
this.mapProjectUser(response.data)
);
}
mapCollectionGroup(
rawItem: ProjectUserContracts.IProjectUserCollectionGroupContract
): ProjectUserModels.CollectionGroup {
return new ProjectUserModels.CollectionGroup({
collections: rawItem.collections,
roles: rawItem.roles,
_raw: rawItem
});
}
mapProjectUser(rawItem: ProjectUserContracts.IUserContract): ProjectUserModels.ProjectUser {
return new ProjectUserModels.ProjectUser({
userId: rawItem.user_id,
collectionGroups: rawItem.collection_groups.map((m) => this.mapCollectionGroup(m)),
_raw: rawItem
});
}
}
export const projectUserMapper = new ProjectUserMapper();