From ddbec0ae3bfc871a08c652f42347c496ba103dd7 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Mon, 4 Sep 2023 10:58:50 +0200 Subject: [PATCH] update resolver result --- .../src/graphql/model/TransactionResult.ts | 4 +++- .../graphql/resolver/TransactionsResolver.ts | 21 +++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/dlt-connector/src/graphql/model/TransactionResult.ts b/dlt-connector/src/graphql/model/TransactionResult.ts index 5aeb7f441..6be3a8b1e 100644 --- a/dlt-connector/src/graphql/model/TransactionResult.ts +++ b/dlt-connector/src/graphql/model/TransactionResult.ts @@ -3,11 +3,13 @@ import { TransactionError } from './TransactionError' @ObjectType() export class TransactionResult { - constructor(content: TransactionError | Buffer) { + constructor(content: TransactionError | Buffer | string) { if (content instanceof TransactionError) { this.error = content } else if (content instanceof Buffer) { this.messageId = content.toString('hex') + } else if (typeof content === 'string') { + this.messageId = content } } diff --git a/dlt-connector/src/graphql/resolver/TransactionsResolver.ts b/dlt-connector/src/graphql/resolver/TransactionsResolver.ts index b798465d0..e9b034d76 100755 --- a/dlt-connector/src/graphql/resolver/TransactionsResolver.ts +++ b/dlt-connector/src/graphql/resolver/TransactionsResolver.ts @@ -7,6 +7,8 @@ import { create as createGradidoTransaction } from '@controller/GradidoTransacti import { sendMessage as iotaSendMessage } from '@/client/IotaClient' import { GradidoTransaction } from '@/proto/3_3/GradidoTransaction' +import { TransactionResult } from '../model/TransactionResult' +import { TransactionError } from '../model/TransactionError' @Resolver() export class TransactionResolver { @@ -25,11 +27,18 @@ export class TransactionResolver { async sendTransaction( @Arg('data') transaction: TransactionDraft, - ): Promise { - const body = createTransactionBody(transaction) - const message = createGradidoTransaction(body) - const messageBuffer = GradidoTransaction.encode(message).finish() - const resultMessage = await iotaSendMessage(messageBuffer) - return resultMessage.messageId + ): Promise { + try { + const body = createTransactionBody(transaction) + const message = createGradidoTransaction(body) + const messageBuffer = GradidoTransaction.encode(message).finish() + const resultMessage = await iotaSendMessage(messageBuffer) + return new TransactionResult(resultMessage.messageId) + } catch (error) { + if (error instanceof TransactionError) { + return new TransactionResult(error) + } + throw error + } } }