From a0d750442fcd104be5670b0fd1b6d6168eb8de82 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Tue, 22 Jun 2021 08:56:49 -0500 Subject: [PATCH] Add progress handling to request service --- services/request/src/services/MovieSearch.ts | 1 - .../request/src/services/WebSocketServer.ts | 34 +++++++++++++++---- services/request/tsconfig.json | 1 - 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/services/request/src/services/MovieSearch.ts b/services/request/src/services/MovieSearch.ts index 0a026f3..888ad12 100644 --- a/services/request/src/services/MovieSearch.ts +++ b/services/request/src/services/MovieSearch.ts @@ -66,7 +66,6 @@ export default class MovieSearch extends InternalService * Search for a movie */ public async search(query: string, year?: number) { - this.log("Searching for John Wick..."); let [ movies, ticketMap ] = await Promise.all([ this.searchIpc.searchMovie(query, year), MovieTicket.activeTicketMap() diff --git a/services/request/src/services/WebSocketServer.ts b/services/request/src/services/WebSocketServer.ts index 9c32f83..8422666 100644 --- a/services/request/src/services/WebSocketServer.ts +++ b/services/request/src/services/WebSocketServer.ts @@ -1,4 +1,6 @@ import { WebSocketServerService } from "@autoplex/websocket-server"; +import { WebSocketMethod } from "@autoplex-api/request"; +import { IpcClient as SeekerIpc } from "@autoplex-api/seeker"; import Application from "../Application"; export default class WebSocketServer extends WebSocketServerService @@ -6,7 +8,20 @@ export default class WebSocketServer extends WebSocketServerService /** * The name of the service */ - public NAME = "WebSocket Server"; + public readonly NAME = "WebSocket Server"; + + /** + * Reference to the Seeker IPC service + */ + protected seeker!: SeekerIpc; + + /** + * Boot the service + */ + public override async boot() { + super.boot(); + this.seeker = this.app.service("Seeker"); + } /** * The application key used for authentication @@ -16,15 +31,20 @@ export default class WebSocketServer extends WebSocketServerService } /** - * Install the websocket methods + * Install the websocket request methods */ protected override installMethods() { - this.installMethod("test", this.test.bind(this)); + this.installMethod(WebSocketMethod.TicketProgress, this.ticketProgress.bind(this)); } - protected test() { - return new Promise(resolve => { - resolve("This is the response from the server"); - }); + // Methods ------------------------------------------------------------------------------------- + + /** + * Get the ticket progress + */ + protected async ticketProgress(ticketIds: number[]) { + // let result: { [ticketId: number]: { plexLink?: string, progress?: number } } = {}; + let response = await this.seeker.getMovieTicketStates(ticketIds); + return response; } } diff --git a/services/request/tsconfig.json b/services/request/tsconfig.json index bda6de5..856200a 100644 --- a/services/request/tsconfig.json +++ b/services/request/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "target": "es2015", "baseUrl": "./src", /* Base directory to resolve non-absolute module names. */ "sourceMap": true, /* Generates corresponding '.map' file. */ "outDir": "./dist", /* Redirect output structure to the directory. */