@@ -17,6 +17,7 @@ import { verifyAuthToken, verifyCronJobsToken } from "../utils/verifyAuthToken";
17
17
import { batchDiscordRequests } from "../utils/batchDiscordRequests" ;
18
18
import { DISCORD_BASE_URL } from "../constants/urls" ;
19
19
import { GROUP_ROLE_ADD } from "../constants/requestsActions" ;
20
+ import createDiscordHeaders from "../utils/createDiscordHeaders" ;
20
21
21
22
export async function createGuildRoleHandler ( request : IRequest , env : env ) {
22
23
const authHeader = request . headers . get ( "Authorization" ) ;
@@ -26,8 +27,8 @@ export async function createGuildRoleHandler(request: IRequest, env: env) {
26
27
try {
27
28
await verifyAuthToken ( authHeader , env ) ;
28
29
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 ) ;
31
32
return new JSONResponse ( res ) ;
32
33
} catch ( err ) {
33
34
return new JSONResponse ( response . BAD_SIGNATURE ) ;
@@ -41,8 +42,9 @@ export async function addGroupRoleHandler(request: IRequest, env: env) {
41
42
try {
42
43
await verifyAuthToken ( authHeader , env ) ;
43
44
const body : memberGroupRole = await request . json ( ) ;
45
+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
44
46
45
- const res = await addGroupRole ( body , env ) ;
47
+ const res = await addGroupRole ( body , env , reason ) ;
46
48
return new JSONResponse ( res ) ;
47
49
} catch ( err ) {
48
50
return new JSONResponse ( response . BAD_SIGNATURE ) ;
@@ -54,6 +56,7 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
54
56
if ( ! authHeader ) {
55
57
return new JSONResponse ( response . BAD_SIGNATURE ) ;
56
58
}
59
+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
57
60
58
61
try {
59
62
await verifyCronJobsToken ( authHeader , env ) ;
@@ -62,7 +65,11 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
62
65
switch ( action ) {
63
66
case GROUP_ROLE_ADD . ADD_ROLE : {
64
67
const memberGroupRoleList = await request . json ( ) ;
65
- const res = await bulkAddGroupRoleHandler ( memberGroupRoleList , env ) ;
68
+ const res = await bulkAddGroupRoleHandler (
69
+ memberGroupRoleList ,
70
+ env ,
71
+ reason
72
+ ) ;
66
73
return res ;
67
74
}
68
75
default : {
@@ -77,7 +84,8 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
77
84
78
85
export async function bulkAddGroupRoleHandler (
79
86
memberGroupRoleList : memberGroupRole [ ] ,
80
- env : env
87
+ env : env ,
88
+ reason ?: string
81
89
) : Promise < JSONResponse > {
82
90
try {
83
91
if ( ! Array . isArray ( memberGroupRoleList ) ) {
@@ -105,12 +113,13 @@ export async function bulkAddGroupRoleHandler(
105
113
const { userid, roleid } = memberGroupRole ;
106
114
try {
107
115
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
+ } ) ;
108
120
const options = {
109
121
method : "PUT" ,
110
- headers : {
111
- "Content-Type" : "application/json" ,
112
- Authorization : `Bot ${ env . DISCORD_TOKEN } ` ,
113
- } ,
122
+ headers,
114
123
} ;
115
124
return await fetch ( createGuildRoleUrl , options ) ;
116
125
} catch ( error ) {
@@ -141,13 +150,15 @@ export async function bulkAddGroupRoleHandler(
141
150
142
151
export async function removeGuildRoleHandler ( request : IRequest , env : env ) {
143
152
const authHeader = request . headers . get ( "Authorization" ) ;
153
+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
154
+
144
155
if ( ! authHeader ) {
145
156
return new JSONResponse ( response . BAD_SIGNATURE , { status : 401 } ) ;
146
157
}
147
158
try {
148
159
await verifyAuthToken ( authHeader , env ) ;
149
160
const body : memberGroupRole = await request . json ( ) ;
150
- const res = await removeGuildRole ( body , env ) ;
161
+ const res = await removeGuildRole ( body , env , reason ) ;
151
162
return new JSONResponse ( res , {
152
163
status : 200 ,
153
164
headers : {
0 commit comments