Files
MusicPlayer/backend/src/routes/room/tracking.ts
T

49 lines
1.2 KiB
TypeScript

import corsManager from '../../corsManager';
import express from 'express';
import {
getLoginSdk
} from '../../sdk';
import rooms from '../../manager/rooms';
import {
sseMiddleware
} from '../../manager/rooms/sse';
const tackingUpdate = ( message: string ) => {
return ( request: express.Request, response: express.Response ) => {
if ( typeof request.params.id === 'string' ) {
if ( rooms.sendTrackingUpdate( request.params.id, message ) )
response.sendStatus( 200 );
else
response.sendStatus( 500 );
} else
response.sendStatus( 400 );
};
};
const routes = ( app: express.Application, foss: boolean ) => {
const sdk = getLoginSdk( foss );
app.get(
'/room/:id/tracking/exit',
corsManager.middleware( false ),
tackingUpdate( 'exit' )
);
app.get(
'/room/:id/tracking/ping',
corsManager.middleware( false ),
tackingUpdate( 'ping' )
);
app.get(
'/room/:id/admin',
corsManager.middleware( false ),
sdk.loginCheck(),
sseMiddleware( 'client' )
);
};
export default {
routes
};