Class: Square::Loyalty::Programs::Client
- Inherits:
-
Object
- Object
- Square::Loyalty::Programs::Client
- Defined in:
- lib/square/loyalty/programs/client.rb
Instance Method Summary collapse
-
#calculate(request_options: {}, **params) ⇒ Square::Types::CalculateLoyaltyPointsResponse
Calculates the number of points a buyer can earn from a purchase.
-
#get(request_options: {}, **params) ⇒ Square::Types::GetLoyaltyProgramResponse
Retrieves the loyalty program in a seller’s account, specified by the program ID or the keyword ‘main`.
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Square::Types::ListLoyaltyProgramsResponse
Returns a list of loyalty programs in the seller’s account.
- #promotions ⇒ Square::Promotions::Client
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/square/loyalty/programs/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#calculate(request_options: {}, **params) ⇒ Square::Types::CalculateLoyaltyPointsResponse
Calculates the number of points a buyer can earn from a purchase. Applications might call this endpoint to display the points to the buyer.
-
If you are using the Orders API to manage orders, provide the ‘order_id` and (optional)
‘loyalty_account_id`. Square reads the order to compute the points earned from the base loyalty program and an associated [loyalty promotion](entity:LoyaltyPromotion).
-
If you are not using the Orders API to manage orders, provide ‘transaction_amount_money` with the
purchase amount. Square uses this amount to calculate the points earned from the base loyalty program, but not points earned from a loyalty promotion. For spend-based and visit-based programs, the ‘tax_mode` setting of the accrual rule indicates how taxes should be treated for loyalty points accrual. If the purchase qualifies for program points, call [ListLoyaltyPromotions](api-endpoint:Loyalty-ListLoyaltyPromotions) and perform a client-side computation to calculate whether the purchase also qualifies for promotion points. For more information, see [Calculating promotion points](developer.squareup.com/docs/loyalty-api/loyalty-promotions#calculate-promotion-points).
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/square/loyalty/programs/client.rb', line 120 def calculate(request_options: {}, **params) params = Square::Internal::Types::Utils.normalize_keys(params) request_data = Square::Loyalty::Programs::Types::CalculateLoyaltyPointsRequest.new(params).to_h non_body_param_names = ["program_id"] body = request_data.except(*non_body_param_names) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v2/loyalty/programs/#{params[:program_id]}/calculate", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Square::Types::CalculateLoyaltyPointsResponse.load(response.body) else error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get(request_options: {}, **params) ⇒ Square::Types::GetLoyaltyProgramResponse
Retrieves the loyalty program in a seller’s account, specified by the program ID or the keyword ‘main`.
Loyalty programs define how buyers can earn points and redeem points for rewards. Square sellers can have only one loyalty program, which is created and managed from the Seller Dashboard. For more information, see [Loyalty Program Overview](developer.squareup.com/docs/loyalty/overview).
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/square/loyalty/programs/client.rb', line 70 def get(request_options: {}, **params) params = Square::Internal::Types::Utils.normalize_keys(params) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v2/loyalty/programs/#{params[:program_id]}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Square::Types::GetLoyaltyProgramResponse.load(response.body) else error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **params) ⇒ Square::Types::ListLoyaltyProgramsResponse
Returns a list of loyalty programs in the seller’s account. Loyalty programs define how buyers can earn points and redeem points for rewards. Square sellers can have only one loyalty program, which is created and managed from the Seller Dashboard. For more information, see [Loyalty Program Overview](developer.squareup.com/docs/loyalty/overview).
Replaced with [RetrieveLoyaltyProgram](api-endpoint:Loyalty-RetrieveLoyaltyProgram) when used with the keyword ‘main`.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/square/loyalty/programs/client.rb', line 32 def list(request_options: {}, **params) Square::Internal::Types::Utils.normalize_keys(params) request = Square::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v2/loyalty/programs", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Square::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Square::Types::ListLoyaltyProgramsResponse.load(response.body) else error_class = Square::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |