@mathisalarcon/discord-bot-dashboard-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.http +4 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +230 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/permissions/route.d.ts +3 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/permissions/route.js +72 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/roles/[roleId]/route.d.ts +9 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/roles/[roleId]/route.js +225 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/roles/route.d.ts +3 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/roles/route.js +74 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/route.d.ts +7 -0
- package/dist/routes/guilds/[guildId]/members/[memberId]/route.js +72 -0
- package/dist/routes/guilds/[guildId]/members/route.d.ts +3 -0
- package/dist/routes/guilds/[guildId]/members/route.js +73 -0
- package/dist/routes/guilds/[guildId]/roles/[roleId]/members/route.d.ts +3 -0
- package/dist/routes/guilds/[guildId]/roles/[roleId]/members/route.js +70 -0
- package/dist/routes/guilds/[guildId]/roles/[roleId]/route.d.ts +7 -0
- package/dist/routes/guilds/[guildId]/roles/[roleId]/route.js +68 -0
- package/dist/routes/guilds/[guildId]/roles/route.d.ts +3 -0
- package/dist/routes/guilds/[guildId]/roles/route.js +67 -0
- package/dist/routes/guilds/[guildId]/route.d.ts +6 -0
- package/dist/routes/guilds/[guildId]/route.js +63 -0
- package/dist/routes/guilds/route.d.ts +3 -0
- package/dist/routes/guilds/route.js +68 -0
- package/dist/routes/middleware.d.ts +2 -0
- package/dist/routes/middleware.js +54 -0
- package/docs.md +13 -0
- package/package.json +28 -0
- package/src/index.ts +143 -0
- package/src/routes/guilds/[guildId]/members/[memberId]/permissions/route.ts +26 -0
- package/src/routes/guilds/[guildId]/members/[memberId]/roles/[roleId]/route.ts +163 -0
- package/src/routes/guilds/[guildId]/members/[memberId]/roles/route.ts +29 -0
- package/src/routes/guilds/[guildId]/members/[memberId]/route.ts +29 -0
- package/src/routes/guilds/[guildId]/members/route.ts +32 -0
- package/src/routes/guilds/[guildId]/roles/[roleId]/members/route.ts +25 -0
- package/src/routes/guilds/[guildId]/roles/[roleId]/route.ts +27 -0
- package/src/routes/guilds/[guildId]/roles/route.ts +22 -0
- package/src/routes/guilds/[guildId]/route.ts +23 -0
- package/src/routes/guilds/route.ts +28 -0
- package/src/routes/middleware.ts +14 -0
- package/src/types/express.d.ts +11 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var _a, guildId, memberId, guild, member, error_1;
|
|
43
|
+
return __generator(this, function (_b) {
|
|
44
|
+
switch (_b.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
_a = req.params, guildId = _a.guildId, memberId = _a.memberId;
|
|
47
|
+
_b.label = 1;
|
|
48
|
+
case 1:
|
|
49
|
+
_b.trys.push([1, 4, , 5]);
|
|
50
|
+
return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
|
|
51
|
+
case 2:
|
|
52
|
+
guild = _b.sent();
|
|
53
|
+
if (!guild)
|
|
54
|
+
return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
|
|
55
|
+
return [4 /*yield*/, guild.members
|
|
56
|
+
.fetch({
|
|
57
|
+
user: memberId,
|
|
58
|
+
})
|
|
59
|
+
.catch(function () { return null; })];
|
|
60
|
+
case 3:
|
|
61
|
+
member = _b.sent();
|
|
62
|
+
if (!member)
|
|
63
|
+
return [2 /*return*/, res.status(404).json({ error: "Member not found", code: "MEMBER_NOT_FOUND" })];
|
|
64
|
+
return [2 /*return*/, res.status(200).json(member.toJSON())];
|
|
65
|
+
case 4:
|
|
66
|
+
error_1 = _b.sent();
|
|
67
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
68
|
+
case 5: return [2 /*return*/];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var guildId, limit, after, guild, members, membersArray, startIndex, paginatedMembers, error_1;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
switch (_a.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
guildId = req.params.guildId;
|
|
47
|
+
limit = req.query.limit ? Number(req.query.limit) : 50;
|
|
48
|
+
after = req.query.after ? req.query.after : null;
|
|
49
|
+
_a.label = 1;
|
|
50
|
+
case 1:
|
|
51
|
+
_a.trys.push([1, 4, , 5]);
|
|
52
|
+
return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
|
|
53
|
+
case 2:
|
|
54
|
+
guild = _a.sent();
|
|
55
|
+
if (!guild)
|
|
56
|
+
return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
|
|
57
|
+
return [4 /*yield*/, guild.members.fetch()];
|
|
58
|
+
case 3:
|
|
59
|
+
members = _a.sent();
|
|
60
|
+
membersArray = Array.from(members.values());
|
|
61
|
+
startIndex = after
|
|
62
|
+
? membersArray.findIndex(function (m) { return m.id === after; }) + 1
|
|
63
|
+
: 0;
|
|
64
|
+
paginatedMembers = membersArray.slice(startIndex, startIndex + limit);
|
|
65
|
+
return [2 /*return*/, res.status(200).json(paginatedMembers)];
|
|
66
|
+
case 4:
|
|
67
|
+
error_1 = _a.sent();
|
|
68
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
69
|
+
case 5: return [2 /*return*/];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var _a, guildId, roleId, guild, role, error_1;
|
|
43
|
+
return __generator(this, function (_b) {
|
|
44
|
+
switch (_b.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
_a = req.params, guildId = _a.guildId, roleId = _a.roleId;
|
|
47
|
+
_b.label = 1;
|
|
48
|
+
case 1:
|
|
49
|
+
_b.trys.push([1, 4, , 5]);
|
|
50
|
+
return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
|
|
51
|
+
case 2:
|
|
52
|
+
guild = _b.sent();
|
|
53
|
+
if (!guild)
|
|
54
|
+
return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
|
|
55
|
+
return [4 /*yield*/, guild.roles.fetch(roleId).catch(function () { return null; })];
|
|
56
|
+
case 3:
|
|
57
|
+
role = _b.sent();
|
|
58
|
+
if (!role)
|
|
59
|
+
return [2 /*return*/, res.status(404).json({ error: "Role not found", code: "ROLE_NOT_FOUND" })];
|
|
60
|
+
return [2 /*return*/, res
|
|
61
|
+
.status(200)
|
|
62
|
+
.json(role.members.map(function (member) { return member.toJSON(); }))];
|
|
63
|
+
case 4:
|
|
64
|
+
error_1 = _b.sent();
|
|
65
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
66
|
+
case 5: return [2 /*return*/];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import express from "express";
|
|
2
|
+
import { Client } from "discord.js";
|
|
3
|
+
import { Params as SubParams } from "../../route";
|
|
4
|
+
export type Params = SubParams & {
|
|
5
|
+
roleId: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function GET(req: express.Request, res: express.Response, client: Client): Promise<express.Response<any, Record<string, any>>>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var _a, guildId, roleId, guild, role, error_1;
|
|
43
|
+
return __generator(this, function (_b) {
|
|
44
|
+
switch (_b.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
_a = req.params, guildId = _a.guildId, roleId = _a.roleId;
|
|
47
|
+
_b.label = 1;
|
|
48
|
+
case 1:
|
|
49
|
+
_b.trys.push([1, 4, , 5]);
|
|
50
|
+
return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
|
|
51
|
+
case 2:
|
|
52
|
+
guild = _b.sent();
|
|
53
|
+
if (!guild)
|
|
54
|
+
return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
|
|
55
|
+
return [4 /*yield*/, guild.roles.fetch(roleId).catch(function () { return null; })];
|
|
56
|
+
case 3:
|
|
57
|
+
role = _b.sent();
|
|
58
|
+
if (!role)
|
|
59
|
+
return [2 /*return*/, res.status(404).json({ error: "Role not found", code: "ROLE_NOT_FOUND" })];
|
|
60
|
+
return [2 /*return*/, res.status(200).json(role.toJSON())];
|
|
61
|
+
case 4:
|
|
62
|
+
error_1 = _b.sent();
|
|
63
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
64
|
+
case 5: return [2 /*return*/];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var guildId, guild, roles, rolesJSON, error_1;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
switch (_a.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
guildId = req.params.guildId;
|
|
47
|
+
_a.label = 1;
|
|
48
|
+
case 1:
|
|
49
|
+
_a.trys.push([1, 4, , 5]);
|
|
50
|
+
return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
|
|
51
|
+
case 2:
|
|
52
|
+
guild = _a.sent();
|
|
53
|
+
if (!guild)
|
|
54
|
+
return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
|
|
55
|
+
return [4 /*yield*/, guild.roles.fetch()];
|
|
56
|
+
case 3:
|
|
57
|
+
roles = _a.sent();
|
|
58
|
+
rolesJSON = Array.from(roles.values()).map(function (role) { return role.toJSON(); });
|
|
59
|
+
return [2 /*return*/, res.status(200).json(rolesJSON)];
|
|
60
|
+
case 4:
|
|
61
|
+
error_1 = _a.sent();
|
|
62
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
63
|
+
case 5: return [2 /*return*/];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var guildId, guild, error_1;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
switch (_a.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
guildId = req.params.guildId;
|
|
47
|
+
_a.label = 1;
|
|
48
|
+
case 1:
|
|
49
|
+
_a.trys.push([1, 3, , 4]);
|
|
50
|
+
return [4 /*yield*/, client.guilds.fetch(guildId).catch(function () { return null; })];
|
|
51
|
+
case 2:
|
|
52
|
+
guild = _a.sent();
|
|
53
|
+
if (!guild)
|
|
54
|
+
return [2 /*return*/, res.status(404).json({ error: "Guild not found", code: "GUILD_NOT_FOUND" })];
|
|
55
|
+
return [2 /*return*/, res.status(200).json(guild.toJSON())];
|
|
56
|
+
case 3:
|
|
57
|
+
error_1 = _a.sent();
|
|
58
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
59
|
+
case 4: return [2 /*return*/];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GET = GET;
|
|
40
|
+
function GET(req, res, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var limit, after, guilds, _a, _b, startIndex, paginatedGuilds, guildsJSON, error_1;
|
|
43
|
+
return __generator(this, function (_c) {
|
|
44
|
+
switch (_c.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
limit = req.query.limit ? Number(req.query.limit) : 50;
|
|
47
|
+
after = req.query.after ? req.query.after : null;
|
|
48
|
+
_c.label = 1;
|
|
49
|
+
case 1:
|
|
50
|
+
_c.trys.push([1, 3, , 4]);
|
|
51
|
+
_b = (_a = Array).from;
|
|
52
|
+
return [4 /*yield*/, client.guilds.fetch().then(function (g) { return g.values(); })];
|
|
53
|
+
case 2:
|
|
54
|
+
guilds = _b.apply(_a, [_c.sent()]);
|
|
55
|
+
startIndex = after
|
|
56
|
+
? guilds.findIndex(function (g) { return g.id === after; }) + 1
|
|
57
|
+
: 0;
|
|
58
|
+
paginatedGuilds = guilds.slice(startIndex, startIndex + limit);
|
|
59
|
+
guildsJSON = paginatedGuilds.map(function (guild) { return guild.toJSON(); });
|
|
60
|
+
return [2 /*return*/, res.status(200).json(guildsJSON)];
|
|
61
|
+
case 3:
|
|
62
|
+
error_1 = _c.sent();
|
|
63
|
+
return [2 /*return*/, res.status(500).json({ error: "Internal Server Error", code: "INTERNAL_SERVER_ERROR" })];
|
|
64
|
+
case 4: return [2 /*return*/];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.default = default_1;
|
|
40
|
+
function default_1(req, res, next, client) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
return __generator(this, function (_a) {
|
|
43
|
+
// Check if bot token is provided
|
|
44
|
+
if (!req.headers["authorization"])
|
|
45
|
+
return [2 /*return*/, res
|
|
46
|
+
.status(401)
|
|
47
|
+
.send({ error: "Unauthorized", code: "UNAUTHORIZED" })];
|
|
48
|
+
if (req.headers["authorization"] !== req.app.get("secret"))
|
|
49
|
+
return [2 /*return*/, res.status(403).send({ error: "Forbidden", code: "FORBIDDEN" })];
|
|
50
|
+
next();
|
|
51
|
+
return [2 /*return*/];
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
package/docs.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!-- Error codes -->
|
|
2
|
+
| Error Code | Description |
|
|
3
|
+
|------------|---------------------------------|
|
|
4
|
+
| UNAUTHORIZED | Missing or invalid authentication |
|
|
5
|
+
| FORBIDDEN | Insufficient permissions |
|
|
6
|
+
| INTERNAL_SERVER_ERROR | An unexpected error occurred |
|
|
7
|
+
| GUILD_NOT_FOUND | The specified guild does not exist |
|
|
8
|
+
| MEMBER_NOT_FOUND | The specified member does not exist |
|
|
9
|
+
| ROLE_NOT_FOUND | The specified role does not exist |
|
|
10
|
+
| BOT_MEMBER_NOT_FOUND | The bot is not a member of the guild |
|
|
11
|
+
| BOT_MISSING_PERMISSIONS | The bot lacks necessary permissions |
|
|
12
|
+
| BOT_ROLE_HIERARCHY | The bot's role is not high enough to perform the action |
|
|
13
|
+
| ALREADY_EXISTS | The action cannot be performed because the entity is already in the desired state |
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mathisalarcon/discord-bot-dashboard-api",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "npx tsc",
|
|
9
|
+
"build:watch": "npx tsc --watch",
|
|
10
|
+
"dev": "node dist/.test.js"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [],
|
|
13
|
+
"author": "",
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"type": "commonjs",
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@types/express": "^5.0.6",
|
|
18
|
+
"@types/node": "^25.0.6",
|
|
19
|
+
"nodemon": "^3.1.11",
|
|
20
|
+
"ts-node": "^10.9.2",
|
|
21
|
+
"typescript": "^5.9.3"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"discord.js": "^14.25.1",
|
|
25
|
+
"dotenv": "^17.2.3",
|
|
26
|
+
"express": "^5.2.1"
|
|
27
|
+
}
|
|
28
|
+
}
|