Skip to content

Commit 1c6acde

Browse files
ooeyunasiyu
andauthored
feat: add region code (#736)
* add region code for roomUUID and inviteCode * remove us ci, use CN as default region * fix test.yaml * roomUUID not only uuidv4 format * `region_code` use `1` as default --------- Co-authored-by: siyu <chensiyi@agora.io>
1 parent 44f28e2 commit 1c6acde

File tree

18 files changed

+31
-25
lines changed

18 files changed

+31
-25
lines changed

config/test.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
server:
22
port: 8761
33
env: dev
4+
region: CN
5+
region_code: 1
46

57
redis:
68
host: 127.0.0.1

src/constants/Config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ export const Server = {
99
name: "flat-server",
1010
version: packages.version,
1111
env: config.server.env,
12+
region: config.server.region || "CN",
13+
// value: 1-9
14+
regionCode: config.server.region_code || 1,
1215
};
1316

1417
export const Redis = {

src/plugins/__tests__/ajv.test.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ test(`${namespace} - inject self plugin`, ava => {
1010
const ajv = new Ajv();
1111
ajvSelfPlugin(ajv);
1212

13-
ava.deepEqual(Object.keys(ajv.formats), [
14-
"unix-timestamp",
15-
"uuid-v4",
16-
"file-suffix",
13+
ava.deepEqual(Object.keys(ajv.formats).sort(), [
1714
"avatar-suffix",
18-
"oauth-logo-suffix",
19-
"url",
20-
"https",
21-
"phone",
2215
"directory-name",
2316
"directory-path",
17+
"file-suffix",
18+
"https",
19+
"oauth-logo-suffix",
20+
"phone",
21+
"temp-photo-suffix",
22+
"unix-timestamp",
23+
"url",
24+
"uuid-v4",
2425
]);
2526
});
2627

src/utils/ParseConfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ type Config = {
3030
server: {
3131
port: number;
3232
env: string;
33+
region: string | null;
34+
region_code: number | null;
3335
};
3436
redis: {
3537
host: string;

src/v1/controller/room/cancel/History.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export class CancelHistory extends AbstractController<RequestType, ResponseType>
1919
properties: {
2020
roomUUID: {
2121
type: "string",
22-
format: "uuid-v4",
2322
},
2423
},
2524
},

src/v1/controller/room/cancel/Ordinary.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export class CancelOrdinary extends AbstractController<RequestType, ResponseType
2525
properties: {
2626
roomUUID: {
2727
type: "string",
28-
format: "uuid-v4",
2928
},
3029
},
3130
},

src/v1/controller/room/create/Ordinary.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { RoomType } from "../../../../model/room/Constants";
22
import { Region, Status } from "../../../../constants/Project";
33
import { FastifySchema, Response, ResponseError } from "../../../../types/Server";
4-
import { v4 } from "uuid";
54
import { ErrorCode } from "../../../../ErrorCode";
65
import {
76
beginTimeLessEndTime,
@@ -12,7 +11,7 @@ import { AbstractController, ControllerClassParams } from "../../../../abstract/
1211
import { Controller } from "../../../../decorator/Controller";
1312
import { ControllerError } from "../../../../error/ControllerError";
1413
import { ServiceRoom, ServiceRoomUser } from "../../../service";
15-
import { generateRoomInviteCode } from "./Utils";
14+
import { generateRoomInviteCode, generateRoomUUID } from "./Utils";
1615
import { rtcQueue } from "../../../queue";
1716
import { aliGreenText } from "../../../utils/AliGreen";
1817
import { dataSource } from "../../../../thirdPartyService/TypeORMService";
@@ -59,7 +58,7 @@ export class CreateOrdinary extends AbstractController<RequestType, ResponseType
5958
roomUser: ServiceRoomUser;
6059
};
6160

62-
private readonly roomUUID: string = v4();
61+
private readonly roomUUID: string = generateRoomUUID();
6362

6463
public constructor(params: ControllerClassParams) {
6564
super(params);

src/v1/controller/room/create/Utils.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
import { v4 } from "uuid";
12
import { Logger, LoggerAPI, parseError } from "../../../../logger";
23
import RedisService from "../../../../thirdPartyService/RedisService";
34
import { RedisKey } from "../../../../utils/Redis";
45
import { generateInviteCode } from "../utils/GenerateInviteCode";
6+
import { Server } from "../../../../constants/Config";
57

68
export const generateRoomInviteCode = async (
79
roomUUID: string,
@@ -10,7 +12,8 @@ export const generateRoomInviteCode = async (
1012
let inviteCode = "";
1113
try {
1214
// when invite code is used up, fallback to uuid
13-
inviteCode = (await generateInviteCode()) || roomUUID;
15+
const code = await generateInviteCode();
16+
inviteCode = code === null ? roomUUID : `${Server.regionCode}`.concat(code);
1417
} catch (error) {
1518
logger.warn("generate invite code failed", parseError(error));
1619
inviteCode = roomUUID;
@@ -41,3 +44,7 @@ export const generateRoomInviteCode = async (
4144

4245
return inviteCode;
4346
};
47+
48+
export const generateRoomUUID = (): string => {
49+
return `${Server.region}-` + v4();
50+
};

src/v1/controller/room/info/Ordinary.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export class OrdinaryInfo extends AbstractController<RequestType, ResponseType>
2020
properties: {
2121
roomUUID: {
2222
type: "string",
23-
format: "uuid-v4",
2423
},
2524
},
2625
},

src/v1/controller/room/info/Users.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ export class UserInfo extends AbstractController<RequestType, ResponseType> {
2121
properties: {
2222
roomUUID: {
2323
type: "string",
24-
format: "uuid-v4",
2524
},
2625
usersUUID: {
2726
type: "array",

0 commit comments

Comments
 (0)