Otypování requestů na API
This commit is contained in:
@@ -192,19 +192,19 @@ export async function initIfNeeded(date?: Date) {
|
||||
*
|
||||
* @param login login uživatele
|
||||
* @param trusted příznak, zda se jedná o ověřeného uživatele
|
||||
* @param location vybrané "umístění"
|
||||
* @param locationIndex vybrané "umístění"
|
||||
* @param date datum, ke kterému se volba vztahuje
|
||||
* @returns
|
||||
*/
|
||||
export async function removeChoices(login: string, trusted: boolean, location: Locations, date?: Date) {
|
||||
export async function removeChoices(login: string, trusted: boolean, locationIndex: number, date?: Date) {
|
||||
const selectedDay = formatDate(date ?? getToday());
|
||||
let data: DayData = await storage.getData(selectedDay);
|
||||
validateTrusted(data, login, trusted);
|
||||
if (location in data.choices) {
|
||||
if (login in data.choices[location]) {
|
||||
delete data.choices[location][login]
|
||||
if (Object.keys(data.choices[location]).length === 0) {
|
||||
delete data.choices[location]
|
||||
if (locationIndex in data.choices) {
|
||||
if (login in data.choices[locationIndex]) {
|
||||
delete data.choices[locationIndex][login]
|
||||
if (Object.keys(data.choices[locationIndex]).length === 0) {
|
||||
delete data.choices[locationIndex]
|
||||
}
|
||||
await storage.setData(selectedDay, data);
|
||||
}
|
||||
@@ -218,20 +218,20 @@ export async function removeChoices(login: string, trusted: boolean, location: L
|
||||
*
|
||||
* @param login login uživatele
|
||||
* @param trusted příznak, zda se jedná o ověřeného uživatele
|
||||
* @param location vybrané "umístění"
|
||||
* @param locationIndex vybrané "umístění"
|
||||
* @param foodIndex index jídla v jídelním lístku daného umístění, pokud existuje
|
||||
* @param date datum, ke kterému se volba vztahuje
|
||||
* @returns
|
||||
*/
|
||||
export async function removeChoice(login: string, trusted: boolean, location: Locations, foodIndex: number, date?: Date) {
|
||||
export async function removeChoice(login: string, trusted: boolean, locationIndex: number, foodIndex: number, date?: Date) {
|
||||
const selectedDay = formatDate(date ?? getToday());
|
||||
let data: DayData = await storage.getData(selectedDay);
|
||||
validateTrusted(data, login, trusted);
|
||||
if (location in data.choices) {
|
||||
if (login in data.choices[location]) {
|
||||
const index = data.choices[location][login].options.indexOf(foodIndex);
|
||||
if (locationIndex in data.choices) {
|
||||
if (login in data.choices[locationIndex]) {
|
||||
const index = data.choices[locationIndex][login].options.indexOf(foodIndex);
|
||||
if (index > -1) {
|
||||
data.choices[location][login].options.splice(index, 1)
|
||||
data.choices[locationIndex][login].options.splice(index, 1)
|
||||
await storage.setData(selectedDay, data);
|
||||
}
|
||||
}
|
||||
@@ -285,13 +285,13 @@ function validateTrusted(data: ClientData, login: string, trusted: boolean) {
|
||||
*
|
||||
* @param login login uživatele
|
||||
* @param trusted příznak, zda se jedná o ověřeného uživatele
|
||||
* @param location vybrané "umístění"
|
||||
* @param locationIndex vybrané "umístění"
|
||||
* @param foodIndex volitelný index jídla v daném umístění
|
||||
* @param trusted příznak, zda se jedná o ověřeného uživatele
|
||||
* @param date datum, ke kterému se volba vztahuje
|
||||
* @returns aktuální data
|
||||
*/
|
||||
export async function addChoice(login: string, trusted: boolean, location: Locations, foodIndex?: number, date?: Date) {
|
||||
export async function addChoice(login: string, trusted: boolean, locationIndex: number, foodIndex?: number, date?: Date) {
|
||||
const usedDate = date ?? getToday();
|
||||
await initIfNeeded(usedDate);
|
||||
const selectedDate = formatDate(usedDate);
|
||||
@@ -301,17 +301,17 @@ export async function addChoice(login: string, trusted: boolean, location: Locat
|
||||
if (foodIndex == null) {
|
||||
data = await removeChoiceIfPresent(login, selectedDate);
|
||||
}
|
||||
if (!(location in data.choices)) {
|
||||
data.choices[location] = {};
|
||||
if (!(locationIndex in data.choices)) {
|
||||
data.choices[locationIndex] = {};
|
||||
}
|
||||
if (!(login in data.choices[location])) {
|
||||
data.choices[location][login] = {
|
||||
if (!(login in data.choices[locationIndex])) {
|
||||
data.choices[locationIndex][login] = {
|
||||
trusted,
|
||||
options: []
|
||||
};
|
||||
}
|
||||
if (foodIndex != null && !data.choices[location][login].options.includes(foodIndex)) {
|
||||
data.choices[location][login].options.push(foodIndex);
|
||||
if (foodIndex != null && !data.choices[locationIndex][login].options.includes(foodIndex)) {
|
||||
data.choices[locationIndex][login].options.push(foodIndex);
|
||||
}
|
||||
await storage.setData(selectedDate, data);
|
||||
return data;
|
||||
|
||||
Reference in New Issue
Block a user