Skip to content

Commit 0363e9f

Browse files
committed
feat: add feature flag on verify command
1 parent f96ec15 commit 0363e9f

File tree

9 files changed

+45
-7
lines changed

9 files changed

+45
-7
lines changed

.github/workflows/register-commands-production.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
with:
5555
apiToken: ${{secrets.CLOUDFLARE_API_TOKEN}}
5656
accountId: ${{secrets.CLOUDFLARE_ACCOUNT_ID}}
57-
wranglerVersion: '3.57.0'
57+
wranglerVersion: "3.57.0"
5858
secrets: |
5959
DISCORD_PUBLIC_KEY
6060
DISCORD_TOKEN

.github/workflows/register-commands-staging.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
with:
5555
apiToken: ${{secrets.CLOUDFLARE_API_TOKEN}}
5656
accountId: ${{secrets.CLOUDFLARE_ACCOUNT_ID}}
57-
wranglerVersion: '3.57.0'
57+
wranglerVersion: "3.57.0"
5858
secrets: |
5959
DISCORD_PUBLIC_KEY
6060
DISCORD_TOKEN

config/config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import {
1313
RDS_STAGING_STATUS_SITE_URL,
1414
RDS_DASHBOARD_SITE_URL,
1515
RDS_STAGING_DASHBOARD_SITE_URL,
16+
RDS_MAIN_SITE_URL,
17+
RDS_STAGING_MAIN_SITE_URL,
18+
RDS_DEVELOPMENT_MAIN_SITE_URL,
1619
} from "../src/constants/urls";
1720
import {
1821
DISCORD_PROFILE_SERVICE_HELP_GROUP,
@@ -74,6 +77,7 @@ const config = (env: env) => {
7477
PROFILE_SERVICE_HELP_GROUP_ID: DISCORD_PROFILE_SERVICE_HELP_GROUP,
7578
RDS_STATUS_SITE_URL: RDS_STATUS_SITE_URL,
7679
DASHBOARD_SITE_URL: RDS_DASHBOARD_SITE_URL,
80+
MAIN_SITE_URL: RDS_MAIN_SITE_URL,
7781
},
7882
staging: {
7983
RDS_BASE_API_URL: RDS_BASE_STAGING_API_URL,
@@ -82,6 +86,7 @@ const config = (env: env) => {
8286
PROFILE_SERVICE_HELP_GROUP_ID: DISCORD_PROFILE_SERVICE_STAGING_HELP_GROUP,
8387
RDS_STATUS_SITE_URL: RDS_STAGING_STATUS_SITE_URL,
8488
DASHBOARD_SITE_URL: RDS_STAGING_DASHBOARD_SITE_URL,
89+
MAIN_SITE_URL: RDS_STAGING_MAIN_SITE_URL,
8590
},
8691
default: {
8792
RDS_BASE_API_URL: RDS_BASE_DEVELOPMENT_API_URL,
@@ -91,6 +96,7 @@ const config = (env: env) => {
9196
DISCORD_PROFILE_SERVICE_DEVELOPMENT_HELP_GROUP,
9297
RDS_STATUS_SITE_URL: RDS_STATUS_SITE_URL,
9398
DASHBOARD_SITE_URL: RDS_DASHBOARD_SITE_URL,
99+
MAIN_SITE_URL: RDS_DEVELOPMENT_MAIN_SITE_URL,
94100
},
95101
};
96102

src/constants/commands.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ export const VERIFY = {
1111
name: "verify",
1212
description:
1313
"Generate a link with user specific token to link with RDS backend.",
14+
options: [
15+
{
16+
name: "dev",
17+
description: "want to verify from main site?",
18+
type: 5,
19+
required: false,
20+
},
21+
],
1422
};
1523

1624
export const GROUP_INVITE = {

src/constants/urls.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ export const RDS_STAGING_STATUS_SITE_URL =
2727
export const RDS_DASHBOARD_SITE_URL = "https://dashboard.realdevsquad.com";
2828
export const RDS_STAGING_DASHBOARD_SITE_URL =
2929
"https://staging-dashboard.realdevsquad.com";
30+
31+
export const RDS_MAIN_SITE_URL = "https://realdevsquad.com";
32+
export const RDS_STAGING_MAIN_SITE_URL = "https://staging-www.realdevsquad.com";
33+
export const RDS_DEVELOPMENT_MAIN_SITE_URL = "http://localhost:4200";

src/controllers/baseHandler.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,18 @@ export async function baseHandler(
6161
return helloCommand(message.member.user.id);
6262
}
6363
case getCommandName(VERIFY): {
64+
const data = message.data?.options as Array<messageRequestDataOptions>;
65+
const dev = data.find(
66+
(item) => item.name === "dev"
67+
) as unknown as DevFlag;
6468
return await verifyCommand(
6569
message.member.user.id,
6670
message.member.user.avatar,
6771
message.member.user.username,
6872
message.member.user.discriminator,
6973
message.member.joined_at,
70-
env
74+
env,
75+
dev
7176
);
7277
}
7378
case getCommandName(MENTION_EACH): {

src/controllers/verifyCommand.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,18 @@ import { env } from "../typeDefinitions/default.types";
88
import { discordEphemeralResponse } from "../utils/discordEphemeralResponse";
99
import { generateUniqueToken } from "../utils/generateUniqueToken";
1010
import { sendUserDiscordData } from "../utils/sendUserDiscordData";
11+
import { DevFlag } from "../typeDefinitions/verify.types";
1112

1213
export async function verifyCommand(
1314
userId: number,
1415
userAvatarHash: string,
1516
userName: string,
1617
discriminator: string,
1718
discordJoinedAt: string,
18-
env: env
19+
env: env,
20+
dev?: DevFlag
1921
) {
2022
const token = await generateUniqueToken();
21-
2223
const response = await sendUserDiscordData(
2324
token,
2425
userId,
@@ -28,9 +29,17 @@ export async function verifyCommand(
2829
discordJoinedAt,
2930
env
3031
);
32+
3133
if (response?.status === 201 || response?.status === 200) {
32-
const verificationSiteURL = config(env).VERIFICATION_SITE_URL;
33-
const message = `${VERIFICATION_STRING}\n${verificationSiteURL}/discord?token=${token}\n${VERIFICATION_SUBSTRING}`;
34+
let verificationSiteURL = "";
35+
let message = "";
36+
if (dev) {
37+
verificationSiteURL = config(env).MAIN_SITE_URL;
38+
message = `${VERIFICATION_STRING}\n${verificationSiteURL}/discord?dev=true&token=${token}\n${VERIFICATION_SUBSTRING}`;
39+
} else {
40+
verificationSiteURL = config(env).VERIFICATION_SITE_URL;
41+
message = `${VERIFICATION_STRING}\n${verificationSiteURL}/discord?token=${token}\n${VERIFICATION_SUBSTRING}`;
42+
}
3443
return discordEphemeralResponse(message);
3544
} else {
3645
return discordEphemeralResponse(RETRY_COMMAND);

src/typeDefinitions/default.types.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export interface variables {
1313
TRACKING_CHANNEL_URL: string;
1414
PROFILE_SERVICE_HELP_GROUP_ID: string;
1515
RDS_STATUS_SITE_URL: string;
16+
MAIN_SITE_URL: string;
1617
}
1718

1819
export interface discordCommand {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export type DevFlag = {
2+
name: string;
3+
type: number;
4+
value: boolean;
5+
};

0 commit comments

Comments
 (0)