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  }