diff --git a/proto/character.proto b/proto/character.proto index fa8f810..eaa4cc8 100644 --- a/proto/character.proto +++ b/proto/character.proto @@ -1,8 +1,8 @@ syntax = "proto3"; service CharacterManager { - rpc createCharacter(CreateCharacterRequest) returns (CreateCharacterResponse); - rpc getCharacter(GetCharacterRequest) returns (GetCharacterResponse); + rpc createCharacter(CreateCharacterRequest) returns (Character); + rpc getCharacter(GetCharacterRequest) returns (Character); } message Character { @@ -13,8 +13,4 @@ message Character { message CreateCharacterRequest {} -message CreateCharacterResponse {} - -message GetCharacterRequest {} - -message GetCharacterResponse {} \ No newline at end of file +message GetCharacterRequest {} \ No newline at end of file diff --git a/vault/Dockerfile b/vault/Dockerfile index d1eab77..deedeaf 100644 --- a/vault/Dockerfile +++ b/vault/Dockerfile @@ -15,6 +15,7 @@ COPY vault . RUN npm install -g protoc RUN npm install -g protoc-gen-ts +RUN npm run build_protos RUN npm run build EXPOSE 8080 diff --git a/vault/eslint.config.mjs b/vault/eslint.config.mjs index d87df1a..b597936 100644 --- a/vault/eslint.config.mjs +++ b/vault/eslint.config.mjs @@ -1,11 +1,17 @@ -import js from "@eslint/js"; -import globals from "globals"; -import tseslint from "typescript-eslint"; -import { defineConfig } from "eslint/config"; - +import js from '@eslint/js' +import globals from 'globals' +import tseslint from 'typescript-eslint' +import { defineConfig } from 'eslint/config' export default defineConfig([ - { files: ["**/*.{js,mjs,cjs,ts,mts,cts}"], plugins: { js }, extends: ["js/recommended"] }, - { files: ["**/*.{js,mjs,cjs,ts,mts,cts}"], languageOptions: { globals: globals.node } }, + { + files: ['**/*.{js,mjs,cjs,ts,mts,cts}'], + plugins: { js }, + extends: ['js/recommended'], + }, + { + files: ['**/*.{js,mjs,cjs,ts,mts,cts}'], + languageOptions: { globals: globals.node }, + }, tseslint.configs.recommended, -]); +]) diff --git a/vault/src/app.ts b/vault/src/app.ts index 2a7e41f..6f42db3 100644 --- a/vault/src/app.ts +++ b/vault/src/app.ts @@ -1,13 +1,13 @@ -import * as grpc from '@grpc/grpc-js' +import { Server, ServerCredentials } from '@grpc/grpc-js' import { initCharacterService } from './character_service' -const port = 8000; +const port = 8000 -const app = new grpc.Server() +const app = new Server() initCharacterService(app) -app.bindAsync("0.0.0.0:8000", grpc.ServerCredentials.createInsecure(), () => { - console.log("Starting server at 0.0.0.0:8000") -}) \ No newline at end of file +app.bindAsync('0.0.0.0:8080', ServerCredentials.createInsecure(), () => { + console.log('Starting server at 0.0.0.0:8080') +}) diff --git a/vault/src/character_service.ts b/vault/src/character_service.ts index f34fa0b..58fc5ed 100644 --- a/vault/src/character_service.ts +++ b/vault/src/character_service.ts @@ -1,10 +1,31 @@ -import * as grpc from '@grpc/grpc-js' +import { Server, ServerUnaryCall, sendUnaryData } from '@grpc/grpc-js' -import { Character, GetCharacterRequest, GetCharacterResponse } from './proto/character' +import { + UnimplementedCharacterManagerService, + Character, + GetCharacterRequest, + CreateCharacterRequest, +} from './proto/character' -export function initCharacterService(server: grpc.Server) { +export function initCharacterService(server: Server) { + server.addService(UnimplementedCharacterManagerService.definition, { + createCharacter: createCharacter_Call, + getCharacter: getCharacter_Call, + }) } -function getCharacter(request: GetCharacterRequest): GetCharacterResponse { - return new GetCharacterResponse() -} \ No newline at end of file +function createCharacter_Call(call: ServerUnaryCall, callback: sendUnaryData) { + callback(null, createCharacter(call.request)) +} + +function createCharacter(request: CreateCharacterRequest): Character { + return new Character() +} + +function getCharacter_Call(call: ServerUnaryCall, callback: sendUnaryData) { + callback(null, getCharacter(call.request)) +} + +function getCharacter(request: GetCharacterRequest): Character { + return new Character() +} diff --git a/vault/tsconfig.json b/vault/tsconfig.json index 4033670..d58a717 100644 --- a/vault/tsconfig.json +++ b/vault/tsconfig.json @@ -8,4 +8,4 @@ "outDir": "dist" }, "lib": ["es2015"] -} \ No newline at end of file +}