Skip to content

Commit

Permalink
Merge pull request #581 from NBISweden/dev/fix-get-entries
Browse files Browse the repository at this point in the history
Rework unlimited time entries fetching
  • Loading branch information
KattisLej authored Aug 24, 2022
2 parents 29a1d51 + 6079b25 commit 73c1c37
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
7 changes: 5 additions & 2 deletions frontend/src/pages/SpentTime.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import { FetchedTimeEntry } from "model";

export const SpentTime = () => {
const [spentTime, setSpentTime] = useState<{}>({});
const today = new Date();
const oneYearAgo = new Date();
oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);

React.useEffect(() => {
getHoursPerActivity();
Expand All @@ -14,8 +17,8 @@ export const SpentTime = () => {
const getHoursPerActivity = async () => {
const timeEntries = await getTimeEntries(
undefined,
new Date(2019, 6, 5, 10, 33, 30),
new Date(),
oneYearAgo,
today,
context
);
let activityHours = {};
Expand Down
19 changes: 14 additions & 5 deletions frontend/src/utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -174,24 +174,29 @@ export const useEscaper = (

// Retrieve time entries via api
export const getTimeEntries = async (
issueActivityc: IssueActivityPair,
issueActivity: IssueActivityPair,
from_date: Date,
to_date: Date,
context: any
) => {
// The ofset param is used to get all time_entries
// from the api, as the limit per batch is 100
let offset = 0;
let offset: number = 0;
let gotTotal = false;

let queryparams = new URLSearchParams({
issue_id: issueActivityc ? `${issueActivityc.issue.id}` : "",
activity_id: issueActivityc ? `${issueActivityc.activity.id}` : "",
issue_id: issueActivity ? `${issueActivity.issue.id}` : "",
activity_id: issueActivity ? `${issueActivity.activity.id}` : "",
from: formatDate(from_date, dateFormat),
to: formatDate(to_date, dateFormat),
offset: `${offset}`,
limit: "100",
});

if (!issueActivity) {
queryparams.delete("issue_id");
queryparams.delete("activity_id");
}
let allEntries: FetchedTimeEntry[] = [];

while (gotTotal === false) {
Expand All @@ -201,12 +206,16 @@ export const getTimeEntries = async (
if (entries) {
if (entries.total_count > 100 && entries.time_entries.length == 100) {
offset += 100;
queryparams.set("offset", offset.toString());
} else {
gotTotal = true;
}
allEntries.push(...entries.time_entries);
} else {
gotTotal = true;
}
if (allEntries) return allEntries;
}
if (allEntries) return allEntries;

return null;
};

0 comments on commit 73c1c37

Please sign in to comment.