ignacio-chiazzo/ruby_whatsapp_sdk

View on GitHub
lib/whatsapp_sdk/resource/address.rb

Summary

Maintainability
A
0 mins
Test Coverage
# typed: strict
# frozen_string_literal: true

module WhatsappSdk
  module Resource
    class Address
      extend T::Sig

      sig { returns(String) }
      attr_accessor :street

      sig { returns(String) }
      attr_accessor :city

      sig { returns(String) }
      attr_accessor :state

      sig { returns(String) }
      attr_accessor :zip

      sig { returns(String) }
      attr_accessor :country

      sig { returns(String) }
      attr_accessor :country_code

      sig { returns(AddressType) }
      attr_accessor :type

      sig do
        params(
          street: String, city: String, state: String, zip: String,
          country: String, country_code: String, type: AddressType
        ).void
      end
      def initialize(street:, city:, state:, zip:, country:, country_code:, type: AddressType::Home)
        @street = street
        @city = city
        @state = state
        @zip = zip
        @country = country
        @country_code = country_code
        @type = type
      end

      sig { returns(T::Hash[T.untyped, T.untyped]) }
      def to_h
        {
          street: @street,
          city: @city,
          state: @state,
          zip: @zip,
          country: @country,
          country_code: @country_code,
          type: @type
        }
      end
    end
  end
end