Sha256: 41c38585c450b7701c21986f400d21f0eca604ff7726e198a49eb6d12b995807

Contents?: true

Size: 1015 Bytes

Versions: 3

Compression:

Stored size: 1015 Bytes

Contents

# frozen_string_literal: true

module SolidusGraphqlApi
  module Mutations
    module User
      class SaveInAddressBook < BaseMutation
        class AddressTypeInput < Types::Base::Enum
          value "shipping"
          value "billing"
        end

        null true

        argument :address, Types::InputObjects::AddressInput, required: true
        argument :default, Boolean, required: false
        argument :address_type, AddressTypeInput, required: false, default_value: "shipping"

        field :user, Types::User, null: true
        field :errors, [Types::UserError], null: false

        def resolve(address:, address_type:, default: false)
          address = current_user.save_in_address_book(address, default, address_type.to_sym)

          {
            user: current_user,
            errors: user_errors("address", address.errors)
          }
        end

        def ready?(*)
          current_ability.authorize!(:save_in_address_book, current_user)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
solidus_graphql_api-0.3.1 lib/solidus_graphql_api/mutations/user/save_in_address_book.rb
solidus_graphql_api-0.3.0 lib/solidus_graphql_api/mutations/user/save_in_address_book.rb
solidus_graphql_api-0.2.0 lib/solidus_graphql_api/mutations/user/save_in_address_book.rb