administrator.resolver.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
  2. import { Permission } from 'shared/generated-types';
  3. import { PaginatedList } from 'shared/shared-types';
  4. import { Administrator } from '../../entity/administrator/administrator.entity';
  5. import { AdministratorService } from '../../service/administrator.service';
  6. import { ApplyIdCodec } from '../common/apply-id-codec-decorator';
  7. import { Allow } from '../roles-guard';
  8. @Resolver('Administrator')
  9. export class AdministratorResolver {
  10. constructor(private administratorService: AdministratorService) {}
  11. @Query()
  12. @Allow(Permission.ReadAdministrator)
  13. @ApplyIdCodec()
  14. administrators(@Args() args: any): Promise<PaginatedList<Administrator>> {
  15. return this.administratorService.findAll(args.options);
  16. }
  17. @Query()
  18. @Allow(Permission.ReadAdministrator)
  19. @ApplyIdCodec()
  20. administrator(@Args() args: any): Promise<Administrator | undefined> {
  21. return this.administratorService.findOne(args.id);
  22. }
  23. @Mutation()
  24. @Allow(Permission.CreateAdministrator)
  25. @ApplyIdCodec()
  26. createAdministrator(_, args): Promise<Administrator> {
  27. const { input } = args;
  28. return this.administratorService.create(input);
  29. }
  30. @Mutation()
  31. @Allow(Permission.UpdateAdministrator)
  32. @ApplyIdCodec()
  33. assignRoleToAdministrator(@Args() args): Promise<Administrator> {
  34. return this.administratorService.assignRole(args.administratorId, args.roleId);
  35. }
  36. }