Sha256: 7b7b47ae60136198db3dd43d631c0f0af3e590da12bf022578e82c211bd4b0f2

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true
module TopsConnect
  class Community < Base
    attr_reader :id

    def initialize(client, data = nil)
      @data = data

      super client
    end

    def data
      @data || reload!
    end

    def reload!
      @data = get "/community/#{@client.community_id}"
    end

    def code
      data['CommunityID']
    end

    def name
      data['Name']
    end

    def city
      data['DefaultCity']
    end

    def state
      data['DefaultState']
    end

    def zip
      data['DefaultZip']
    end

    def last_synced_at
      DateTime.parse data['LastSyncTime'] if data['LastSyncTime']
    end

    def updated_at
      return nil unless data['Metadata']['ModifiedDate']

      DateTime.parse data['Metadata']['ModifiedDate']
    end

    # Method: GET
    # Endpoint: ChargeCode_GetList
    def charge_codes
      get('/chargecode').map do |charge_code|
        {
          key: charge_code['ChargeCodeKey'],
          code: charge_code['Code'],
          description: charge_code['Description']
        }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tops_connect-0.2.0 lib/tops_connect/community.rb