customer.resolver.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { Mutation, Query, ResolveProperty, Resolver } from '@nestjs/graphql';
  2. import { Address } from '../../entity/address/address.entity';
  3. import { CreateCustomerDto } from '../../entity/customer/customer.dto';
  4. import { Customer } from '../../entity/customer/customer.entity';
  5. import { CustomerService } from '../../service/customer.service';
  6. @Resolver('Customer')
  7. export class CustomerResolver {
  8. constructor(private customerService: CustomerService) {}
  9. @Query('customers')
  10. customers(): Promise<Customer[]> {
  11. return this.customerService.findAll();
  12. }
  13. @Query('customer')
  14. customer(obj, args): Promise<Customer | undefined> {
  15. return this.customerService.findOne(args.id);
  16. }
  17. @ResolveProperty('addresses')
  18. addresses(customer: Customer): Promise<Address[]> {
  19. return this.customerService.findAddressesByCustomerId(customer.id);
  20. }
  21. @Mutation()
  22. createCustomer(_, args): Promise<Customer> {
  23. const { input, password } = args;
  24. return this.customerService.create(input, password);
  25. }
  26. @Mutation()
  27. createCustomerAddress(_, args): Promise<Address> {
  28. const { customerId, input } = args;
  29. return this.customerService.createAddress(customerId, input);
  30. }
  31. }