Skip to content

Commit

Permalink
feat(room-responsible): add legacy room responsible handler
Browse files Browse the repository at this point in the history
  • Loading branch information
Yoronex committed Nov 16, 2024
1 parent b70c1e2 commit 05fdfd1
Show file tree
Hide file tree
Showing 11 changed files with 68 additions and 11 deletions.
4 changes: 4 additions & 0 deletions src/helpers/security-groups.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export interface ISecurityGroups {
scenes: ISecuritySections;
effects: ISecuritySections;
poster: ISecuritySections;
roomresponsible: ISecuritySections;
centurion: ISecuritySections;
timetrail: ISecuritySections;
mode: ISecuritySections;
Expand Down Expand Up @@ -87,6 +88,9 @@ export const securityGroups = {
privileged: privilegedSecurityGroups,
subscriber: [SecurityGroup.SCREEN_SUBSCRIBER],
},
roomresponsible: {
subscriber: [SecurityGroup.SCREEN_SUBSCRIBER],
},
centurion: {
base: allSecuritySubscriberGroups,
privileged: baseSecurityGroups,
Expand Down
2 changes: 1 addition & 1 deletion src/modules/handlers/screen/centurion-screen-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { RgbColor } from '../../lights/color-definitions';
import { FeatureEnabled } from '../../server-settings';

@FeatureEnabled('Centurion')
export class CenturionScreenHandler extends BaseScreenHandler {
export default class CenturionScreenHandler extends BaseScreenHandler {
beat(event: BeatEvent): void {
this.sendEvent('beat', event);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import BaseScreenHandler from '../base-screen-handler';
import { BeatEvent, TrackChangeEvent } from '../../events/music-emitter-events';

export class CurrentlyPlayingTrackHandler extends BaseScreenHandler {
export default class CurrentlyPlayingTrackHandler extends BaseScreenHandler {
beat(event: BeatEvent): void {
this.sendEvent('beat', event);
}
Expand Down
8 changes: 6 additions & 2 deletions src/modules/handlers/screen/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
export { CurrentlyPlayingTrackHandler } from './curently-playing-track-handler';
export { CenturionScreenHandler } from './centurion-screen-handler';
export { default as CurrentlyPlayingTrackHandler } from './curently-playing-track-handler';
export { default as CenturionScreenHandler } from './centurion-screen-handler';
export { default as PosterScreenHandler } from './poster/poster-screen-handler';
export { default as RoomResponsibleLegacyHandler } from './room-responsible-legacy-handler';
export { default as StageEffectsHandler } from './stage-effects-handler';
export { default as TimeTrailRaceScreenHandler } from './time-trail-race-screen-handler';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Controller } from '@tsoa/runtime';
import { Body, Get, Post, Put, Query, Request, Route, Security, Tags } from 'tsoa';
import { Request as ExpressRequest } from 'express';
import { PosterScreenHandler } from './poster-screen-handler';
import PosterScreenHandler from './poster-screen-handler';
// eslint-disable-next-line import/no-cycle -- TODO fix cyclic dependency
import HandlerManager from '../../../root/handler-manager';
import { Screen } from '../../../root/entities';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { TrackChangeEvent } from '../../../events/music-emitter-events';
import { PosterManager } from './poster-manager';
import { TrelloPosterManager } from './trello/trello-poster-manager';

export class PosterScreenHandler extends BaseScreenHandler {
export default class PosterScreenHandler extends BaseScreenHandler {
public posterManager: PosterManager;

private borrelModeDay: number | undefined;
Expand Down
19 changes: 19 additions & 0 deletions src/modules/handlers/screen/room-responsible-legacy-controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Get, Route, Security, Tags } from 'tsoa';
import { Controller } from '@tsoa/runtime';
import { FeatureEnabled, ServerSettingsStore } from '../../server-settings';
import { ISettings } from '../../server-settings/server-setting';
import { SecurityNames } from '../../../helpers/security';
import { securityGroups } from '../../../helpers/security-groups';

@Route('handler/screen/poster')
@Tags('Handlers')
@FeatureEnabled('RoomResponsibleLegacyScreenURL')
export class RoomResponsibleLegacyController extends Controller {
@Security(SecurityNames.LOCAL, securityGroups.poster.subscriber)
@Get('room-responsible-legacy-url')
public getRoomResponsibleLegacyUrl(): string {
return ServerSettingsStore.getInstance().getSetting(
'RoomResponsibleLegacyScreenURL',
) as ISettings['RoomResponsibleLegacyScreenURL'];
}
}
10 changes: 10 additions & 0 deletions src/modules/handlers/screen/room-responsible-legacy-handler.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import BaseScreenHandler from '../base-screen-handler';
import { BeatEvent, TrackChangeEvent } from '../../events/music-emitter-events';
import { FeatureEnabled } from '../../server-settings';

@FeatureEnabled('RoomResponsibleLegacyScreenURL')
export default class RoomResponsibleLegacyHandler extends BaseScreenHandler {
beat(event: BeatEvent): void {}

changeTrack(event: TrackChangeEvent[]): void {}
}
7 changes: 7 additions & 0 deletions src/modules/handlers/screen/screen-handler-settings.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export interface ScreenHandlerSettings {
RoomResponsibleLegacyScreenURL: string;
}

export const ScreenHandlerSettingsDefaults: ScreenHandlerSettings = {
RoomResponsibleLegacyScreenURL: '',
};
16 changes: 12 additions & 4 deletions src/modules/root/handler-factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,14 @@ import BaseAudioHandler from '../handlers/base-audio-handler';
import SimpleAudioHandler from '../handlers/audio/simple-audio-handler';
import { SocketioNamespaces } from '../../socketio-namespaces';
import BaseScreenHandler from '../handlers/base-screen-handler';
import { CenturionScreenHandler, CurrentlyPlayingTrackHandler } from '../handlers/screen';
import { PosterScreenHandler } from '../handlers/screen/poster';
import StageEffectsHandler from '../handlers/screen/stage-effects-handler';
import TimeTrailRaceScreenHandler from '../handlers/screen/time-trail-race-screen-handler';
import {
CenturionScreenHandler,
CurrentlyPlayingTrackHandler,
PosterScreenHandler,
RoomResponsibleLegacyHandler,
StageEffectsHandler,
TimeTrailRaceScreenHandler,
} from '../handlers/screen';

/**
* Object to create the set of all handlers belonging to each listener
Expand Down Expand Up @@ -79,6 +83,10 @@ export default class HandlerFactory {
this.createHandler(PosterScreenHandler, () => new PosterScreenHandler(socket)),
this.createHandler(StageEffectsHandler, () => new StageEffectsHandler(socket)),
this.createHandler(TimeTrailRaceScreenHandler, () => new TimeTrailRaceScreenHandler(socket)),
this.createHandler(
RoomResponsibleLegacyHandler,
() => new RoomResponsibleLegacyHandler(socket),
),
];
return screenHandlers.filter((h) => h != null);
}
Expand Down
7 changes: 6 additions & 1 deletion src/modules/server-settings/server-setting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@ import { Column, Entity } from 'typeorm';
import BaseEntity from '../root/entities/base-entity';
import { SudoSOSSettings, SudoSOSSettingsDefault } from '../sudosos/sudosos-settings';
import { ModeSettings, ModeSettingsDefaults } from '../modes/mode-settings';
import {
ScreenHandlerSettings,
ScreenHandlerSettingsDefaults,
} from '../handlers/screen/screen-handler-settings';

export interface ISettings extends SudoSOSSettings, ModeSettings {}
export interface ISettings extends SudoSOSSettings, ModeSettings, ScreenHandlerSettings {}

export const SettingsDefaults: ISettings = {
...SudoSOSSettingsDefault,
...ModeSettingsDefaults,
...ScreenHandlerSettingsDefaults,
};

/**
Expand Down

0 comments on commit 05fdfd1

Please sign in to comment.