implement PATCH connection
This commit is contained in:
parent
6a52e65e27
commit
5c682137b2
Binary file not shown.
@ -0,0 +1,51 @@
|
||||
import { route } from "@fosscord/api";
|
||||
import { Request, Response, Router } from "express";
|
||||
import {
|
||||
ConnectedAccount,
|
||||
DiscordApiErrors,
|
||||
OrmUtils,
|
||||
} from "../../../../../../../util";
|
||||
const router = Router();
|
||||
|
||||
// TODO: connection update schema
|
||||
router.patch(
|
||||
"/",
|
||||
route({ body: "ConnectionUpdateSchema" }),
|
||||
async (req: Request, res: Response) => {
|
||||
const { connection_name, connection_id } = req.params;
|
||||
|
||||
const connection = await ConnectedAccount.findOne({
|
||||
where: {
|
||||
user_id: req.user_id,
|
||||
external_id: connection_id,
|
||||
type: connection_name,
|
||||
},
|
||||
select: [
|
||||
"external_id",
|
||||
"type",
|
||||
"name",
|
||||
"verified",
|
||||
"visibility",
|
||||
"show_activity",
|
||||
"revoked",
|
||||
"friend_sync",
|
||||
"integrations",
|
||||
],
|
||||
});
|
||||
|
||||
if (!connection) return DiscordApiErrors.UNKNOWN_CONNECTION;
|
||||
// TODO: do we need to do anything if the connection is revoked?
|
||||
OrmUtils.mergeDeep(connection, req.body);
|
||||
await ConnectedAccount.update(
|
||||
{
|
||||
user_id: req.user_id,
|
||||
external_id: connection_id,
|
||||
type: connection_name,
|
||||
},
|
||||
connection,
|
||||
);
|
||||
res.json(connection.toJSON());
|
||||
},
|
||||
);
|
||||
|
||||
export default router;
|
||||
@ -32,10 +32,12 @@ export class ConnectedAccountDTO {
|
||||
this.show_activity = connectedAccount.show_activity;
|
||||
this.type = connectedAccount.type;
|
||||
this.verified = connectedAccount.verified;
|
||||
this.visibility = connectedAccount.visibility;
|
||||
this.visibility = +(connectedAccount.visibility || false);
|
||||
this.integrations = connectedAccount.integrations;
|
||||
this.metadata_ = connectedAccount.metadata_;
|
||||
this.metadata_visibility = connectedAccount.metadata_visibility;
|
||||
this.metadata_visibility = +(
|
||||
connectedAccount.metadata_visibility || false
|
||||
);
|
||||
this.two_way_link = connectedAccount.two_way_link;
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ export class ConnectedAccount extends BaseClass {
|
||||
verified?: boolean = true;
|
||||
|
||||
@Column({ select: false })
|
||||
visibility?: number = 0;
|
||||
visibility?: boolean = false;
|
||||
|
||||
@Column({ type: "simple-array" })
|
||||
integrations?: string[] = [];
|
||||
@ -71,7 +71,7 @@ export class ConnectedAccount extends BaseClass {
|
||||
metadata_?: any;
|
||||
|
||||
@Column()
|
||||
metadata_visibility?: number = 0;
|
||||
metadata_visibility?: boolean = false;
|
||||
|
||||
@Column()
|
||||
two_way_link?: boolean = false;
|
||||
|
||||
3
src/util/entities/ConnectionUpdateSchema.ts
Normal file
3
src/util/entities/ConnectionUpdateSchema.ts
Normal file
@ -0,0 +1,3 @@
|
||||
export interface ConnectionUpdateSchema {
|
||||
visibility?: boolean;
|
||||
}
|
||||
@ -28,6 +28,7 @@ export * from "./ClientRelease";
|
||||
export * from "./Config";
|
||||
export * from "./ConnectedAccount";
|
||||
export * from "./ConnectionConfigEntity";
|
||||
export * from "./ConnectionUpdateSchema";
|
||||
export * from "./EmbedCache";
|
||||
export * from "./Emoji";
|
||||
export * from "./Encryption";
|
||||
|
||||
@ -578,6 +578,7 @@ export const DiscordApiErrors = {
|
||||
UNKNOWN_EMOJI: new ApiError("Unknown emoji", 10014),
|
||||
UNKNOWN_WEBHOOK: new ApiError("Unknown webhook", 10015),
|
||||
UNKNOWN_WEBHOOK_SERVICE: new ApiError("Unknown webhook service", 10016),
|
||||
UNKNOWN_CONNECTION: new ApiError("Unknown connection", 10017, 400),
|
||||
UNKNOWN_SESSION: new ApiError("Unknown session", 10020),
|
||||
UNKNOWN_BAN: new ApiError("Unknown ban", 10026),
|
||||
UNKNOWN_SKU: new ApiError("Unknown SKU", 10027),
|
||||
|
||||
Reference in New Issue
Block a user