class StmApi::Donation
Your code goes hereā¦
Constants
- BEARER
Attributes
campaign_id[RW]
currency[RW]
team_id[RW]
userhash[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/stm_api.rb, line 16 def initialize(params = {}) @userhash = params[:userhash] @currency = params[:currency] @team_id = params[:team_id] @campaign_id = campaigns.first unless params[:campaign_id] end
Public Instance Methods
campaigns()
click to toggle source
# File lib/stm_api.rb, line 48 def campaigns campaigns_raw = RestClient.get("https://api.sharethemeal.org/api/meta", content_type: :json, accept: :json, Authorization: "Bearer #{BEARER}") campaigns_json = JSON.parse(campaigns_raw) found_campaigns = [] campaigns_json["campaigns"].each do |camp, v| found_campaigns << camp end found_campaigns end
donate(params = {})
click to toggle source
# File lib/stm_api.rb, line 70 def donate(params = {}) token_payload = { 'userHash' => @userhash, 'currency' => @currency } client_token = RestClient.post('https://api.sharethemeal.org/api/payment/braintree/client-tokens', token_payload.to_json, content_type: :json, accept: :json, Authorization: "Bearer #{BEARER}") client_token_response = JSON.parse(client_token) auth_reply = JSON.parse(Base64.decode64(client_token_response['clientToken'])) finger_print = URI.encode_www_form_component(auth_reply['authorizationFingerprint']) payment_infos = RestClient.get("https://api.braintreegateway.com/merchants/#{auth_reply['merchantId']}/client_api/v1/payment_methods?sharedCustomerIdentifierType=undefined&braintreeLibraryVersion=braintree%2Fweb%2F2.15.5&merchantAccountId=#{auth_reply['merchantAccountId']}&authorizationFingerprint=#{finger_print}&callback=") payment_infos_json = JSON.parse(payment_infos) transaction_payload = { 'userHash' => @userhash, 'amount' => params[:amount], 'currency' => @currency, 'paymentMethodNonce' => payment_infos_json['paymentMethods'].first['nonce'], 'teamId' => @team_id, 'campaignId' => @campaign_id } transaction_response = RestClient.post('https://api.sharethemeal.org/api/payment/braintree/transactions', transaction_payload.to_json, content_type: :json, accept: :json, 'Authorization' => "Bearer #{BEARER}") transaction_response_json = JSON.parse(transaction_response) if transaction_response_json['result']['donationCreated'] == true return true else return false end # rescue # return false end
find_one_team(id)
click to toggle source
# File lib/stm_api.rb, line 60 def find_one_team(id) teams = user_teams teams.each do |t| if t["teamId"] == id return t end end return false end
statistics()
click to toggle source
# File lib/stm_api.rb, line 31 def statistics user_info_response = RestClient.get("https://api.sharethemeal.org/api/campaigns/zomba/status", content_type: :json, accept: :json, Authorization: "Bearer #{BEARER}") user_info_json = JSON.parse(user_info_response) return user_info_json end
user_info()
click to toggle source
# File lib/stm_api.rb, line 23 def user_info user_info_response = RestClient.get("https://api.sharethemeal.org/api/users/#{@userhash}", content_type: :json, accept: :json, Authorization: "Bearer #{BEARER}") user_info_json = JSON.parse(user_info_response) return user_info_json end
user_teams()
click to toggle source
# File lib/stm_api.rb, line 39 def user_teams team_statistic = RestClient.get("https://api.sharethemeal.org/api/users/#{@userhash}/teams", content_type: :json, accept: :json, Authorization: "Bearer #{BEARER}") team_statistic_json = JSON.parse(team_statistic) team_statistic_json["userTeams"] end