40 lines
754 B
Ruby
40 lines
754 B
Ruby
|
module Mattermost
|
||
|
class Client
|
||
|
attr_reader :user
|
||
|
|
||
|
def initialize(user)
|
||
|
@user = user
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def with_session(&blk)
|
||
|
Session.new(user).with_session(&blk)
|
||
|
end
|
||
|
|
||
|
def json_get(path, options = {})
|
||
|
with_session do |session|
|
||
|
json_response session.get(path, options)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def json_post(path, options = {})
|
||
|
with_session do |session|
|
||
|
json_response session.post(path, options)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def json_response(response)
|
||
|
json_response = JSON.parse(response.body)
|
||
|
|
||
|
if response.success?
|
||
|
json_response
|
||
|
elsif json_response['message']
|
||
|
raise json_response['message']
|
||
|
else
|
||
|
raise 'Undefined error'
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|