Skip to content

Commit

Permalink
collect access token
Browse files Browse the repository at this point in the history
  • Loading branch information
sebasptsch committed Jan 11, 2025
1 parent 3ce26f3 commit e019662
Show file tree
Hide file tree
Showing 10 changed files with 904 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .changeset/cyan-steaks-flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"frontend": patch
---

Collect access tokens in preparation for notification editing
8 changes: 8 additions & 0 deletions packages/frontend/app/routes/api/auth.discord.callback.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,19 +65,27 @@ export const APIRoute = createAPIFileRoute("/api/auth/discord/callback")({

const guildMember = await api.users.getGuildMember(env.VITE_GUILD_ID);

const { accessToken, refreshToken, accessTokenExpiresAt } = tokens

const [authedUser] = await db
.insert(userTable)
.values({
id: discordUser.id,
username: guildMember.nick || discordUser.username,
roles: guildMember.roles,
accessToken,
refreshToken,
accessTokenExpiresAt,
})
.onConflictDoUpdate({
target: userTable.id,
set: {
username: guildMember.nick || discordUser.username,
roles: guildMember.roles,
updatedAt: new Date().toISOString(),
accessToken,
refreshToken,
accessTokenExpiresAt,
},
})
.returning();
Expand Down
7 changes: 7 additions & 0 deletions packages/frontend/app/server/drizzle/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,13 @@ export const userTable = pgTable("User", {
.notNull(),
id: text("id").primaryKey().notNull(),
roles: text("roles").array(),
accessToken: text("accessToken"),
refreshToken: text("refreshToken"),
accessTokenExpiresAt: timestamp("accessTokenExpiresAt", {
precision: 3,
mode: "date",
withTimezone: true,
}),
defaultStatus: rsvpStatus("defaultStatus"),
additionalOutreachHours: integer("additionalOutreachHours")
.default(0)
Expand Down
6 changes: 5 additions & 1 deletion packages/frontend/app/server/schema/UserSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ import { userTable } from "../drizzle/schema";

export const UserSchema = createSelectSchema(userTable, {
roles: z.array(z.string()).nullable(),
});
}).omit({
accessToken: true,
refreshToken: true,
accessTokenExpiresAt: true,
})

export default UserSchema;
2 changes: 1 addition & 1 deletion packages/frontend/drizzle.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { Config } from "drizzle-kit";

export default {
dialect: "postgresql",
schema: "./src/api/drizzle/schema.ts",
schema: "./app/server/drizzle/schema.ts",
out: "./drizzle",
dbCredentials: {
host: "localhost",
Expand Down
3 changes: 3 additions & 0 deletions packages/frontend/drizzle/0014_new_edwin_jarvis.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ALTER TABLE "User" ADD COLUMN "accessToken" text;--> statement-breakpoint
ALTER TABLE "User" ADD COLUMN "refreshToken" text;--> statement-breakpoint
ALTER TABLE "User" ADD COLUMN "expiresAt" timestamp(3) with time zone;
1 change: 1 addition & 0 deletions packages/frontend/drizzle/0015_chilly_silver_samurai.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE "User" RENAME COLUMN "expiresAt" TO "accessTokenExpiresAt";
Loading

0 comments on commit e019662

Please sign in to comment.