mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 12:18:45 -05:00
shopping load with pagination
This commit is contained in:
@@ -191,23 +191,13 @@ export const useShoppingStore = defineStore(_STORE_ID, () => {
|
|||||||
autoSyncLastTimestamp.value = new Date();
|
autoSyncLastTimestamp.value = new Date();
|
||||||
|
|
||||||
let api = new ApiApi()
|
let api = new ApiApi()
|
||||||
let requestParameters = {pageSize: 200} as ApiShoppingListEntryListRequest
|
let requestParameters = {pageSize: 50, page: 1} as ApiShoppingListEntryListRequest
|
||||||
if (mealPlanId) {
|
if (mealPlanId) {
|
||||||
requestParameters.mealplan = mealPlanId
|
requestParameters.mealplan = mealPlanId
|
||||||
}
|
}
|
||||||
|
|
||||||
api.apiShoppingListEntryList(requestParameters).then((r) => {
|
entries.value = new Map<number, ShoppingListEntry>
|
||||||
entries.value = new Map<number, ShoppingListEntry>
|
recLoadShoppingListEntries(requestParameters)
|
||||||
// TODO properly load pages
|
|
||||||
r.results.forEach((e) => {
|
|
||||||
entries.value.set(e.id!, e)
|
|
||||||
})
|
|
||||||
currentlyUpdating.value = false
|
|
||||||
initialized.value = true
|
|
||||||
}).catch((err) => {
|
|
||||||
currentlyUpdating.value = false
|
|
||||||
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
|
|
||||||
})
|
|
||||||
|
|
||||||
api.apiSupermarketCategoryList().then(r => {
|
api.apiSupermarketCategoryList().then(r => {
|
||||||
supermarketCategories.value = r.results
|
supermarketCategories.value = r.results
|
||||||
@@ -223,6 +213,29 @@ export const useShoppingStore = defineStore(_STORE_ID, () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* recursively load shopping list entries from paginated api
|
||||||
|
* @param requestParameters
|
||||||
|
*/
|
||||||
|
function recLoadShoppingListEntries(requestParameters: ApiShoppingListEntryListRequest){
|
||||||
|
let api = new ApiApi()
|
||||||
|
api.apiShoppingListEntryList(requestParameters).then((r) => {
|
||||||
|
r.results.forEach((e) => {
|
||||||
|
entries.value.set(e.id!, e)
|
||||||
|
})
|
||||||
|
if(r.next){
|
||||||
|
requestParameters.page = requestParameters.page + 1
|
||||||
|
recLoadShoppingListEntries(requestParameters)
|
||||||
|
} else {
|
||||||
|
currentlyUpdating.value = false
|
||||||
|
initialized.value = true
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
currentlyUpdating.value = false
|
||||||
|
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* perform auto sync request to special endpoint returning only entries changed since last auto sync
|
* perform auto sync request to special endpoint returning only entries changed since last auto sync
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user