From f187cc59d6c5a293ca4a1152fad3a0794e25e3ed Mon Sep 17 00:00:00 2001
From: "Z.J. van de Weg" <git@zjvandeweg.nl>
Date: Mon, 23 Jan 2017 12:58:51 +0100
Subject: [PATCH] Small update to the Mattermost API

These changes make it possible to wrap multiple API requests in one
session.
---
 lib/mattermost/client.rb  | 22 ++++++++++++++++------
 lib/mattermost/command.rb |  2 +-
 lib/mattermost/team.rb    |  2 +-
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/lib/mattermost/client.rb b/lib/mattermost/client.rb
index ec2903b7ec6..e55c0d6ac49 100644
--- a/lib/mattermost/client.rb
+++ b/lib/mattermost/client.rb
@@ -8,21 +8,31 @@ module Mattermost
       @user = user
     end
 
-    private
-
     def with_session(&blk)
       Mattermost::Session.new(user).with_session(&blk)
     end
 
-    def json_get(path, options = {})
+    private
+
+    # Should be used in a session manually
+    def get(session, path, options = {})
+      json_response session.get(path, options)
+    end
+
+    # Should be used in a session manually
+    def post(session, path, options = {})
+      json_response session.post(path, options)
+    end
+
+    def session_get(path, options = {})
       with_session do |session|
-        json_response session.get(path, options)
+        get(session, path, options)  
       end
     end
 
-    def json_post(path, options = {})
+    def session_post(path, options = {})
       with_session do |session|
-        json_response session.post(path, options)
+        post(session, path, options)
       end
     end
 
diff --git a/lib/mattermost/command.rb b/lib/mattermost/command.rb
index d1e4bb0eccf..33e450d7f0a 100644
--- a/lib/mattermost/command.rb
+++ b/lib/mattermost/command.rb
@@ -1,7 +1,7 @@
 module Mattermost
   class Command < Client
     def create(params)
-      response = json_post("/api/v3/teams/#{params[:team_id]}/commands/create",
+      response = session_post("/api/v3/teams/#{params[:team_id]}/commands/create",
         body: params.to_json)
 
       response['token']
diff --git a/lib/mattermost/team.rb b/lib/mattermost/team.rb
index 784eca6ab5a..09dfd082b3a 100644
--- a/lib/mattermost/team.rb
+++ b/lib/mattermost/team.rb
@@ -1,7 +1,7 @@
 module Mattermost
   class Team < Client
     def all
-      json_get('/api/v3/teams/all')
+      session_get('/api/v3/teams/all')
     end
   end
 end
-- 
GitLab