Skip to content
This repository has been archived by the owner on Sep 12, 2023. It is now read-only.

Commit

Permalink
intrn(post): preload the semesters
Browse files Browse the repository at this point in the history
  • Loading branch information
KennethTrecy committed Nov 13, 2022
1 parent 73287bd commit 2d027dc
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 4 deletions.
37 changes: 34 additions & 3 deletions routes/enhancer/forum/index.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ import type { AuthenticatedRequest } from "!/types/dependent"
import type { DeserializedUserProfile } from "$/types/documents/user"
import type { DeserializedPostListDocument } from "$/types/documents/post"

import { DEFAULT_LIST_LIMIT } from "$/constants/numerical"

import Policy from "!/bases/policy"
import Manager from "%/managers/post"
import deserialize from "$/object/deserialize"
import SemesterManager from "%/managers/semester"
import DepartmentManager from "%/managers/department"
import resetToMidnight from "$/time/reset_to_midnight"
import adjustUntilChosenDay from "$/time/adjust_until_chosen_day"
Expand All @@ -15,6 +18,7 @@ import adjustBeforeMidnightOfNextDay from "$/time/adjust_before_midnight_of_next

import PermissionBasedPolicy from "!/policies/permission-based"
import { post as permissionGroup } from "$/permissions/permission_list"
import { READ as READ_SEMESTERS } from "$/permissions/semester_combinations"
import {
READ_ANYONE_ON_OWN_DEPARTMENT,
READ_ANYONE_ON_ALL_DEPARTMENTS
Expand Down Expand Up @@ -62,12 +66,38 @@ export default class extends PageMiddleware {
"existence": "exists"
},
"page": {
"limit": 10,
"limit": DEFAULT_LIST_LIMIT,
"offset": 0
},
"sort": [ "-createdAt" ]
}) as DeserializedPostListDocument<"poster"|"posterRole"|"department">

let semesters: Serializable = {
"data": [],
"meta": {
"count": 0
}
}

const mayViewSemesters = permissionGroup.hasOneRoleAllowed(userProfile.data.roles.data, [
READ_SEMESTERS
])
if (mayViewSemesters) {
const semesterManager = new SemesterManager(request)

semesters = await semesterManager.list({
"filter": {
"existence": "exists",
"slug": ""
},
"page": {
"limit": DEFAULT_LIST_LIMIT,
"offset": 0
},
"sort": [ "name" ]
})
}

const pageProps = {
"departments": mayViewAllDepartments
? await departmentManager.list({
Expand All @@ -76,7 +106,7 @@ export default class extends PageMiddleware {
"slug": ""
},
"page": {
"limit": 10,
"limit": DEFAULT_LIST_LIMIT,
"offset": 0
},
"sort": [ "fullName" ]
Expand All @@ -87,7 +117,8 @@ export default class extends PageMiddleware {
"count": 0
}
},
posts
posts,
semesters
}

return pageProps
Expand Down
2 changes: 1 addition & 1 deletion shareable/types/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,8 @@ export type ChatMessageQueryParameters<T extends number|string = string> =

export type PostQueryParameters<T extends number|string = string> =
& CommonQueryParameters
& NullableDepartmentFilter<T>
& DateTimeRangeFilter
& NullableDepartmentFilter<T>

export type TimeSumQueryParameters<T extends number|string = string> =
& CommonQueryParameters
Expand Down

0 comments on commit 2d027dc

Please sign in to comment.