Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/register-commands-production.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
with:
apiToken: ${{secrets.CLOUDFLARE_API_TOKEN}}
accountId: ${{secrets.CLOUDFLARE_ACCOUNT_ID}}
wranglerVersion: '3.57.0'
wranglerVersion: "3.57.0"
secrets: |
DISCORD_PUBLIC_KEY
DISCORD_TOKEN
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/register-commands-staging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
with:
apiToken: ${{secrets.CLOUDFLARE_API_TOKEN}}
accountId: ${{secrets.CLOUDFLARE_ACCOUNT_ID}}
wranglerVersion: '3.57.0'
wranglerVersion: "3.57.0"
secrets: |
DISCORD_PUBLIC_KEY
DISCORD_TOKEN
Expand Down
6 changes: 6 additions & 0 deletions config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ import {
RDS_STAGING_STATUS_SITE_URL,
RDS_DASHBOARD_SITE_URL,
RDS_STAGING_DASHBOARD_SITE_URL,
RDS_MAIN_SITE_URL,
RDS_STAGING_MAIN_SITE_URL,
RDS_DEVELOPMENT_MAIN_SITE_URL,
} from "../src/constants/urls";
import {
DISCORD_PROFILE_SERVICE_HELP_GROUP,
Expand Down Expand Up @@ -74,6 +77,7 @@ const config = (env: env) => {
PROFILE_SERVICE_HELP_GROUP_ID: DISCORD_PROFILE_SERVICE_HELP_GROUP,
RDS_STATUS_SITE_URL: RDS_STATUS_SITE_URL,
DASHBOARD_SITE_URL: RDS_DASHBOARD_SITE_URL,
MAIN_SITE_URL: RDS_MAIN_SITE_URL,
},
staging: {
RDS_BASE_API_URL: RDS_BASE_STAGING_API_URL,
Expand All @@ -82,6 +86,7 @@ const config = (env: env) => {
PROFILE_SERVICE_HELP_GROUP_ID: DISCORD_PROFILE_SERVICE_STAGING_HELP_GROUP,
RDS_STATUS_SITE_URL: RDS_STAGING_STATUS_SITE_URL,
DASHBOARD_SITE_URL: RDS_STAGING_DASHBOARD_SITE_URL,
MAIN_SITE_URL: RDS_STAGING_MAIN_SITE_URL,
},
default: {
RDS_BASE_API_URL: RDS_BASE_DEVELOPMENT_API_URL,
Expand All @@ -91,6 +96,7 @@ const config = (env: env) => {
DISCORD_PROFILE_SERVICE_DEVELOPMENT_HELP_GROUP,
RDS_STATUS_SITE_URL: RDS_STATUS_SITE_URL,
DASHBOARD_SITE_URL: RDS_DASHBOARD_SITE_URL,
MAIN_SITE_URL: RDS_DEVELOPMENT_MAIN_SITE_URL,
},
};

Expand Down
8 changes: 8 additions & 0 deletions src/constants/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ export const VERIFY = {
name: "verify",
description:
"Generate a link with user specific token to link with RDS backend.",
options: [
{
name: "dev",
description: "want to verify from main site?",
type: 5,
required: false,
},
],
};

export const GROUP_INVITE = {
Expand Down
4 changes: 4 additions & 0 deletions src/constants/urls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,7 @@ export const RDS_STAGING_STATUS_SITE_URL =
export const RDS_DASHBOARD_SITE_URL = "https://dashboard.realdevsquad.com";
export const RDS_STAGING_DASHBOARD_SITE_URL =
"https://staging-dashboard.realdevsquad.com";

export const RDS_MAIN_SITE_URL = "https://realdevsquad.com";
export const RDS_STAGING_MAIN_SITE_URL = "https://staging-www.realdevsquad.com";
export const RDS_DEVELOPMENT_MAIN_SITE_URL = "http://localhost:4200";
7 changes: 6 additions & 1 deletion src/controllers/baseHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,18 @@ export async function baseHandler(
return helloCommand(message.member.user.id);
}
case getCommandName(VERIFY): {
const data = message.data?.options as Array<messageRequestDataOptions>;
const dev = data.find(
(item) => item.name === "dev"
) as unknown as DevFlag;
return await verifyCommand(
message.member.user.id,
message.member.user.avatar,
message.member.user.username,
message.member.user.discriminator,
message.member.joined_at,
env
env,
dev
);
}
case getCommandName(MENTION_EACH): {
Expand Down
17 changes: 13 additions & 4 deletions src/controllers/verifyCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,18 @@ import { env } from "../typeDefinitions/default.types";
import { discordEphemeralResponse } from "../utils/discordEphemeralResponse";
import { generateUniqueToken } from "../utils/generateUniqueToken";
import { sendUserDiscordData } from "../utils/sendUserDiscordData";
import { DevFlag } from "../typeDefinitions/verify.types";

export async function verifyCommand(
userId: number,
userAvatarHash: string,
userName: string,
discriminator: string,
discordJoinedAt: string,
env: env
env: env,
dev?: DevFlag
) {
const token = await generateUniqueToken();

const response = await sendUserDiscordData(
token,
userId,
Expand All @@ -28,9 +29,17 @@ export async function verifyCommand(
discordJoinedAt,
env
);

if (response?.status === 201 || response?.status === 200) {
const verificationSiteURL = config(env).VERIFICATION_SITE_URL;
const message = `${VERIFICATION_STRING}\n${verificationSiteURL}/discord?token=${token}\n${VERIFICATION_SUBSTRING}`;
let verificationSiteURL = "";
let message = "";
if (dev) {
verificationSiteURL = config(env).MAIN_SITE_URL;
message = `${VERIFICATION_STRING}\n${verificationSiteURL}/discord?dev=true&token=${token}\n${VERIFICATION_SUBSTRING}`;
} else {
verificationSiteURL = config(env).VERIFICATION_SITE_URL;
message = `${VERIFICATION_STRING}\n${verificationSiteURL}/discord?token=${token}\n${VERIFICATION_SUBSTRING}`;
}
return discordEphemeralResponse(message);
} else {
return discordEphemeralResponse(RETRY_COMMAND);
Expand Down
1 change: 1 addition & 0 deletions src/typeDefinitions/default.types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export interface variables {
TRACKING_CHANNEL_URL: string;
PROFILE_SERVICE_HELP_GROUP_ID: string;
RDS_STATUS_SITE_URL: string;
MAIN_SITE_URL: string;
}

export interface discordCommand {
Expand Down
5 changes: 5 additions & 0 deletions src/typeDefinitions/verify.types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export type DevFlag = {
name: string;
type: number;
value: boolean;
};