diff --git a/src/domain/Query.ts b/src/domain/Query.ts index 9ffd337..1279830 100644 --- a/src/domain/Query.ts +++ b/src/domain/Query.ts @@ -1,20 +1,18 @@ import _ from "lodash"; import { queryRunner } from "../helper/QueryRunner"; -import { Metadata } from "@grpc/grpc-js"; - import { QueryInput, QueryOutput } from "../models/domain-layer/legacy/query"; class QueryDomain { - public async rawQuery(input: QueryInput, metadata: Metadata): Promise { + public async rawQuery(input: QueryInput): Promise { interface IQueryResult { rows: IRow[] | undefined; } interface IRow { [key: string]: any[]; } - if (!_.startsWith(input.sql, "SELECT")) { - throw new Error("Query must start with 'SELECT'"); + if (!_.startsWith(input.sql, "SELECT") && !_.startsWith(input.sql, "UPDATE")) { + throw new Error("Query must start with 'SELECT' or 'UPDATE'"); } const queryResult = (await queryRunner.run({ query: { diff --git a/src/service/Query.ts b/src/service/Query.ts index ec87602..d7641b9 100644 --- a/src/service/Query.ts +++ b/src/service/Query.ts @@ -12,9 +12,9 @@ class QueryServiceServerImpl implements QueryServer { rawQuery: handleUnaryCall = ( call: ServerUnaryCall, - callback: sendUnaryData + callback: sendUnaryData, ) => { - QueryDomain.rawQuery(call.request, call.metadata) + QueryDomain.rawQuery(call.request) .then((response) => callback(null, response)) .catch((err: Error) => callback(ErrorHelper.wrapError(err), null)); };