class M1API
open browser open network logs save entire thing as har parse should match the logs against when the actions were performed
Constants
- VERSION
Attributes
accounts[RW]
accounts_detail[RW]
api_config_file[RW]
api_configs[RW]
token[RW]
Public Class Methods
new(username, password, api_config_file = "
click to toggle source
# File lib/m1_api.rb, line 20 def initialize(username, password, api_config_file = "#{__dir__}/m1_api/api_configs.yml") @accounts = {} @accounts_detail = {} load_config_file(api_config_file) credentials = { username: username, password: password } res = YamlHelpers.call_api_from_config(@api_configs, :authenticate, credentials) raise "failed to authenticate:\n\t#{res}" unless res[:code] == 200 && res[:body]['data']['authenticate']['result']['didSucceed'] @token = res[:body]['data']['authenticate']['accessToken'] end
read_credentials(credentials_file=nil)
click to toggle source
# File lib/m1_api.rb, line 36 def self.read_credentials(credentials_file=nil) if credentials_file credentials = YamlHelpers.load_yaml(credentials_file) { username: credentials[:M1_USERNAME], password: credentials[:M1_PASSWORD] } else {username: ENV['M1_USERNAME'], password: ENV['M1_PASSWORD']} end end
Public Instance Methods
deposit(account_id, bank_id, transaction, cancel = false)
click to toggle source
# File lib/m1_api.rb, line 66 def deposit(account_id, bank_id, transaction, cancel = false) if cancel data = { token: @token, account_id: account_id, bank_id: bank_id, transfer_id: transaction } YamlHelpers.call_api_from_config(@api_configs, :cancel_deposit, data) else data = { token: @token, account_id: account_id, bank_id: bank_id, amount: transaction } YamlHelpers.call_api_from_config(@api_configs, :deposit, data) end end
load_config_file(api_config_file)
click to toggle source
# File lib/m1_api.rb, line 30 def load_config_file(api_config_file) # change it to reject both if either fails @api_config_file = api_config_file @api_configs = YamlHelpers.load_yaml(@api_config_file) end
output(string)
click to toggle source
# File lib/m1_api.rb, line 16 def output(string) puts string end
query_account_detail(account_id)
click to toggle source
# File lib/m1_api.rb, line 55 def query_account_detail(account_id) data = { token: @token, account_id: account_id } detail = YamlHelpers.call_api_from_config(@api_configs, :query_account_detail, data)[:body]['data']['node'] @accounts_detail[account_id] = { status: detail['status'], bank: detail['lastAchRelationship'], transfers: detail['_achTransfers']['edges'] } @accounts_detail end
query_accounts()
click to toggle source
# File lib/m1_api.rb, line 45 def query_accounts accounts = {} data = { token: @token } id_res = YamlHelpers.call_api_from_config(@api_configs, :list_account_ids, data) ids = id_res[:body]['data']['viewer']['accounts']['edges'].each do |account| accounts[account['node']['nickname']] = account['node']['id'] end @accounts = accounts end
withdraw(account_id, bank_id, transaction, cancel = false)
click to toggle source
# File lib/m1_api.rb, line 76 def withdraw(account_id, bank_id, transaction, cancel = false) if cancel data = { token: @token, account_id: account_id, bank_id: bank_id, transfer_id: transaction } YamlHelpers.call_api_from_config(@api_configs, :cancel_withdraw, data) else data = { token: @token, account_id: account_id, bank_id: bank_id, amount: transaction } YamlHelpers.call_api_from_config(@api_configs, :withdraw, data) end end