Skip to content

Commit 0f2295e

Browse files
committed
Lots of updates to reflect v3 site changes
1 parent 307ce7e commit 0f2295e

18 files changed

+534
-482
lines changed

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
"node-fetch": "^2.7.0",
2727
"npm-run-all": "^4.1.5",
2828
"prisma": "^5.12.1",
29-
"resend": "^3.2.0",
3029
"socket.io": "^4.7.5",
31-
"socket.io-msgpack-parser": "^3.0.2",
3230
"tsconfig-paths": "^4.2.0",
3331
"tslib": "^2.6.2",
3432
"typescript": "^5.6.2",

pnpm-lock.yaml

Lines changed: 0 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

prisma/schema.prisma

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,8 @@ model accounts {
1616
avatar String? @default("")
1717
banner String? @default("")
1818
created_at DateTime @default(now()) @db.Timestamp(6)
19-
last_status Int @default(0) @db.SmallInt
20-
last_note String? @default("") @db.VarChar(255)
21-
last_note_d DateTime? @default(now()) @db.Timestamp(6)
22-
dm_option Int @default(0) @db.SmallInt
23-
filter_option Int @default(0) @db.SmallInt
19+
last_status String? @default("") @db.VarChar(255)
20+
last_status_d DateTime? @default(now()) @db.Timestamp(6)
2421
last_data_req DateTime? @db.Timestamp(6)
2522
member_messages member_messages[]
2623
member_roles member_roles[]
@@ -45,7 +42,6 @@ model posts {
4542
model channels {
4643
id String @id @default(dbgenerated("uuid_generate_v4()")) @db.Uuid
4744
name String @db.VarChar(20)
48-
description String? @default("")
4945
created_at DateTime @default(now()) @db.Timestamp(6)
5046
server_id String? @db.Uuid
5147
servers servers? @relation(fields: [server_id], references: [id], onDelete: NoAction, onUpdate: NoAction)

sql/init.sql

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ CREATE TABLE accounts (
99
avatar TEXT DEFAULT '',
1010
banner TEXT DEFAULT '',
1111
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
12-
last_status SMALLINT NOT NULL DEFAULT 0,
13-
last_note VARCHAR(255) DEFAULT '',
14-
last_note_d TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
15-
dm_option SMALLINT NOT NULL DEFAULT 0,
16-
filter_option SMALLINT NOT NULL DEFAULT 0,
12+
last_status VARCHAR(255) DEFAULT '',
13+
last_status_d TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
1714
last_data_req TIMESTAMP
1815
);
1916

@@ -63,7 +60,6 @@ CREATE TABLE servers (
6360
CREATE TABLE channels (
6461
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
6562
name VARCHAR(20) NOT NULL,
66-
description TEXT DEFAULT '',
6763
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
6864
server_id UUID REFERENCES servers(id)
6965
);

src/api.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ import {
2121
fetchMe,
2222
data,
2323
sharePost,
24-
updateDM,
25-
updateFilter,
26-
updateNote,
2724
updateStatus,
2825
fetchServers,
2926
fetchUser,
27+
fetchOurPosts,
28+
fetchHomePosts,
29+
fetchConvos,
3030
} from "./endpoints/profiles";
3131
import {
3232
createServer,
@@ -121,14 +121,14 @@ app.get("/token", generateAccessToken);
121121
// Profiles
122122
app.post("/me/password", changePassword);
123123
app.get("/me", fetchMe);
124+
app.get("/me/posts", fetchOurPosts);
125+
app.get("/me/home", fetchHomePosts);
126+
app.get("/me/convos", fetchConvos);
124127
app.get("/me/servers", fetchServers);
125128
app.post("/me/status", updateStatus);
126-
app.post("/me/note", updateNote);
127129
app.post("/me/post", sharePost);
128-
app.post("/me/dm", updateDM);
129-
app.post("/me/filter", updateFilter);
130130
app.post("/me/data", data);
131-
app.get('/user/:id', fetchUser);
131+
app.get("/user/:id", fetchUser);
132132

133133
// Servers
134134
app.post("/servers/create", createServer);

src/endpoints/channels.ts

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
import { Request, Response } from "express";
2-
import { channelName, description } from "../schemas";
3-
import { getParams, sendError, sendSuccess } from "../utils";
2+
import { channelName } from "../schemas";
3+
import {
4+
getChannel,
5+
getParams,
6+
getServer,
7+
informCustom,
8+
sendError,
9+
sendSuccess,
10+
} from "../utils";
411
import { MAX_CHANNELS, prismaClient } from "../vars";
512
import { object } from "zod";
613

7-
const createChannelSchema = object({ name: channelName, description });
14+
const createChannelSchema = object({ name: channelName });
815

916
const editChannelSchema = object({
1017
name: channelName,
11-
description,
1218
});
1319

1420
export async function createChannel(req: Request, res: Response) {
@@ -35,20 +41,26 @@ export async function createChannel(req: Request, res: Response) {
3541
const channelData = await prismaClient.channels.create({
3642
data: {
3743
name,
38-
description,
3944
server_id: req.serverId,
4045
},
4146

4247
select: {
4348
id: true,
4449
name: true,
45-
description: true,
4650
server_id: true,
4751
created_at: true,
4852
},
4953
});
5054

51-
return sendSuccess(res, { channelData }, true);
55+
const channel = await getChannel(channelData.id);
56+
const server = await getServer(req.serverId);
57+
58+
informCustom(req.userId, "channelCreated", "servers", {
59+
server,
60+
channel,
61+
});
62+
63+
return sendSuccess(res, { channel }, true);
5264
}
5365

5466
export async function editChannel(req: Request, res: Response) {
@@ -70,19 +82,24 @@ export async function editChannel(req: Request, res: Response) {
7082

7183
data: {
7284
name,
73-
description:
74-
description !== undefined ? description : req.channel.description,
7585
},
7686

7787
select: {
7888
id: true,
7989
name: true,
80-
description: true,
8190
created_at: true,
8291
},
8392
});
8493

85-
return sendSuccess(res, { channelData }, true);
94+
const channel = await getChannel(channelData.id);
95+
const server = await getServer(req.serverId);
96+
97+
informCustom(req.userId, "channelEdited", "servers", {
98+
server,
99+
channel,
100+
});
101+
102+
return sendSuccess(res, { channel }, true);
86103
}
87104

88105
export async function deleteChannel(req: Request, res: Response) {
@@ -101,5 +118,12 @@ export async function deleteChannel(req: Request, res: Response) {
101118
},
102119
});
103120

121+
const server = await getServer(req.serverId);
122+
123+
informCustom(req.userId, "channelDeleted", "servers", {
124+
server,
125+
channelId: req.channelId,
126+
});
127+
104128
return sendSuccess(res, "Channel deleted.");
105129
}

src/endpoints/invites.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Request, Response } from "express";
2-
import { generateChars, sendSuccess } from "../utils";
2+
import { generateChars, getServer, informCustom, sendSuccess } from "../utils";
33
import { prismaClient } from "../vars";
44

55
export async function regenerateInvite(req: Request, res: Response) {
@@ -15,6 +15,11 @@ export async function regenerateInvite(req: Request, res: Response) {
1515
},
1616
});
1717

18+
informCustom(req.userId, "inviteRegenerated", "servers", {
19+
server: await getServer(req.serverId),
20+
invite,
21+
});
22+
1823
return sendSuccess(res, { invite }, true);
1924
}
2025

