@@ -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
const { action, dev } = request . query ;
@@ -67,7 +70,11 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
67
70
switch ( action ) {
68
71
case GROUP_ROLE_ADD . ADD_ROLE : {
69
72
const memberGroupRoleList = await request . json ( ) ;
70
- const res = await bulkAddGroupRoleHandler ( memberGroupRoleList , env ) ;
73
+ const res = await bulkAddGroupRoleHandler (
74
+ memberGroupRoleList ,
75
+ env ,
76
+ reason
77
+ ) ;
71
78
return res ;
72
79
}
73
80
default : {
@@ -82,7 +89,8 @@ export async function getGuildRolesPostHandler(request: IRequest, env: env) {
82
89
83
90
export async function bulkAddGroupRoleHandler (
84
91
memberGroupRoleList : memberGroupRole [ ] ,
85
- env : env
92
+ env : env ,
93
+ reason ?: string
86
94
) : Promise < JSONResponse > {
87
95
try {
88
96
if ( ! Array . isArray ( memberGroupRoleList ) ) {
@@ -110,12 +118,13 @@ export async function bulkAddGroupRoleHandler(
110
118
const { userid, roleid } = memberGroupRole ;
111
119
try {
112
120
const createGuildRoleUrl = `${ DISCORD_BASE_URL } /guilds/${ env . DISCORD_GUILD_ID } /members/${ userid } /roles/${ roleid } ` ;
121
+ const headers : HeadersInit = createDiscordHeaders ( {
122
+ reason,
123
+ token : env . DISCORD_TOKEN ,
124
+ } ) ;
113
125
const options = {
114
126
method : "PUT" ,
115
- headers : {
116
- "Content-Type" : "application/json" ,
117
- Authorization : `Bot ${ env . DISCORD_TOKEN } ` ,
118
- } ,
127
+ headers,
119
128
} ;
120
129
return await fetch ( createGuildRoleUrl , options ) ;
121
130
} catch ( error ) {
@@ -146,13 +155,15 @@ export async function bulkAddGroupRoleHandler(
146
155
147
156
export async function removeGuildRoleHandler ( request : IRequest , env : env ) {
148
157
const authHeader = request . headers . get ( "Authorization" ) ;
158
+ const reason = request . headers . get ( "X-Audit-Log-Reason" ) ;
159
+
149
160
if ( ! authHeader ) {
150
161
return new JSONResponse ( response . BAD_SIGNATURE , { status : 401 } ) ;
151
162
}
152
163
try {
153
164
await verifyAuthToken ( authHeader , env ) ;
154
165
const body : memberGroupRole = await request . json ( ) ;
155
- const res = await removeGuildRole ( body , env ) ;
166
+ const res = await removeGuildRole ( body , env , reason ) ;
156
167
return new JSONResponse ( res , {
157
168
status : 200 ,
158
169
headers : {
0 commit comments