|
| 1 | +import { ApplicationStatus, PrismaClient } from "@prisma/client"; |
1 | 2 | import { Request, Response } from "express";
|
2 | 3 |
|
3 |
| -import { PrismaClient } from "@prisma/client"; |
4 | 4 | import { validationResult } from "express-validator";
|
5 | 5 | import Core from "../Core.js";
|
6 | 6 | import { userHasPermissions } from "../web/routes/utils/CheckUserPermissionMiddleware.js";
|
@@ -157,6 +157,45 @@ class UserController {
|
157 | 157 | }
|
158 | 158 | }
|
159 | 159 |
|
| 160 | + public async getUserReviews(req: Request, res: Response) { |
| 161 | + const errors = validationResult(req); |
| 162 | + if (!errors.isEmpty()) { |
| 163 | + return res.status(400).json({ errors: errors.array() }); |
| 164 | + } |
| 165 | + |
| 166 | + if (!req.kauth.grant) { |
| 167 | + return res.status(401).json("You are not permited to do this!"); |
| 168 | + } |
| 169 | + const user = await this.core.getPrisma().user.findFirst({ |
| 170 | + where: { |
| 171 | + id: req.params.id, |
| 172 | + }, |
| 173 | + }); |
| 174 | + |
| 175 | + if (user.ssoId != req.kauth.grant.access_token.content.sub) { |
| 176 | + return res.status(401).json("You are not permited to do this!"); |
| 177 | + } |
| 178 | + |
| 179 | + const reviewPermissions = await this.core |
| 180 | + .getPrisma() |
| 181 | + .userPermission.findMany({ |
| 182 | + where: { userId: user.id, permissionId: "team.application.review" }, |
| 183 | + select: { buildTeamId: true, id: true }, |
| 184 | + }); |
| 185 | + |
| 186 | + const applications = await this.core.getPrisma().application.findMany({ |
| 187 | + where: { |
| 188 | + status: { in: [ApplicationStatus.SEND, ApplicationStatus.REVIEWING] }, |
| 189 | + buildteamId: { in: reviewPermissions.map((p) => p.buildTeamId) }, |
| 190 | + }, |
| 191 | + include: { |
| 192 | + buildteam: { select: { slug: true, name: true, icon: true } }, |
| 193 | + }, |
| 194 | + }); |
| 195 | + |
| 196 | + res.send(applications); |
| 197 | + } |
| 198 | + |
160 | 199 | public async updateUser(req: Request, res: Response) {
|
161 | 200 | const errors = validationResult(req);
|
162 | 201 | if (!errors.isEmpty()) {
|
|
0 commit comments