class API42::Client
Attributes
token[RW]
Public Class Methods
new(token=nil)
click to toggle source
# File lib/API42/client.rb, line 8 def initialize token=nil @host = RestClient::Resource.new('https://api.intrav2.42.fr') @token = token || ENV.fetch('API_42_KEY') end
Public Instance Methods
cursus(options = {})
click to toggle source
# File lib/API42/client.rb, line 13 def cursus(options = {}) cursus = @host['cursus'] id = cursus[options[:id]] get id[options[:resource]] end
groups(id = nil)
click to toggle source
# File lib/API42/client.rb, line 19 def groups(id = nil) groups = @host['groups'] get groups[id.to_s] end
projects(options = {})
click to toggle source
# File lib/API42/client.rb, line 24 def projects(options = {}) project = @host['projects'] slug = project[(options[:slug] || options[:id]).to_s] get slug[options[:resource]] end
scale_team(id)
click to toggle source
# File lib/API42/client.rb, line 46 def scale_team id scale = @host['scale_teams'] get scale[id.to_S] end
team(id)
click to toggle source
# File lib/API42/client.rb, line 30 def team id teams = @host['teams'] get teams[id.to_s] end
topic(id)
click to toggle source
# File lib/API42/client.rb, line 41 def topic id topics = @host['topics'] get topics[id.to_s] end
user(login, options = {})
click to toggle source
# File lib/API42/client.rb, line 35 def user(login, options = {}) users = @host['users'] login = users[login] get login[options[:resource]] end
Private Instance Methods
get(resource, params = {})
click to toggle source
# File lib/API42/client.rb, line 53 def get(resource, params = {}) res = resource.get(params: {token: @token}, accept: 'application/json') parse_response res rescue RestClient::ExceptionWithResponse => err err.response end
http_error(code)
click to toggle source
# File lib/API42/client.rb, line 75 def http_error code "HTTP Error code: #{res.code}." end
parse_body(body)
click to toggle source
# File lib/API42/client.rb, line 69 def parse_body body JSON.parse body rescue raise JsonError, 'Bad content returned by server. Check your params.' end
parse_response(res)
click to toggle source
# File lib/API42/client.rb, line 60 def parse_response res case res.code when *[200..226] parse_body res.body else raise ServerError, http_error(res.code) end end