From 5b57025b0b6a45f7239d0291df26e9753522f8fc Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Fri, 4 Oct 2019 11:13:10 -0700 Subject: [PATCH] plugin: Only move message cursor in response to retrieveMessages --- plugin/src/ApiContext.lua | 8 +++++--- plugin/src/Session.lua | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/plugin/src/ApiContext.lua b/plugin/src/ApiContext.lua index 898564c6..94db09df 100644 --- a/plugin/src/ApiContext.lua +++ b/plugin/src/ApiContext.lua @@ -131,13 +131,15 @@ function ApiContext:read(ids) return Promise.reject("Server changed ID") end - self.messageCursor = body.messageCursor - return body end) end -function ApiContext:retrieveMessages() +function ApiContext:retrieveMessages(initialCursor) + if initialCursor ~= nil then + self.messageCursor = initialCursor + end + local url = ("%s/api/subscribe/%s"):format(self.baseUrl, self.messageCursor) local function sendRequest() diff --git a/plugin/src/Session.lua b/plugin/src/Session.lua index 50d47cd0..36835250 100644 --- a/plugin/src/Session.lua +++ b/plugin/src/Session.lua @@ -33,7 +33,7 @@ function Session.new(config) end self.reconciler:reconcile(response.instances, api.rootInstanceId, game) - return self:__processMessages() + return self:__processMessages(response.messageCursor) end) :catch(function(message) self.disconnected = true @@ -43,12 +43,12 @@ function Session.new(config) return not self.disconnected, setmetatable(self, Session) end -function Session:__processMessages() +function Session:__processMessages(initialCursor) if self.disconnected then return Promise.resolve() end - return self.api:retrieveMessages() + return self.api:retrieveMessages(initialCursor) :andThen(function(messages) local promise = Promise.resolve(nil)