From a59a78f44c3a5967020b0ac09350cf8a583392f8 Mon Sep 17 00:00:00 2001 From: smilerz Date: Sun, 17 Dec 2023 15:02:20 -0600 Subject: [PATCH] update meal-plan API on MealPlanStore --- vue/src/stores/MealPlanStore.js | 83 ++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 38 deletions(-) diff --git a/vue/src/stores/MealPlanStore.js b/vue/src/stores/MealPlanStore.js index d4bef67bc..f32072660 100644 --- a/vue/src/stores/MealPlanStore.js +++ b/vue/src/stores/MealPlanStore.js @@ -1,14 +1,14 @@ -import {defineStore} from 'pinia' -import {ApiApiFactory} from "@/utils/openapi/api"; - -const _STORE_ID = 'meal_plan_store' -const _LOCAL_STORAGE_KEY = 'MEAL_PLAN_CLIENT_SETTINGS' +import { ApiApiFactory } from "@/utils/openapi/api" +import { StandardToasts } from "@/utils/utils" +import { defineStore } from "pinia" import Vue from "vue" -import {StandardToasts} from "@/utils/utils"; + +const _STORE_ID = "meal_plan_store" +const _LOCAL_STORAGE_KEY = "MEAL_PLAN_CLIENT_SETTINGS" /* -* test store to play around with pinia and see if it can work for my usecases -* dont trust that all mealplans are in store as there is no cache validation logic, its just a shared data holder -* */ + * test store to play around with pinia and see if it can work for my usecases + * dont trust that all mealplans are in store as there is no cache validation logic, its just a shared data holder + * */ export const useMealPlanStore = defineStore(_STORE_ID, { state: () => ({ plans: {}, @@ -19,7 +19,7 @@ export const useMealPlanStore = defineStore(_STORE_ID, { plan_list: function () { let plan_list = [] for (let key in this.plans) { - plan_list.push(this.plans[key]); + plan_list.push(this.plans[key]) } return plan_list }, @@ -35,7 +35,7 @@ export const useMealPlanStore = defineStore(_STORE_ID, { servings: 1, shared: [], title: "", - title_placeholder: 'Title', // meal plan edit modal should be improved to not need this + title_placeholder: "Title", // meal plan edit modal should be improved to not need this } }, client_settings: function () { @@ -43,7 +43,7 @@ export const useMealPlanStore = defineStore(_STORE_ID, { this.settings = this.loadClientSettings() } return this.settings - } + }, }, actions: { refreshFromAPI(from_date, to_date) { @@ -51,14 +51,12 @@ export const useMealPlanStore = defineStore(_STORE_ID, { this.currently_updating = [from_date, to_date] // certainly no perfect check but better than nothing let options = { - query: { - from_date: from_date, - to_date: to_date, - }, + from_date: from_date, + to_date: to_date, } let apiClient = new ApiApiFactory() - apiClient.listMealPlans(options).then(r => { + apiClient.listMealPlans(options).then((r) => { r.data.forEach((p) => { Vue.set(this.plans, p.id, p) }) @@ -68,31 +66,40 @@ export const useMealPlanStore = defineStore(_STORE_ID, { }, createObject(object) { let apiClient = new ApiApiFactory() - return apiClient.createMealPlan(object).then(r => { - //StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_CREATE) - Vue.set(this.plans, r.data.id, r.data) - return r - }).catch(err => { - StandardToasts.makeStandardToast(this, StandardToasts.FAIL_CREATE, err) - }) + return apiClient + .createMealPlan(object) + .then((r) => { + //StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_CREATE) + Vue.set(this.plans, r.data.id, r.data) + return r + }) + .catch((err) => { + StandardToasts.makeStandardToast(this, StandardToasts.FAIL_CREATE, err) + }) }, updateObject(object) { let apiClient = new ApiApiFactory() - return apiClient.updateMealPlan(object.id, object).then(r => { - //StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_UPDATE) - Vue.set(this.plans, object.id, object) - }).catch(err => { - StandardToasts.makeStandardToast(this, StandardToasts.FAIL_UPDATE, err) - }) + return apiClient + .updateMealPlan(object.id, object) + .then((r) => { + //StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_UPDATE) + Vue.set(this.plans, object.id, object) + }) + .catch((err) => { + StandardToasts.makeStandardToast(this, StandardToasts.FAIL_UPDATE, err) + }) }, deleteObject(object) { let apiClient = new ApiApiFactory() - return apiClient.destroyMealPlan(object.id).then(r => { - //StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_DELETE) - Vue.delete(this.plans, object.id) - }).catch(err => { - StandardToasts.makeStandardToast(this, StandardToasts.FAIL_DELETE, err) - }) + return apiClient + .destroyMealPlan(object.id) + .then((r) => { + //StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_DELETE) + Vue.delete(this.plans, object.id) + }) + .catch((err) => { + StandardToasts.makeStandardToast(this, StandardToasts.FAIL_DELETE, err) + }) }, updateClientSettings(settings) { this.settings = settings @@ -110,6 +117,6 @@ export const useMealPlanStore = defineStore(_STORE_ID, { } else { return JSON.parse(s) } - } + }, }, -}) \ No newline at end of file +})