Send user and roles id array in GET /guilds/:id/members/:id
This commit is contained in:
parent
e545edad94
commit
6e47b8e0b3
@ -7235,6 +7235,55 @@
|
|||||||
"$ref": "#/components/schemas/Member"
|
"$ref": "#/components/schemas/Member"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"APIPublicMember": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"guild_id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"nick": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"joined_at": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "date-time"
|
||||||
|
},
|
||||||
|
"pending": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"deaf": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"mute": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"premium_since": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"$ref": "#/components/schemas/PublicUser"
|
||||||
|
},
|
||||||
|
"roles": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"deaf",
|
||||||
|
"guild_id",
|
||||||
|
"id",
|
||||||
|
"joined_at",
|
||||||
|
"mute",
|
||||||
|
"pending",
|
||||||
|
"roles",
|
||||||
|
"user"
|
||||||
|
]
|
||||||
|
},
|
||||||
"APIGuildWithJoinedAt": {
|
"APIGuildWithJoinedAt": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -12467,7 +12516,7 @@
|
|||||||
"content": {
|
"content": {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/components/schemas/Member"
|
"$ref": "#/components/schemas/APIPublicMember"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4197
assets/schemas.json
4197
assets/schemas.json
File diff suppressed because it is too large
Load Diff
@ -34,9 +34,7 @@ const settings = {
|
|||||||
noExtraProps: true,
|
noExtraProps: true,
|
||||||
defaultProps: false,
|
defaultProps: false,
|
||||||
};
|
};
|
||||||
const compilerOptions = {
|
|
||||||
strictNullChecks: true,
|
|
||||||
};
|
|
||||||
const Excluded = [
|
const Excluded = [
|
||||||
"DefaultSchema",
|
"DefaultSchema",
|
||||||
"Schema",
|
"Schema",
|
||||||
@ -61,14 +59,6 @@ const Excluded = [
|
|||||||
"TransportMakeRequestResponse",
|
"TransportMakeRequestResponse",
|
||||||
];
|
];
|
||||||
|
|
||||||
function modify(obj) {
|
|
||||||
for (var k in obj) {
|
|
||||||
if (typeof obj[k] === "object" && obj[k] !== null) {
|
|
||||||
modify(obj[k]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
const program = TJS.programFromConfig(
|
const program = TJS.programFromConfig(
|
||||||
path.join(__dirname, "..", "tsconfig.json"),
|
path.join(__dirname, "..", "tsconfig.json"),
|
||||||
@ -111,32 +101,12 @@ function main() {
|
|||||||
delete part.properties[key];
|
delete part.properties[key];
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (part.properties[key].anyOf) {
|
|
||||||
// const nullIndex = part.properties[key].anyOf.findIndex(
|
|
||||||
// (x) => x.type == "null",
|
|
||||||
// );
|
|
||||||
// if (nullIndex != -1) {
|
|
||||||
// part.properties[key].nullable = true;
|
|
||||||
// part.properties[key].anyOf.splice(nullIndex, 1);
|
|
||||||
|
|
||||||
// if (part.properties[key].anyOf.length == 1) {
|
|
||||||
// Object.assign(
|
|
||||||
// part.properties[key],
|
|
||||||
// part.properties[key].anyOf[0],
|
|
||||||
// );
|
|
||||||
// delete part.properties[key].anyOf;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
definitions = { ...definitions, [name]: { ...part } };
|
definitions = { ...definitions, [name]: { ...part } };
|
||||||
}
|
}
|
||||||
|
|
||||||
//modify(definitions);
|
|
||||||
|
|
||||||
fs.writeFileSync(schemaPath, JSON.stringify(definitions, null, 4));
|
fs.writeFileSync(schemaPath, JSON.stringify(definitions, null, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@ import {
|
|||||||
handleFile,
|
handleFile,
|
||||||
Member,
|
Member,
|
||||||
MemberChangeSchema,
|
MemberChangeSchema,
|
||||||
|
PublicMemberProjection,
|
||||||
|
PublicUserProjection,
|
||||||
Role,
|
Role,
|
||||||
Sticker,
|
Sticker,
|
||||||
} from "@spacebar/util";
|
} from "@spacebar/util";
|
||||||
@ -39,7 +41,7 @@ router.get(
|
|||||||
route({
|
route({
|
||||||
responses: {
|
responses: {
|
||||||
200: {
|
200: {
|
||||||
body: "Member",
|
body: "APIPublicMember",
|
||||||
},
|
},
|
||||||
403: {
|
403: {
|
||||||
body: "APIErrorResponse",
|
body: "APIErrorResponse",
|
||||||
@ -55,9 +57,28 @@ router.get(
|
|||||||
|
|
||||||
const member = await Member.findOneOrFail({
|
const member = await Member.findOneOrFail({
|
||||||
where: { id: member_id, guild_id },
|
where: { id: member_id, guild_id },
|
||||||
|
relations: ["roles", "user"],
|
||||||
|
select: {
|
||||||
|
index: true,
|
||||||
|
// only grab public member props
|
||||||
|
...Object.fromEntries(
|
||||||
|
PublicMemberProjection.map((x) => [x, true]),
|
||||||
|
),
|
||||||
|
// and public user props
|
||||||
|
user: Object.fromEntries(
|
||||||
|
PublicUserProjection.map((x) => [x, true]),
|
||||||
|
),
|
||||||
|
roles: {
|
||||||
|
id: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
return res.json(member);
|
return res.json({
|
||||||
|
...member.toPublicMember(),
|
||||||
|
user: member.user.toPublicUser(),
|
||||||
|
roles: member.roles.map((x) => x.id),
|
||||||
|
});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ import {
|
|||||||
Member,
|
Member,
|
||||||
Message,
|
Message,
|
||||||
PrivateUser,
|
PrivateUser,
|
||||||
|
PublicMember,
|
||||||
PublicUser,
|
PublicUser,
|
||||||
Role,
|
Role,
|
||||||
Sticker,
|
Sticker,
|
||||||
@ -68,6 +69,7 @@ export type APIChannelArray = Channel[];
|
|||||||
export type APIEmojiArray = Emoji[];
|
export type APIEmojiArray = Emoji[];
|
||||||
|
|
||||||
export type APIMemberArray = Member[];
|
export type APIMemberArray = Member[];
|
||||||
|
export type APIPublicMember = PublicMember;
|
||||||
|
|
||||||
export interface APIGuildWithJoinedAt extends Guild {
|
export interface APIGuildWithJoinedAt extends Guild {
|
||||||
joined_at: string;
|
joined_at: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user