summaryrefslogtreecommitdiff
path: root/lib/mattermost/session.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mattermost/session.rb')
-rw-r--r--lib/mattermost/session.rb36
1 files changed, 21 insertions, 15 deletions
diff --git a/lib/mattermost/session.rb b/lib/mattermost/session.rb
index a3715bed482..fb8d7d97f8a 100644
--- a/lib/mattermost/session.rb
+++ b/lib/mattermost/session.rb
@@ -54,7 +54,15 @@ module Mattermost
end
def params
- Rack::Utils.parse_query(@oauth_uri.query).symbolize_keys
+ Rack::Utils.parse_query(oauth_uri.query).symbolize_keys
+ end
+
+ def get(path, options = {})
+ self.class.get(path, options.merge(headers: @headers))
+ end
+
+ def post(path, options = {})
+ self.class.post(path, options.merge(headers: @headers))
end
private
@@ -63,11 +71,12 @@ module Mattermost
return unless oauth_uri
return unless token_uri
- self.token = request_token
+ @token = request_token
@headers = {
- "Authorization": "Bearer #{self.token}"
+ Authorization: "Bearer #{@token}"
}
- self.token
+
+ @token
end
def destroy
@@ -75,35 +84,32 @@ module Mattermost
end
def oauth_uri
+ return @oauth_uri if defined?(@oauth_uri)
+
+ @oauth_uri = nil
+
response = get("/api/v3/oauth/gitlab/login", follow_redirects: false)
return unless 300 <= response.code && response.code < 400
redirect_uri = response.headers['location']
return unless redirect_uri
- @oauth_uri ||= URI.parse(redirect_uri)
+ @oauth_uri = URI.parse(redirect_uri)
end
def token_uri
@token_uri ||=
- if @oauth_uri
+ if oauth_uri
authorization.authorize.redirect_uri if pre_auth.authorizable?
end
end
def request_token
- response = get(@token_uri, follow_redirects: false)
+ response = get(token_uri, follow_redirects: false)
+
if 200 <= response.code && response.code < 400
response.headers['token']
end
end
-
- def get(path, options = {})
- self.class.get(path, options.merge(headers: @headers))
- end
-
- def post(path, options = {})
- self.class.post(path, options.merge(headers: @headers))
- end
end
end