gitlab-org--gitlab-foss/lib/mattermost/client.rb

42 lines
838 B
Ruby
Raw Normal View History

2016-12-19 18:22:10 -05:00
module Mattermost
2016-12-20 06:02:37 -05:00
class ClientError < Mattermost::Error; end
2016-12-19 18:22:10 -05:00
class Client
attr_reader :user
def initialize(user)
@user = user
end
private
def with_session(&blk)
2016-12-20 05:32:42 -05:00
Mattermost::Session.new(user).with_session(&blk)
2016-12-19 18:22:10 -05:00
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']
2016-12-20 06:02:37 -05:00
raise ClientError(json_response['message'])
2016-12-19 18:22:10 -05:00
else
2016-12-20 06:02:37 -05:00
raise ClientError('Undefined error')
2016-12-19 18:22:10 -05:00
end
end
end
end