1
0

api-extensions.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { gql } from 'graphql-tag';
  2. export const commonApiExtensions = gql`
  3. type ProductReviewTranslation {
  4. id: ID!
  5. languageCode: LanguageCode!
  6. text: String!
  7. }
  8. type ProductReview implements Node {
  9. id: ID!
  10. createdAt: DateTime!
  11. updatedAt: DateTime!
  12. product: Product!
  13. productVariant: ProductVariant
  14. summary: String!
  15. body: String
  16. rating: Float!
  17. authorName: String!
  18. authorLocation: String
  19. upvotes: Int!
  20. downvotes: Int!
  21. state: String!
  22. response: String
  23. responseCreatedAt: DateTime
  24. translations: [ProductReviewTranslation!]!
  25. }
  26. type ProductReviewList implements PaginatedList {
  27. items: [ProductReview!]!
  28. totalItems: Int!
  29. }
  30. type ProductReviewHistogramItem {
  31. bin: Int!
  32. frequency: Int!
  33. }
  34. extend type Product {
  35. reviews(options: ProductReviewListOptions): ProductReviewList!
  36. reviewsHistogram: [ProductReviewHistogramItem!]!
  37. }
  38. # Auto-generated at runtime
  39. input ProductReviewListOptions
  40. `;
  41. export const adminApiExtensions = gql`
  42. ${commonApiExtensions}
  43. input ProductReviewTranslationInput {
  44. languageCode: LanguageCode!
  45. text: String!
  46. }
  47. input UpdateProductReviewInput {
  48. id: ID!
  49. summary: String
  50. body: String
  51. response: String
  52. state: String
  53. translations: [ProductReviewTranslationInput!]!
  54. }
  55. extend type ProductReview {
  56. author: Customer
  57. }
  58. extend type Query {
  59. productReviews(options: ProductReviewListOptions): ProductReviewList!
  60. productReview(id: ID!): ProductReview
  61. }
  62. extend type Mutation {
  63. updateProductReview(input: UpdateProductReviewInput!): ProductReview!
  64. approveProductReview(id: ID!): ProductReview
  65. rejectProductReview(id: ID!): ProductReview
  66. }
  67. `;
  68. export const shopApiExtensions = gql`
  69. ${commonApiExtensions}
  70. input SubmitProductReviewInput {
  71. productId: ID!
  72. variantId: ID
  73. customerId: ID
  74. summary: String!
  75. body: String!
  76. rating: Float!
  77. authorName: String!
  78. authorLocation: String
  79. }
  80. extend type Mutation {
  81. submitProductReview(input: SubmitProductReviewInput!): ProductReview!
  82. voteOnReview(id: ID!, vote: Boolean!): ProductReview!
  83. }
  84. `;