Class: TableCheckApi::Pos::V1::PosJournals

Inherits:
Object
  • Object
show all
Defined in:
lib/table_check_api/pos/v1/pos_journals.rb

Overview

Service class for TableCheck POS Journals endpoints.

Usage:

request = TableCheckApi::Pos::V1::PosJournals::CreateRequest.new(batch_date: '2020-01-01')
TableCheckApi::Pos::V1::PosJournals.create(shop_id, request)

update_request = TableCheckApi::Pos::V1::PosJournals::UpdateRequest.new(...)
TableCheckApi::Pos::V1::PosJournals.update(shop_id, id, update_request)

void_request = TableCheckApi::Pos::V1::PosJournals::VoidRequest.new(receipt_num: '12345', void_reason: 'customer_cancellation')
TableCheckApi::Pos::V1::PosJournals.void(shop_id, void_request)

Defined Under Namespace

Classes: CreateRequest, CreateResponse, DeleteResponse, PosDiscount, PosJournalResponse, PosOrder, PosPayment, UpdateRequest, VoidRequest

Constant Summary collapse

RESOURCE_PATH =
'/pos/v1/shops'

Class Method Summary collapse

Class Method Details

.build_payload(request) ⇒ Object

Raises:

  • (ArgumentError)


66
67
68
69
70
# File 'lib/table_check_api/pos/v1/pos_journals.rb', line 66

def self.build_payload(request)
  raise ArgumentError, 'request must respond to :to_h' unless request.respond_to?(:to_h)

  request.to_h
end

.create(shop_id, request, headers: {}) ⇒ Object

POST /shops/:shop_id/pos_journals — Create a new POS journal entry.



24
25
26
27
28
29
30
31
32
# File 'lib/table_check_api/pos/v1/pos_journals.rb', line 24

def self.create(shop_id, request, headers: {})
  response = TableCheckApi::Client.post(
    "#{RESOURCE_PATH}/#{shop_id}/pos_journals",
    params: build_payload(request),
    headers: headers
  )

  CreateResponse.from_response(response)
end

.delete(shop_id, id, headers: {}) ⇒ Object

DELETE /shops/:shop_id/pos_journals/:id — Delete a POS journal.



46
47
48
49
50
51
52
53
# File 'lib/table_check_api/pos/v1/pos_journals.rb', line 46

def self.delete(shop_id, id, headers: {})
  response = TableCheckApi::Client.delete(
    "#{RESOURCE_PATH}/#{shop_id}/pos_journals/#{id}",
    headers: headers
  )

  DeleteResponse.from_response(response)
end

.update(shop_id, id, request, headers: {}) ⇒ Object

PUT /shops/:shop_id/pos_journals/:id — Update an existing POS journal.



35
36
37
38
39
40
41
42
43
# File 'lib/table_check_api/pos/v1/pos_journals.rb', line 35

def self.update(shop_id, id, request, headers: {})
  response = TableCheckApi::Client.put(
    "#{RESOURCE_PATH}/#{shop_id}/pos_journals/#{id}",
    params: build_payload(request),
    headers: headers
  )

  PosJournalResponse.from_response(response)
end

.void(shop_id, request, headers: {}) ⇒ Object

POST /shops/:shop_id/pos_journals/void — Void a POS journal.



56
57
58
59
60
61
62
63
64
# File 'lib/table_check_api/pos/v1/pos_journals.rb', line 56

def self.void(shop_id, request, headers: {})
  response = TableCheckApi::Client.post(
    "#{RESOURCE_PATH}/#{shop_id}/pos_journals/void",
    params: build_payload(request),
    headers: headers
  )

  PosJournalResponse.from_response(response)
end