@@ -13,10 +13,11 @@ import {
1313 createNewRole ,
1414 memberGroupRole ,
1515} from "../typeDefinitions/discordMessage.types" ;
16- import { verifyAuthToken } from "../utils/verifyAuthToken" ;
16+ import { verifyAuthToken , verifyCronJobsToken } from "../utils/verifyAuthToken" ;
1717import { batchDiscordRequests } from "../utils/batchDiscordRequests" ;
1818import { DISCORD_BASE_URL } from "../constants/urls" ;
1919import { GROUP_ROLE_ADD } from "../constants/requestsActions" ;
20+ import createDiscordHeaders from "../utils/createDiscordHeaders" ;
2021
2122export async function createGuildRoleHandler ( request : IRequest , env : env ) {
2223 const authHeader = request . headers . get ( "Authorization" ) ;
@@ -26,8 +27,8 @@ export async function createGuildRoleHandler(request: IRequest, env: env) {
2627 try {
2728 await verifyAuthToken ( authHeader , env ) ;
2829 const body : createNewRole = await request . json ( ) ;
29-
30- const res = await createGuildRole ( body , env ) ;
30+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
31+ const res = await createGuildRole ( body , env , reason ) ;
3132 return new JSONResponse ( res ) ;
3233 } catch ( err ) {
3334 return new JSONResponse ( response . BAD_SIGNATURE ) ;
@@ -41,8 +42,9 @@ export async function addGroupRoleHandler(request: IRequest, env: env) {
4142 try {
4243 await verifyAuthToken ( authHeader , env ) ;
4344 const body : memberGroupRole = await request . json ( ) ;
45+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
4446
45- const res = await addGroupRole ( body , env ) ;
47+ const res = await addGroupRole ( body , env , reason ) ;
4648 return new JSONResponse ( res ) ;
4749 } catch ( err ) {
4850 return new JSONResponse ( response . BAD_SIGNATURE ) ;
@@ -54,15 +56,20 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
5456 if ( ! authHeader ) {
5557 return new JSONResponse ( response . BAD_SIGNATURE ) ;
5658 }
59+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
5760
5861 try {
59- await verifyAuthToken ( authHeader , env ) ;
62+ await verifyCronJobsToken ( authHeader , env ) ;
6063 const { action } = request . query ;
6164
6265 switch ( action ) {
6366 case GROUP_ROLE_ADD . ADD_ROLE : {
6467 const memberGroupRoleList = await request . json ( ) ;
65- const res = await bulkAddGroupRoleHandler ( memberGroupRoleList , env ) ;
68+ const res = await bulkAddGroupRoleHandler (
69+ memberGroupRoleList ,
70+ env ,
71+ reason
72+ ) ;
6673 return res ;
6774 }
6875 default : {
@@ -77,7 +84,8 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
7784
7885export async function bulkAddGroupRoleHandler (
7986 memberGroupRoleList : memberGroupRole [ ] ,
80- env : env
87+ env : env ,
88+ reason ?: string
8189) : Promise < JSONResponse > {
8290 try {
8391 if ( ! Array . isArray ( memberGroupRoleList ) ) {
@@ -105,12 +113,13 @@ export async function bulkAddGroupRoleHandler(
105113 const { userid, roleid } = memberGroupRole ;
106114 try {
107115 const createGuildRoleUrl = `${ DISCORD_BASE_URL } /guilds/${ env . DISCORD_GUILD_ID } /members/${ userid } /roles/${ roleid } ` ;
116+ const headers : HeadersInit = createDiscordHeaders ( {
117+ reason,
118+ token : env . DISCORD_TOKEN ,
119+ } ) ;
108120 const options = {
109121 method : "PUT" ,
110- headers : {
111- "Content-Type" : "application/json" ,
112- Authorization : `Bot ${ env . DISCORD_TOKEN } ` ,
113- } ,
122+ headers,
114123 } ;
115124 return await fetch ( createGuildRoleUrl , options ) ;
116125 } catch ( error ) {
@@ -141,13 +150,15 @@ export async function bulkAddGroupRoleHandler(
141150
142151export async function removeGuildRoleHandler ( request : IRequest , env : env ) {
143152 const authHeader = request . headers . get ( "Authorization" ) ;
153+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
154+
144155 if ( ! authHeader ) {
145156 return new JSONResponse ( response . BAD_SIGNATURE , { status : 401 } ) ;
146157 }
147158 try {
148159 await verifyAuthToken ( authHeader , env ) ;
149160 const body : memberGroupRole = await request . json ( ) ;
150- const res = await removeGuildRole ( body , env ) ;
161+ const res = await removeGuildRole ( body , env , reason ) ;
151162 return new JSONResponse ( res , {
152163 status : 200 ,
153164 headers : {
0 commit comments