@@ -29,6 +34,11 @@ export async function disableInvite(req: Request, res: Response) {
2934
},
3035
});
3136

37+
informCustom(req.userId, "inviteToggled", "servers", {
38+
server: await getServer(req.serverId),
39+
state: false,
40+
});
41+
3242
return sendSuccess(res, "Server invites disabled.");
3343
}
3444

@@ -43,5 +53,10 @@ export async function enableInvite(req: Request, res: Response) {
4353
},
4454
});
4555

56+
informCustom(req.userId, "inviteToggled", "servers", {
57+
server: await getServer(req.serverId),
58+
state: true,
59+
});
60+
4661
return sendSuccess(res, "Server invites enabled.");
4762
}

src/endpoints/members.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import { Request, Response } from "express";
22
import {
3+
getAccount,
34
getBannedServerMember,
45
getParams,
6+
getServer,
57
getServerMember,
8+
informCustom,
69
removeServerMember,
710
sendError,
811
sendSuccess,
@@ -42,6 +45,13 @@ export async function kickMember(req: Request, res: Response) {
4245

4346
await removeServerMember(req.serverId, memberId);
4447

48+
const server = await getServer(req.serverId);
49+
const member = await getAccount(req.userId);
50+
51+
informCustom(req.userId, "memberLeft", "servers", { server, member });
52+
53+
// TODO: informProfile target account serverLeft
54+
4555
return sendSuccess(res, "Member kicked.");
4656
}
4757

@@ -84,6 +94,12 @@ export async function banMember(req: Request, res: Response) {
8494
},
8595
});
8696

97+
const server = await getServer(req.serverId);
98+
const member = await getAccount(req.userId);
99+
100+
informCustom(req.userId, "memberLeft", "servers", { server, member });
101+
informCustom(req.userId, "memberBanned", "servers", { server, member });
102+
87103
return sendSuccess(res, "Member banned.");
88104
}
89105

@@ -121,5 +137,10 @@ export async function unbanMember(req: Request, res: Response) {
121137
},
122138
});
123139

140+
const server = await getServer(req.serverId);
141+
const member = await getAccount(req.userId);
142+
143+
informCustom(req.userId, "memberUnbanned", "servers", { server, member });
144+
124145
return sendSuccess(res, "Member unbanned.");
125146
}

src/endpoints/messages.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ export async function fetchMessages(req: Request, res: Response) {
125125
profile_id: true,
126126
created_at: true,
127127
reply_id: true,
128+
attachments: true,
129+
edited: true,
130+
spotify_embed: true,
131+
tenor_url: true,
128132
},
129133
});
130134

@@ -150,24 +154,15 @@ export async function fetchMessages(req: Request, res: Response) {
150154
banner: true,
151155
bio: true,
152156
created_at: true,
153-
last_note: true,
154157
last_status: true,
155158
username: true,
156159
member_servers: true,
157160
member_roles: true,
158161
},
159162
});
160163

161-
const {
162-
id,
163-
avatar,
164-
banner,
165-
bio,
166-
created_at,
167-
last_note,
168-
last_status,
169-
username,
170-
} = data;
164+
const { id, avatar, banner, bio, created_at, last_status, username } =
165+
data;
171166

172167
const server_username = data.member_servers.filter(
173168
(v) => v.server_id === req.serverId
@@ -181,13 +176,17 @@ export async function fetchMessages(req: Request, res: Response) {
181176
(v) => v.server_id === req.serverId
182177
);
183178

179+
const joined_at = data.member_servers.filter(
180+
(v) => v.server_id === req.serverId
181+
)[0].joined_at;
182+
184183
const finalData: ServerAccount = {
185184
id,
186185
avatar,
187186
banner,
188187
bio,
189188
created_at,
190-
last_note,
189+
joined_at,
191190
last_status,
192191
username,
193192
server_username,

0 commit comments

Comments
 (0)