flamingo.me/flamingo-commerce/v3@v3.11.0/cart/interfaces/graphql/service.go (about) 1 package graphql 2 3 import ( 4 "context" 5 // embed schema.graphql 6 _ "embed" 7 8 formDomain "flamingo.me/form/domain" 9 "flamingo.me/graphql" 10 11 "flamingo.me/flamingo-commerce/v3/cart/domain/cart" 12 "flamingo.me/flamingo-commerce/v3/cart/domain/placeorder" 13 "flamingo.me/flamingo-commerce/v3/cart/domain/validation" 14 "flamingo.me/flamingo-commerce/v3/cart/interfaces/controller/forms" 15 "flamingo.me/flamingo-commerce/v3/cart/interfaces/graphql/dto" 16 ) 17 18 // Service describes the Commerce/Cart GraphQL Service 19 type Service struct{} 20 21 var _ graphql.Service = new(Service) 22 23 //go:embed schema.graphql 24 var schema []byte 25 26 // Schema for cart, delivery and addresses 27 func (*Service) Schema() []byte { 28 return schema 29 } 30 31 // Types configures the GraphQL to Go resolvers 32 func (*Service) Types(types *graphql.Types) { 33 types.Map("Commerce_Cart_CustomAttributes", dto.CustomAttributes{}) 34 types.Map("Commerce_Cart_KeyValue", dto.KeyValue{}) 35 types.Map("Commerce_Cart_KeyValueInput", dto.KeyValue{}) 36 types.Map("Commerce_Cart_DeliveryAdditionalDataInput", dto.DeliveryAdditionalData{}) 37 types.Map("Commerce_Cart_DecoratedCart", dto.DecoratedCart{}) 38 types.Map("Commerce_Cart_Cart", cart.Cart{}) 39 types.Resolve("Commerce_Cart_Cart", "getDeliveryByCode", Resolver{}, "GetDeliveryByCodeWithoutBool") 40 types.Map("Commerce_Cart_Summary", dto.CartSummary{}) 41 types.Map("Commerce_Cart_DecoratedDelivery", dto.DecoratedDelivery{}) 42 types.Map("Commerce_Cart_Delivery", cart.Delivery{}) 43 types.Map("Commerce_Cart_DeliveryInfo", cart.DeliveryInfo{}) 44 types.Resolve("Commerce_Cart_DeliveryInfo", "additionalData", CommerceCartDeliveryInfoResolver{}, "AdditionalData") 45 types.Map("Commerce_Cart_DeliveryLocation", cart.DeliveryLocation{}) 46 types.Map("Commerce_Cart_Totalitem", cart.Totalitem{}) 47 types.Map("Commerce_Cart_Tax", cart.Tax{}) 48 types.Map("Commerce_Cart_Taxes", dto.Taxes{}) 49 types.Map("Commerce_Cart_Teaser", cart.Teaser{}) 50 types.Map("Commerce_Cart_CouponCode", cart.CouponCode{}) 51 types.Map("Commerce_Cart_AdditionalData", cart.AdditionalData{}) 52 types.Resolve("Commerce_Cart_AdditionalData", "customAttributes", CommerceCartAdditionalDataResolver{}, "CustomAttributes") 53 types.Map("Commerce_Cart_ShippingItem", cart.ShippingItem{}) 54 types.Resolve("Commerce_Cart_ShippingItem", "appliedDiscounts", dto.CartAppliedDiscountsResolver{}, "ForShippingItem") 55 types.Map("Commerce_Cart_DecoratedItem", dto.DecoratedCartItem{}) 56 types.Map("Commerce_Cart_Item", cart.Item{}) 57 types.Resolve("Commerce_Cart_Item", "appliedDiscounts", dto.CartAppliedDiscountsResolver{}, "ForItem") 58 types.Map("Commerce_Cart_Address", cart.Address{}) 59 types.Map("Commerce_Cart_Person", cart.Person{}) 60 types.Map("Commerce_Cart_ExistingCustomerData", cart.ExistingCustomerData{}) 61 types.Map("Commerce_Cart_PersonalDetails", cart.PersonalDetails{}) 62 types.Map("Commerce_Cart_AppliedDiscounts", dto.CartAppliedDiscounts{}) 63 types.Map("Commerce_Cart_AppliedDiscount", cart.AppliedDiscount{}) 64 types.Map("Commerce_Cart_AppliedGiftCard", cart.AppliedGiftCard{}) 65 types.Map("Commerce_Cart_PricedItems", dto.PricedItems{}) 66 types.Map("Commerce_Cart_PricedCartItem", dto.PricedCartItem{}) 67 types.Map("Commerce_Cart_PricedShippingItem", dto.PricedShippingItem{}) 68 types.Map("Commerce_Cart_PricedTotalItem", dto.PricedTotalItem{}) 69 types.Map("Commerce_Cart_BillingAddressForm", dto.BillingAddressForm{}) 70 types.Map("Commerce_Cart_AddressForm", forms.AddressForm{}) 71 types.Map("Commerce_Cart_AddressFormInput", forms.AddressForm{}) 72 types.Map("Commerce_Cart_Form_ValidationInfo", dto.ValidationInfo{}) 73 types.Map("Commerce_Cart_Form_Error", formDomain.Error{}) 74 types.Map("Commerce_Cart_Form_FieldError", dto.FieldError{}) 75 types.Map("Commerce_Cart_ValidationResult", validation.Result{}) 76 types.Map("Commerce_Cart_ItemValidationError", validation.ItemValidationError{}) 77 types.Map("Commerce_Cart_PlacedOrderInfo", placeorder.PlacedOrderInfo{}) 78 types.Map("Commerce_Cart_SelectedPaymentResult", dto.SelectedPaymentResult{}) 79 types.Map("Commerce_Cart_PaymentSelection", new(cart.PaymentSelection)) 80 types.Map("Commerce_Cart_DefaultPaymentSelection", cart.DefaultPaymentSelection{}) 81 types.Resolve("Commerce_Cart_DefaultPaymentSelection", "cartSplit", CommerceCartQueryResolver{}, "CartSplit") 82 types.Map("Commerce_Cart_DeliveryAddressForm", dto.DeliveryAddressForm{}) 83 types.Map("Commerce_Cart_DeliveryAddressInput", forms.DeliveryForm{}) 84 types.Map("Commerce_Cart_UpdateDeliveryShippingOptions_Result", dto.UpdateShippingOptionsResult{}) 85 types.Map("Commerce_Cart_AddToCartInput", dto.AddToCart{}) 86 types.Map("Commerce_Cart_ChoiceConfigurationInput", dto.ChoiceConfiguration{}) 87 88 types.GoField("Commerce_Cart_DeliveryAddressInput", "deliveryCode", "LocationCode") 89 types.GoField("Commerce_Cart_DeliveryAddressInput", "carrier", "ShippingCarrier") 90 types.GoField("Commerce_Cart_DeliveryAddressInput", "method", "ShippingMethod") 91 types.Map("Commerce_Cart_DeliveryShippingOptionInput", dto.DeliveryShippingOption{}) 92 types.Map("Commerce_Cart_QtyRestrictionResult", validation.RestrictionResult{}) 93 types.Map("Commerce_Cart_PaymentSelection_Split", dto.PaymentSelectionSplit{}) 94 types.Map("Commerce_Cart_PaymentSelection_SplitQualifier", cart.SplitQualifier{}) 95 types.GoField("Commerce_Cart_PaymentSelection_SplitQualifier", "type", "ChargeType") 96 types.GoField("Commerce_Cart_PaymentSelection_SplitQualifier", "reference", "ChargeReference") 97 98 types.Resolve("Query", "Commerce_Cart_DecoratedCart", CommerceCartQueryResolver{}, "CommerceCart") 99 types.Resolve("Query", "Commerce_Cart_Validator", CommerceCartQueryResolver{}, "CommerceCartValidator") 100 types.Resolve("Query", "Commerce_Cart_QtyRestriction", CommerceCartQueryResolver{}, "CommerceCartQtyRestriction") 101 102 types.Resolve("Mutation", "Commerce_Cart_AddToCart", CommerceCartMutationResolver{}, "CommerceAddToCart") 103 types.Resolve("Mutation", "Commerce_Cart_DeleteCartDelivery", CommerceCartMutationResolver{}, "CommerceDeleteCartDelivery") 104 types.Resolve("Mutation", "Commerce_Cart_DeleteCartDelivery", CommerceCartMutationResolver{}, "CommerceDeleteCartDelivery") 105 types.Resolve("Mutation", "Commerce_Cart_DeleteItem", CommerceCartMutationResolver{}, "CommerceDeleteItem") 106 types.Resolve("Mutation", "Commerce_Cart_UpdateItemQty", CommerceCartMutationResolver{}, "CommerceUpdateItemQty") 107 types.Resolve("Mutation", "Commerce_Cart_UpdateItemBundleConfig", CommerceCartMutationResolver{}, "CommerceUpdateItemBundleConfig") 108 types.Resolve("Mutation", "Commerce_Cart_UpdateBillingAddress", CommerceCartMutationResolver{}, "CommerceCartUpdateBillingAddress") 109 types.Resolve("Mutation", "Commerce_Cart_UpdateSelectedPayment", CommerceCartMutationResolver{}, "CommerceCartUpdateSelectedPayment") 110 types.Resolve("Mutation", "Commerce_Cart_ApplyCouponCodeOrGiftCard", CommerceCartMutationResolver{}, "CommerceCartApplyCouponCodeOrGiftCard") 111 types.Resolve("Mutation", "Commerce_Cart_RemoveGiftCard", CommerceCartMutationResolver{}, "CommerceCartRemoveGiftCard") 112 types.Resolve("Mutation", "Commerce_Cart_RemoveCouponCode", CommerceCartMutationResolver{}, "CommerceCartRemoveCouponCode") 113 types.Resolve("Mutation", "Commerce_Cart_UpdateDeliveryAddresses", CommerceCartMutationResolver{}, "CommerceCartUpdateDeliveryAddresses") 114 types.Resolve("Mutation", "Commerce_Cart_UpdateDeliveryShippingOptions", CommerceCartMutationResolver{}, "CommerceCartUpdateDeliveryShippingOptions") 115 types.Resolve("Mutation", "Commerce_Cart_Clean", CommerceCartMutationResolver{}, "CartClean") 116 types.Resolve("Mutation", "Commerce_Cart_UpdateAdditionalData", CommerceCartMutationResolver{}, "UpdateAdditionalData") 117 types.Resolve("Mutation", "Commerce_Cart_UpdateDeliveriesAdditionalData", CommerceCartMutationResolver{}, "UpdateDeliveriesAdditionalData") 118 } 119 120 // Resolver helper 121 type Resolver struct{} 122 123 // GetDeliveryByCodeWithoutBool helper 124 func (*Resolver) GetDeliveryByCodeWithoutBool(_ context.Context, cart *cart.Cart, code string) (*cart.Delivery, error) { 125 return cart.GetDeliveryByCodeWithoutBool(code), nil 126 }