Add past week action
This commit is contained in:
parent
3bda8ced7d
commit
633965afaa
@ -6,6 +6,7 @@ const ACTIONS = {
|
|||||||
"current-shift": aggietime.current_shift,
|
"current-shift": aggietime.current_shift,
|
||||||
"current-user": aggietime.get_user_info,
|
"current-user": aggietime.get_user_info,
|
||||||
"status-line": aggietime.get_status_line,
|
"status-line": aggietime.get_status_line,
|
||||||
|
"past-week": aggietime.last_week,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const do_action = async (body) => {
|
export const do_action = async (body) => {
|
||||||
|
@ -5,8 +5,10 @@ import {
|
|||||||
USER_CACHE_EXP_SEC,
|
USER_CACHE_EXP_SEC,
|
||||||
CLOCKIN_PATH,
|
CLOCKIN_PATH,
|
||||||
CLOCKOUT_PATH,
|
CLOCKOUT_PATH,
|
||||||
|
SUMMARY_PATH,
|
||||||
OPEN_SHIFT_PATH,
|
OPEN_SHIFT_PATH,
|
||||||
OPEN_SHIFT_EXP_SEC,
|
OPEN_SHIFT_EXP_SEC,
|
||||||
|
PAST_WEEK_EXP_SEC,
|
||||||
} from "./constants.js";
|
} from "./constants.js";
|
||||||
|
|
||||||
import { with_exponential_retry } from "./exponential_retry.js";
|
import { with_exponential_retry } from "./exponential_retry.js";
|
||||||
@ -119,3 +121,30 @@ export const get_status_line = async () => {
|
|||||||
}
|
}
|
||||||
return { status: expireCache.get("status_line") };
|
return { status: expireCache.get("status_line") };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const last_week = async ({ position_id }) => {
|
||||||
|
position_id = await get_user_position_or_specified(position_id);
|
||||||
|
const [start, end] = [
|
||||||
|
((d) => {
|
||||||
|
const day = d.getDay();
|
||||||
|
const diff = d.getDate() - day + (day == 0 ? -6 : 1);
|
||||||
|
return new Date(d.setDate(diff));
|
||||||
|
})(new Date()),
|
||||||
|
new Date(),
|
||||||
|
].map((d) => d.toISOString().split("T")[0]);
|
||||||
|
|
||||||
|
if (!expireCache.get("past_week")) {
|
||||||
|
const { anumber } = await get_user_info();
|
||||||
|
|
||||||
|
const hours = await aggietime
|
||||||
|
.get(replace_path_args(SUMMARY_PATH, { position_id, start, end }))
|
||||||
|
.then(({ data: { undisputed_hours } }) => undisputed_hours);
|
||||||
|
|
||||||
|
expireCache.set(
|
||||||
|
"past_week",
|
||||||
|
`${anumber} - ${hours} hours`,
|
||||||
|
PAST_WEEK_EXP_SEC
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return { status: expireCache.get("past_week") };
|
||||||
|
};
|
||||||
|
@ -11,8 +11,11 @@ export const LOGIN_PATH = "api/v1/auth/login";
|
|||||||
export const CLOCKIN_PATH = "api/v1/positions/:position_id/clock_in";
|
export const CLOCKIN_PATH = "api/v1/positions/:position_id/clock_in";
|
||||||
export const CLOCKOUT_PATH = "api/v1/positions/:position_id/clock_out";
|
export const CLOCKOUT_PATH = "api/v1/positions/:position_id/clock_out";
|
||||||
export const USER_PATH = "api/v1/auth/get_user_info";
|
export const USER_PATH = "api/v1/auth/get_user_info";
|
||||||
|
export const SUMMARY_PATH =
|
||||||
|
"api/v1/positions/:position_id/summary?start=:start&end=:end";
|
||||||
export const OPEN_SHIFT_PATH = "api/v1/users/:anumber/open_shift";
|
export const OPEN_SHIFT_PATH = "api/v1/users/:anumber/open_shift";
|
||||||
export const OPEN_SHIFT_EXP_SEC = 60;
|
export const OPEN_SHIFT_EXP_SEC = 60;
|
||||||
|
export const PAST_WEEK_EXP_SEC = 180;
|
||||||
|
|
||||||
export const USER_CACHE_EXP_SEC = 30;
|
export const USER_CACHE_EXP_SEC = 30;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user