aboutsummaryrefslogtreecommitdiff
path: root/core/http
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2023-06-30 17:31:46 +0200
committerlonkaars <loek@pipeframe.xyz>2023-06-30 17:31:46 +0200
commit722127ef4059020876f708b1d5406c04fd07b0da (patch)
tree1a849e4c8eae688a9e51aaaaaff76d56ca79f171 /core/http
parentcc5689eaf4f7cfa158e31107906434da9aed62bf (diff)
WIP user api
Diffstat (limited to 'core/http')
-rw-r--r--core/http/client.ts18
-rw-r--r--core/http/server.ts14
-rw-r--r--core/http/types.ts8
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;
};