|
6 | 6 | addGroupRole,
|
7 | 7 | createGuildRole,
|
8 | 8 | removeGuildRole,
|
| 9 | + getGuildRoleByName, |
| 10 | + getGuildRoles, |
9 | 11 | } from "../utils/guildRole";
|
10 | 12 | import {
|
11 | 13 | createNewRole,
|
@@ -69,14 +71,52 @@ export async function removeGuildRoleHandler(request: IRequest, env: env) {
|
69 | 71 | }
|
70 | 72 | }
|
71 | 73 | export async function getGuildRolesHandler(request: IRequest, env: env) {
|
72 |
| - // To be implemented |
73 |
| - return new JSONResponse(response.NOT_FOUND); |
| 74 | + const authHeader = request.headers.get("Authorization"); |
| 75 | + |
| 76 | + if (!authHeader) { |
| 77 | + return new JSONResponse(response.BAD_SIGNATURE, { status: 401 }); |
| 78 | + } |
| 79 | + try { |
| 80 | + await verifyAuthToken(authHeader, env); |
| 81 | + const roles = await getGuildRoles(env); |
| 82 | + return new JSONResponse({ roles }); |
| 83 | + } catch (err: any) { |
| 84 | + if (err.message === response.ROLE_FETCH_FAILED_MESSAGE) { |
| 85 | + return new JSONResponse(response.ROLE_FETCH_FAILED_ERROR, { |
| 86 | + status: 500, |
| 87 | + }); |
| 88 | + } |
| 89 | + return new JSONResponse(response.INTERNAL_SERVER_ERROR, { status: 500 }); |
| 90 | + } |
74 | 91 | }
|
75 | 92 |
|
76 | 93 | export async function getGuildRoleByRoleNameHandler(
|
77 | 94 | request: IRequest,
|
78 | 95 | env: env
|
79 | 96 | ) {
|
80 |
| - // To be implemented |
81 |
| - return new JSONResponse(response.NOT_FOUND); |
| 97 | + const authHeader = request.headers.get("Authorization"); |
| 98 | + const roleName = decodeURI(request.params?.roleName ?? ""); |
| 99 | + |
| 100 | + if (!authHeader) { |
| 101 | + return new JSONResponse(response.BAD_SIGNATURE, { status: 401 }); |
| 102 | + } |
| 103 | + |
| 104 | + if (!roleName) { |
| 105 | + return new JSONResponse(response.NOT_FOUND, { status: 404 }); |
| 106 | + } |
| 107 | + try { |
| 108 | + await verifyAuthToken(authHeader, env); |
| 109 | + const role = await getGuildRoleByName(roleName, env); |
| 110 | + if (!role) { |
| 111 | + return new JSONResponse(response.NOT_FOUND, { status: 404 }); |
| 112 | + } |
| 113 | + return new JSONResponse(role); |
| 114 | + } catch (err: any) { |
| 115 | + if (err.message === response.ROLE_FETCH_FAILED_MESSAGE) { |
| 116 | + return new JSONResponse(response.ROLE_FETCH_FAILED_ERROR, { |
| 117 | + status: 500, |
| 118 | + }); |
| 119 | + } |
| 120 | + return new JSONResponse(response.INTERNAL_SERVER_ERROR, { status: 500 }); |
| 121 | + } |
82 | 122 | }
|
0 commit comments