返回提交历史
Added
src/controllers/api/apartmentController.ts
+22
-0
Modified
src/models/personalRoomsModel.ts
+3
-1
Modified
src/routes/api.ts
+2
-0
Modified
src/types/personalRoomsTypes.ts
+4
-0
XFEstudio/XFESpaceNinjaServer
feat: vista suite backdrop and soundscape customisation (#2534)
Closes #2532 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2534 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
c0a0463a
代码差异
4 个文件
+31
-1
@@ -0,0 +1,22 @@
1
import { getAccountIdForRequest } from "@/src/services/loginService";
2
import { getPersonalRooms } from "@/src/services/personalRoomsService";
3
import { RequestHandler } from "express";
4
5
export const apartmentController: RequestHandler = async (req, res) => {
6
const accountId = await getAccountIdForRequest(req);
7
const personalRooms = await getPersonalRooms(accountId, "Apartment");
8
const response: IApartmentResponse = {};
9
if (req.query.backdrop !== undefined) {
10
response.NewBackdropItem = personalRooms.Apartment.VideoWallBackdrop = req.query.backdrop as string;
11
}
12
if (req.query.soundscape !== undefined) {
13
response.NewSoundscapeItem = personalRooms.Apartment.Soundscape = req.query.soundscape as string;
14
}
15
await personalRooms.save();
16
res.json(response);
17
};
18
19
interface IApartmentResponse {
20
NewBackdropItem?: string;
21
NewSoundscapeItem?: string;
22
}
@@ -122,7 +122,9 @@ const apartmentSchema = new Schema<IApartmentDatabase>(
122
122
{
123
123
Rooms: [roomSchema],
124
124
FavouriteLoadouts: [favouriteLoadoutSchema],
125
Gardening: gardeningSchema
125
Gardening: gardeningSchema,
126
VideoWallBackdrop: String,
127
Soundscape: String
126
128
},
127
129
{ _id: false }
128
130
);
@@ -10,6 +10,7 @@ import { addPendingFriendController } from "@/src/controllers/api/addPendingFrie
10
10
import { addToAllianceController } from "@/src/controllers/api/addToAllianceController";
11
11
import { addToGuildController } from "@/src/controllers/api/addToGuildController";
12
12
import { adoptPetController } from "@/src/controllers/api/adoptPetController";
13
import { apartmentController } from "@/src/controllers/api/apartmentController";
13
14
import { arcaneCommonController } from "@/src/controllers/api/arcaneCommonController";
14
15
import { archonFusionController } from "@/src/controllers/api/archonFusionController";
15
16
import { artifactsController } from "@/src/controllers/api/artifactsController";
@@ -168,6 +169,7 @@ const apiRouter = express.Router();
168
169
// get
169
170
apiRouter.get("/abandonLibraryDailyTask.php", abandonLibraryDailyTaskController);
170
171
apiRouter.get("/abortDojoComponentDestruction.php", abortDojoComponentDestructionController);
172
apiRouter.get("/apartment.php", apartmentController);
171
173
apiRouter.get("/cancelGuildAdvertisement.php", cancelGuildAdvertisementController);
172
174
apiRouter.get("/changeDojoRoot.php", changeDojoRootController);
173
175
apiRouter.get("/changeGuildRank.php", changeGuildRankController);
@@ -91,12 +91,16 @@ export interface IApartmentClient {
91
91
Gardening: IGardeningClient;
92
92
Rooms: IRoom[];
93
93
FavouriteLoadouts: IFavouriteLoadout[];
94
VideoWallBackdrop?: string;
95
Soundscape?: string;
94
96
}
95
97
96
98
export interface IApartmentDatabase {
97
99
Gardening: IGardeningDatabase;
98
100
Rooms: IRoom[];
99
101
FavouriteLoadouts: IFavouriteLoadoutDatabase[];
102
VideoWallBackdrop?: string;
103
Soundscape?: string;
100
104
}
101
105
102
106
export interface IPlacedDecosDatabase {