simplegoals
Version:
Motivate your users with pleasant and easy-to-use achievements.
47 lines (43 loc) • 1.1 kB
JavaScript
import { postRequest } from './support'
export const saveCloudGoal = async (name, options) => {
if (options.useCloudStorage) {
let data = {
name: name
}
addAuthData(data, options)
await postRequest("/goals/unlock", data)
} else {
return false
}
}
const addAuthData = (hash, options) => {
hash.appId = options.appId
hash.user = options.user
}
export const loadFromCloud = async (goals, options) => {
if (options.useCloudStorage) {
let data = {
goals: Object.keys(goals).map((key) => {
return {
name: key,
description: goals[key].description
}
}),
unlockedGoals: Object.keys(goals).filter((key) => {
goals[key].unlocked
})
}
addAuthData(data, options)
const response = await postRequest("/sessions", data)
if (response) {
updateGoalsFromCloud(response, goals)
}
} else {
return false
}
}
const updateGoalsFromCloud = (response, goals) => {
for (const key of Object.keys(goals)) {
goals[key].unlocked = response.unlockedGoals.includes(key)
}
}