Skip to content

Instantly share code, notes, and snippets.

@spilist
Last active November 2, 2018 05:34
Show Gist options
  • Select an option

  • Save spilist/2a1f211828b407fe6b0fcc248444607d to your computer and use it in GitHub Desktop.

Select an option

Save spilist/2a1f211828b407fe6b0fcc248444607d to your computer and use it in GitHub Desktop.
module Url
def self.integrations(source = nil, token = nil)
@path = "/integrations"
if source and token
add source
add token.key
end
Integrations.new(self)
end
def self.mobile
@path = "/m"
Mobile.new(self)
end
private
def self.path
@path
end
def self.add(path)
@path += "/#{path}"
end
class Initializer
def initialize(url)
@url = url
end
def build(params = nil)
query = "?#{params.to_param}" if params.present?
"#{ENV["CLIENT_BASE_URL"]}#{@url.path}#{query}"
end
end
module HasNew
def new
@url.add "new"
self
end
end
class Integrations < Initializer
def crefia(token)
@url.add "crefia/#{token.key}"
self
end
def kakaotalk
@url.add "kakaotalk"
self
end
end
class Mobile < Initializer
def account
@url.add "account"
Account.new(@url)
end
def businesses(business = nil)
@url.add "businesses"
@url.add business.public_id if business
Businesses.new(@url)
end
class Account < Initializer
def edit
@url.add "edit"
self
end
def invite
@url.add "invite"
self
end
end
class Businesses < Initializer
include HasNew
def coupons
@url.add "coupons"
self
end
def bank_transactions
@url.add "bank-transactions"
self
end
def card_purchases
@url.add "card-purchases"
self
end
def card_sales
@url.add "card-sales"
CardSales.new(@url)
end
def cash_receipts
@url.add "cash-receipts"
CashReceipts.new(@url)
end
def integrations
@url.add "integrations"
Integrations.new(@url)
end
def invoices
@url.add "invoices"
Invoices.new(@url)
end
def notifications
@url.add "notifications"
Notifications.new(@url)
end
def places
@url.add "places"
self
end
def subscriptions
@url.add "subscriptions"
Subscriptions.new(@url)
end
class CardSales < Initializer
def crosschecks
@url.add "crosschecks"
Crosschecks.new(@url)
end
def payments
@url.add "payments"
self
end
def transactions
@url.add "transactions"
self
end
class Crosschecks < Initializer
def payments
@url.add "payments"
self
end
def purchases
@url.add "purchases"
self
end
end
end
class CashReceipts < Initializer
def sales
@url.add "sales"
self
end
end
class Integrations < Initializer
def bank_accounts
@url.add "bank-accounts"
self
end
def cards
@url.add "cards"
Cards.new(@url)
end
def crefia
@url.add "crefia"
self
end
def hometax
@url.add "hometax"
Hometax.new(@url)
end
class Cards < Initializer
include HasNew
end
class Hometax < Initializer
include HasNew
end
end
class Invoices < Initializer
def purchases
@url.add "purchases"
self
end
end
class Notifications < Initializer
def status
@url.add "status"
self
end
end
class Subscriptions < Initializer
def start
@url.add "start"
self
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment