diff --git a/src/controllers/api/saveSettingsController.ts b/src/controllers/api/saveSettingsController.ts new file mode 100644 index 00000000..72bf8bfa --- /dev/null +++ b/src/controllers/api/saveSettingsController.ts @@ -0,0 +1,22 @@ +import { getAccountIdForRequest } from "@/src/services/loginService"; +import { getJSONfromString } from "@/src/helpers/stringHelpers"; +import { getInventory } from "@/src/services/inventoryService"; +import { RequestHandler } from "express"; +import { ISettings } from "../../types/inventoryTypes/inventoryTypes"; + +interface ISaveSettingsRequest { + Settings: ISettings; +} + +const saveSettingsController: RequestHandler = async (req, res): Promise => { + const accountId = await getAccountIdForRequest(req); + + const settingResults = getJSONfromString(String(req.body)); + + const inventory = await getInventory(accountId); + inventory.Settings = Object.assign(inventory.Settings, settingResults.Settings); + await inventory.save(); + res.json(inventory.Settings); +}; + +export { saveSettingsController }; diff --git a/src/routes/api.ts b/src/routes/api.ts index 353ccc48..ef353ebf 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -87,6 +87,7 @@ import { updateQuestController } from "@/src/controllers/api/updateQuestControll import { updateSessionGetController, updateSessionPostController } from "@/src/controllers/api/updateSessionController"; import { updateThemeController } from "../controllers/api/updateThemeController"; import { upgradesController } from "@/src/controllers/api/upgradesController"; +import { saveSettingsController } from "../controllers/api/saveSettingsController"; const apiRouter = express.Router(); @@ -184,5 +185,6 @@ apiRouter.post("/updateQuest.php", updateQuestController); apiRouter.post("/updateSession.php", updateSessionPostController); apiRouter.post("/updateTheme.php", updateThemeController); apiRouter.post("/upgrades.php", upgradesController); +apiRouter.post("/saveSettings.php", saveSettingsController); export { apiRouter };