class FyleSDK::Connect
Public Class Methods
new(base_url, client_id, client_secret, refresh_token)
click to toggle source
# File lib/fylesdk.rb, line 25 def initialize(base_url, client_id, client_secret, refresh_token) @base_url = base_url @client_id = client_id @client_secret = client_secret @refresh_token = refresh_token @access_token = self.get_access_token # create an object for each api @employees = FyleSDK::Employees.new() @expenses = FyleSDK::Expenses.new() @reports = FyleSDK::Reports.new() @advances = FyleSDK::Advances.new() @trip_requests = FyleSDK::TripRequests.new() @reimbursements = FyleSDK::Reimbursements.new() @settlements = FyleSDK::Settlements.new() # get the access token and base_url self.update_access_token self.update_base_url end
Public Instance Methods
advances()
click to toggle source
# File lib/fylesdk.rb, line 59 def advances return @advances end
employees()
click to toggle source
# File lib/fylesdk.rb, line 47 def employees return @employees end
expenses()
click to toggle source
# File lib/fylesdk.rb, line 51 def expenses return @expenses end
get_access_token()
click to toggle source
# File lib/fylesdk.rb, line 101 def get_access_token """Get the access token using a HTTP post. Returns: A new access token. """ url = URI.parse(@base_url + "/api/auth/access_token") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true body = { 'grant_type' => 'refresh_token', "client_id" => @client_id, "client_secret" => @client_secret, "refresh_token" => @refresh_token } request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request.body = body.to_json() response = http.request(request) if response.code == "200" data = JSON.parse(response.body) return data["access_token"] elsif response.code == "400" raise FyleSDK::WrongParamsError.new('Some of the parameters are wrong', JSON.parse(response.body)) elif response.code == "401" raise FyleSDK::InvalidTokenError.new('Invalid token, try to refresh it', JSON.parse(response.body)) elsif response.code == "403" raise FyleSDK::NoPrivilegeError.new('Forbidden, the user has insufficient privilege', JSON.parse(response.body)) elsif response.code == "404" raise FyleSDK::NotFoundItemError.new('Not found item with ID', JSON.parse(response.body)) elsif response.code == "498" raise FyleSDK::ExpiredTokenError.new('Expired token, try to refresh it', JSON.parse(response.body)) elsif response.code == "500" raise FyleSDK::InternalServerError.new('Internal server error', JSON.parse(response.body)) else raise FyleSDK::FyleSDKError.new('Error: %s' % response.code, JSON.parse(response.body)) end end
reimbursements()
click to toggle source
# File lib/fylesdk.rb, line 67 def reimbursements return @reimbursements end
reports()
click to toggle source
# File lib/fylesdk.rb, line 55 def reports return @reports end
settlements()
click to toggle source
# File lib/fylesdk.rb, line 71 def settlements return @settlements end
trip_requests()
click to toggle source
# File lib/fylesdk.rb, line 63 def trip_requests return @trip_requests end
update_access_token()
click to toggle source
# File lib/fylesdk.rb, line 77 def update_access_token """Update the access token and change it in all API objects.""" @employees.change_access_token(@access_token) @expenses.change_access_token(@access_token) @reports.change_access_token(@access_token) @advances.change_access_token(@access_token) @trip_requests.change_access_token(@access_token) @reimbursements.change_access_token(@access_token) @settlements.change_access_token(@access_token) end
update_base_url()
click to toggle source
# File lib/fylesdk.rb, line 89 def update_base_url """Update the base_url and change it in all API objects.""" @employees.set_base_url(@base_url) @expenses.set_base_url(@base_url) @reports.set_base_url(@base_url) @advances.set_base_url(@base_url) @trip_requests.set_base_url(@base_url) @reimbursements.set_base_url(@base_url) @settlements.set_base_url(@base_url) end