diff options
author | lonkaars <loek@pipeframe.xyz> | 2023-06-30 17:31:46 +0200 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2023-06-30 17:31:46 +0200 |
commit | 722127ef4059020876f708b1d5406c04fd07b0da (patch) | |
tree | 1a849e4c8eae688a9e51aaaaaff76d56ca79f171 /core/http | |
parent | cc5689eaf4f7cfa158e31107906434da9aed62bf (diff) |
WIP user api
Diffstat (limited to 'core/http')
-rw-r--r-- | core/http/client.ts | 18 | ||||
-rw-r--r-- | core/http/server.ts | 14 | ||||
-rw-r--r-- | core/http/types.ts | 8 |
3 files changed, 20 insertions, 20 deletions
diff --git a/core/http/client.ts b/core/http/client.ts index 365aa76..118e8f5 100644 --- a/core/http/client.ts +++ b/core/http/client.ts @@ -1,16 +1,16 @@ import "../../util/array.ts"; -import API from "../api.ts"; +import Core from "../api.ts"; import { ConnectionProps, ConnectionPropsDefault } from "./props.ts"; -import { APIRequest, APIRequestParseSentence, APIResponseParseSentence } from "./types.ts"; +import { CoreRequest, CoreRequestParseSentence, CoreResponseParseSentence } from "./types.ts"; /** - * @summary Yomikun HTTP API + * @summary HTTP Core client * - * Uses the Yomikun server to call API methods. Handles (de)serialization - * automatically. + * Connects to an instance of RemoteCoreServer to call Core methods. Handles + * (de)serialization automatically. */ -export default class YomikunRemoteAPIClient implements API { +export default class RemoteCoreClient implements Core { private props: ConnectionProps; ready: Promise<void> = Promise.resolve(); @@ -18,7 +18,7 @@ export default class YomikunRemoteAPIClient implements API { this.props = { ...ConnectionPropsDefault, ...options }; } - private async request(details: APIRequest) { + private async request(details: CoreRequest) { var response = await fetch(`http://${this.props.host}:${this.props.port}`, { method: "POST", headers: { @@ -31,13 +31,13 @@ export default class YomikunRemoteAPIClient implements API { } async parseSentence(input: string) { - var request: APIRequestParseSentence = { + var request: CoreRequestParseSentence = { command: "parseSentence", options: { input: input, }, }; - var { response } = await this.request(request) as APIResponseParseSentence; + var { response } = await this.request(request) as CoreResponseParseSentence; return response; } } diff --git a/core/http/server.ts b/core/http/server.ts index 1af8d25..0a9a082 100644 --- a/core/http/server.ts +++ b/core/http/server.ts @@ -2,22 +2,22 @@ import { serve } from "https://deno.land/std@0.192.0/http/server.ts"; import "../../util/string.ts"; -import YomikunRAWAPI from "../raw/api.ts"; +import RawCore from "../raw/api.ts"; import { ConnectionProps, ConnectionPropsDefault } from "./props.ts"; -import { APIRequest, APIRequestParseSentence, APIResponseParseSentence } from "./types.ts"; +import { CoreRequest, CoreRequestParseSentence, CoreResponseParseSentence } from "./types.ts"; -export default class YomikunRemoteAPIServer extends YomikunRAWAPI { +export default class RemoteCoreServer extends RawCore { private props: ConnectionProps; - private handlers: Record<string, (req: APIRequest) => Promise<Response>> = { + private handlers: Record<string, (req: CoreRequest) => Promise<Response>> = { parseSentence: async _req => { - var req = _req as APIRequestParseSentence; + var req = _req as CoreRequestParseSentence; var input = req.options?.input if (!input) return new Response("", { status: 404 }); return new Response(JSON.stringify({ command: "parseSentence", response: await this.parseSentence(input), - } as APIResponseParseSentence)); + } as CoreResponseParseSentence)); }, }; @@ -29,7 +29,7 @@ export default class YomikunRemoteAPIServer extends YomikunRAWAPI { async start() { serve(async (req) => { if (req.method != "POST") return new Response("", { status: 400 }); // wrong request (not post) - var request = (await req.text()).json({}) as APIRequest; + var request = (await req.text()).json({}) as CoreRequest; if (!request.command) return new Response("", { status: 400 }); // wrong request (no command) var handler = this.handlers[request.command]; if (!handler) return new Response("", { status: 404 }); // not found (unknown command) diff --git a/core/http/types.ts b/core/http/types.ts index bbba1b5..af2cfea 100644 --- a/core/http/types.ts +++ b/core/http/types.ts @@ -1,24 +1,24 @@ import { ParseResult } from "../../language/types.ts"; -export interface APIRequest { +export interface CoreRequest { command: string; options: any; }; -export interface APIRequestParseSentence extends APIRequest { +export interface CoreRequestParseSentence extends CoreRequest { command: "parseSentence"; options: { input: string; }; }; -export interface APIResponse { +export interface CoreResponse { command: string; response: any; // final: boolean; }; -export interface APIResponseParseSentence extends APIResponse { +export interface CoreResponseParseSentence extends CoreResponse { command: "parseSentence"; response: ParseResult; }; |