Skip to content
This repository has been archived by the owner on Jul 28, 2022. It is now read-only.

Commit

Permalink
Merge pull request #84 from Acecateer/data
Browse files Browse the repository at this point in the history
Add events "Success" and "Failed" for data methods
  • Loading branch information
Sleitnick authored May 20, 2019
2 parents 1d5960a + 0d7db1a commit 8f9bc49
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions src/ServerStorage/Aero/Modules/Data.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
Promise<Void> data:SaveAll()
Promise<Void> data:Destroy([Boolean saveAll])
Number data:GetRequestBudget(DataStoreRequestType requestType)
EVENTS:
data.Success data.Success:Connect(String method, String key)
data.Failed data.Failed:Connect(String method, String key, String err)
METHOD DESCRIPTIONS:
Get
Expand Down Expand Up @@ -189,7 +193,9 @@ function Data.new(name, scope)
_cache = {};
_destroyed = false;
}, Data)


self.Success = self.Shared.Event.new()
self.Failed = self.Shared.Event.new()
dataPool[ds] = self

return self
Expand Down Expand Up @@ -225,9 +231,11 @@ function Data:_load(key)
return self._ds:GetAsync(key)
end)
if (success) then
self.Success:Fire("GetAsync", key)
self._cache[key] = value
resolve(value)
else
self.Failed:Fire("GetAsync", key, value)
reject(value)
end
end, true)
Expand All @@ -248,8 +256,10 @@ function Data:_save(key, value)
return self._ds:SetAsync(key, value)
end)
if (success) then
self.Success:Fire("SetAsync", key)
resolve()
else
self.Failed:Fire("SetAsync", key, err)
reject(err)
end
end, true)
Expand All @@ -262,8 +272,10 @@ function Data:_delete(key)
return self._ds:RemoveAsync(key)
end)
if (success) then
self.Success:Fire("RemoveAsync", key)
resolve()
else
self.Failed:Fire("RemoveAsync", key, err)
reject(err)
end
end, true)
Expand All @@ -276,8 +288,10 @@ function Data:_update(key, transformFunc)
return self._ds:UpdateAsync(key, transformFunc)
end)
if (success) then
self.Success:Fire("UpdateAsync", key)
resolve(value)
else
self.Failed:Fire("UpdateAsync", key, value)
reject(value)
end
end, true)
Expand Down Expand Up @@ -383,8 +397,10 @@ function Data:OnUpdate(key, callback)
return self._ds:OnUpdate(key, callback)
end)
if (success) then
self.Success:Fire("OnUpdate", key)
resolve()
else
self.Failed:Fire("OnUpdate", key, err)
reject(err)
end
end)
Expand Down Expand Up @@ -437,6 +453,8 @@ function Data:Destroy(save)
return Promise.Reject("Data already destroyed")
end
self._destroyed = true
self.Failed:Destroy()
self.Success:Destroy()
local savePromise
if (save) then
savePromise = self:SaveAll(false, nil)
Expand Down Expand Up @@ -512,7 +530,7 @@ function Data:Start()
bindable.Event:Wait()
bindable:Destroy()
end

local function AutoSaveAllData()
if (autoSaving) then return end
autoSaving = true
Expand Down

0 comments on commit 8f9bc49

Please sign in to comment.