This commit is contained in:
2026-10-18 05:28:50 +07:00
parent 5c0852f975
commit 247f54fa92
4 changed files with 56 additions and 1 deletions
+18
View File
@@ -382,6 +382,14 @@ service EveningDetectiveServer {
}; };
} }
rpc ReorderPlaylistTracks(ReorderPlaylistTracksReq) returns (ReorderPlaylistTracksRsp) {
option (google.api.http) = { put: "/api/playlists/{playlistID}/tracks/order" body: "*" };
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Музыка";
summary: "Изменить порядок треков";
};
}
rpc DeletePlaylistTrack(DeletePlaylistTrackReq) returns (DeletePlaylistTrackRsp) { rpc DeletePlaylistTrack(DeletePlaylistTrackReq) returns (DeletePlaylistTrackRsp) {
option (google.api.http) = { delete: "/api/playlists/{playlistID}/tracks/{trackID}" }; option (google.api.http) = { delete: "/api/playlists/{playlistID}/tracks/{trackID}" };
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -1441,6 +1449,15 @@ message UploadPlaylistTrackRsp {
Playlist playlist = 1; Playlist playlist = 1;
} }
message ReorderPlaylistTracksReq {
int32 playlistID = 1;
repeated int32 trackIDs = 2;
}
message ReorderPlaylistTracksRsp {
Playlist playlist = 1;
}
message DeletePlaylistTrackReq { message DeletePlaylistTrackReq {
int32 playlistID = 1; int32 playlistID = 1;
int32 trackID = 2; int32 trackID = 2;
@@ -1892,6 +1909,7 @@ message BindScreenReq {
string screenID = 1; string screenID = 1;
string accessToken = 2; string accessToken = 2;
int32 gameID = 3; int32 gameID = 3;
bool initializeAudio = 4;
} }
message BindScreenRsp { message BindScreenRsp {
@@ -259,6 +259,15 @@ export type UploadPlaylistTrackRsp = {
playlist: Playlist | undefined; playlist: Playlist | undefined;
}; };
export type ReorderPlaylistTracksReq = {
playlistID: number | undefined;
trackIDs: number[] | undefined;
};
export type ReorderPlaylistTracksRsp = {
playlist: Playlist | undefined;
};
export type DeletePlaylistTrackReq = { export type DeletePlaylistTrackReq = {
playlistID: number | undefined; playlistID: number | undefined;
trackID: number | undefined; trackID: number | undefined;
@@ -697,6 +706,7 @@ export type BindScreenReq = {
screenID: string | undefined; screenID: string | undefined;
accessToken: string | undefined; accessToken: string | undefined;
gameID: number | undefined; gameID: number | undefined;
initializeAudio: boolean | undefined;
}; };
export type BindScreenRsp = { export type BindScreenRsp = {
@@ -1395,6 +1405,7 @@ export interface EveningDetectiveServer {
UpdatePlaylist(request: UpdatePlaylistReq): Promise<UpdatePlaylistRsp>; UpdatePlaylist(request: UpdatePlaylistReq): Promise<UpdatePlaylistRsp>;
DeletePlaylist(request: DeletePlaylistReq): Promise<DeletePlaylistRsp>; DeletePlaylist(request: DeletePlaylistReq): Promise<DeletePlaylistRsp>;
UploadPlaylistTrack(request: UploadPlaylistTrackReq): Promise<UploadPlaylistTrackRsp>; UploadPlaylistTrack(request: UploadPlaylistTrackReq): Promise<UploadPlaylistTrackRsp>;
ReorderPlaylistTracks(request: ReorderPlaylistTracksReq): Promise<ReorderPlaylistTracksRsp>;
DeletePlaylistTrack(request: DeletePlaylistTrackReq): Promise<DeletePlaylistTrackRsp>; DeletePlaylistTrack(request: DeletePlaylistTrackReq): Promise<DeletePlaylistTrackRsp>;
SetScenarioPlaylist(request: SetScenarioPlaylistReq): Promise<SetScenarioPlaylistRsp>; SetScenarioPlaylist(request: SetScenarioPlaylistReq): Promise<SetScenarioPlaylistRsp>;
AddScenario(request: AddScenarioReq): Promise<AddScenarioRsp>; AddScenario(request: AddScenarioReq): Promise<AddScenarioRsp>;
@@ -2119,6 +2130,26 @@ export function createEveningDetectiveServerClient(
method: "UploadPlaylistTrack", method: "UploadPlaylistTrack",
}) as Promise<UploadPlaylistTrackRsp>; }) as Promise<UploadPlaylistTrackRsp>;
}, },
ReorderPlaylistTracks(request) { // eslint-disable-line @typescript-eslint/no-unused-vars
if (!request.playlistID) {
throw new Error("missing required field request.playlistID");
}
const path = `api/playlists/${request.playlistID}/tracks/order`; // eslint-disable-line quotes
const body = JSON.stringify(request);
const queryParams: string[] = [];
let uri = path;
if (queryParams.length > 0) {
uri += `?${queryParams.join("&")}`
}
return handler({
path: uri,
method: "PUT",
body,
}, {
service: "EveningDetectiveServer",
method: "ReorderPlaylistTracks",
}) as Promise<ReorderPlaylistTracksRsp>;
},
DeletePlaylistTrack(request) { // eslint-disable-line @typescript-eslint/no-unused-vars DeletePlaylistTrack(request) { // eslint-disable-line @typescript-eslint/no-unused-vars
if (!request.playlistID) { if (!request.playlistID) {
throw new Error("missing required field request.playlistID"); throw new Error("missing required field request.playlistID");
+6 -1
View File
@@ -523,7 +523,12 @@ async function bindScannedScreen(screenID: string, accessToken: string) {
if (screenBinding.value) return if (screenBinding.value) return
screenBinding.value = true screenBinding.value = true
try { try {
await client.BindScreen({ screenID, accessToken, gameID: Number(gameId) }) await client.BindScreen({
screenID,
accessToken,
gameID: Number(gameId),
initializeAudio: false,
})
message.success('Экран привязан к игре') message.success('Экран привязан к игре')
await getGameScreens() await getGameScreens()
} catch (err) { } catch (err) {
+1
View File
@@ -268,6 +268,7 @@ async function bind() {
screenID: String(route.query.screenID), screenID: String(route.query.screenID),
accessToken: String(route.query.accessToken), accessToken: String(route.query.accessToken),
gameID: selectedGameId.value, gameID: selectedGameId.value,
initializeAudio: false,
}) })
bindSuccess.value = true bindSuccess.value = true
} catch (err) { } catch (err) {