shipping-method.resolver.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
  2. import {
  3. AdjustmentOperation,
  4. CreateShippingMethodMutationArgs,
  5. Permission,
  6. ShippingMethodQueryArgs,
  7. ShippingMethodsQueryArgs,
  8. UpdateShippingMethodMutationArgs,
  9. } from '../../../../shared/generated-types';
  10. import { PaginatedList } from '../../../../shared/shared-types';
  11. import { ShippingMethod } from '../../entity/shipping-method/shipping-method.entity';
  12. import { ShippingMethodService } from '../../service/services/shipping-method.service';
  13. import { Allow } from '../decorators/allow.decorator';
  14. @Resolver('ShippingMethod')
  15. export class ShippingMethodResolver {
  16. constructor(private shippingMethodService: ShippingMethodService) {}
  17. @Query()
  18. @Allow(Permission.ReadSettings)
  19. shippingMethods(@Args() args: ShippingMethodsQueryArgs): Promise<PaginatedList<ShippingMethod>> {
  20. return this.shippingMethodService.findAll(args.options || undefined);
  21. }
  22. @Query()
  23. @Allow(Permission.ReadSettings)
  24. shippingMethod(@Args() args: ShippingMethodQueryArgs): Promise<ShippingMethod | undefined> {
  25. return this.shippingMethodService.findOne(args.id);
  26. }
  27. @Query()
  28. @Allow(Permission.ReadSettings)
  29. shippingEligibilityCheckers(@Args() args: ShippingMethodQueryArgs): AdjustmentOperation[] {
  30. return this.shippingMethodService.getShippingEligibilityCheckers();
  31. }
  32. @Query()
  33. @Allow(Permission.ReadSettings)
  34. shippingCalculators(@Args() args: ShippingMethodQueryArgs): AdjustmentOperation[] {
  35. return this.shippingMethodService.getShippingCalculators();
  36. }
  37. @Mutation()
  38. @Allow(Permission.CreateSettings)
  39. createShippingMethod(@Args() args: CreateShippingMethodMutationArgs): Promise<ShippingMethod> {
  40. const { input } = args;
  41. return this.shippingMethodService.create(input);
  42. }
  43. @Mutation()
  44. @Allow(Permission.UpdateSettings)
  45. updateShippingMethod(@Args() args: UpdateShippingMethodMutationArgs): Promise<ShippingMethod> {
  46. const { input } = args;
  47. return this.shippingMethodService.update(input);
  48. }
  49. }