From 558d9f19e46f540fbf6b8929b9e24b464d6b4c0f Mon Sep 17 00:00:00 2001 From: Intizar Date: Fri, 24 May 2024 13:20:51 +0900 Subject: [PATCH] reflect feedback: adjust for naming convention --- api/listener/controller.go | 10 ++--- api/listener/queries.go | 4 +- .../000002_add_observed_block.down.sql | 2 +- .../000002_add_observed_block.up.sql | 4 +- core/src/errors.ts | 3 +- core/src/listener/api.ts | 39 +++++++++++++++---- core/src/listener/types.ts | 5 +++ core/src/types.ts | 5 --- 8 files changed, 49 insertions(+), 23 deletions(-) diff --git a/api/listener/controller.go b/api/listener/controller.go index 9c04b1a13..3f6102730 100644 --- a/api/listener/controller.go +++ b/api/listener/controller.go @@ -34,7 +34,7 @@ type ListenerInsertModel struct { Chain string `db:"chain_name" json:"chain" validate:"required"` } -type ListenerObservedBlockModel struct { +type ObservedBlockModel struct { BlockKey string `db:"block_key" json:"blockKey" validate:"required"` BlockNumber int64 `db:"block_number" json:"blockNumber" validate:"blockNumberValidator"` } @@ -158,7 +158,7 @@ func deleteById(c *fiber.Ctx) error { } func upsertObservedBlock(c *fiber.Ctx) error { - payload := new(ListenerObservedBlockModel) + payload := new(ObservedBlockModel) if err := c.BodyParser(payload); err != nil { return err } @@ -171,7 +171,7 @@ func upsertObservedBlock(c *fiber.Ctx) error { return err } - result, err := utils.QueryRow[ListenerObservedBlockModel](c, UpsertObservedBlock, map[string]any{"block_key": payload.BlockKey, "block_number": payload.BlockNumber}) + result, err := utils.QueryRow[ObservedBlockModel](c, UpsertObservedBlock, map[string]any{"block_key": payload.BlockKey, "block_number": payload.BlockNumber}) if err != nil { return err } @@ -179,8 +179,8 @@ func upsertObservedBlock(c *fiber.Ctx) error { } func getObservedBlock(c *fiber.Ctx) error { - block_key := c.Query("blockKey") - result, err := utils.QueryRow[ListenerObservedBlockModel](c, GetObservedBlock, map[string]any{"block_key": block_key}) + blockKey := c.Query("blockKey") + result, err := utils.QueryRow[ObservedBlockModel](c, GetObservedBlock, map[string]any{"block_key": blockKey}) if err != nil { return err } diff --git a/api/listener/queries.go b/api/listener/queries.go index ead364e43..52db86df0 100644 --- a/api/listener/queries.go +++ b/api/listener/queries.go @@ -44,13 +44,13 @@ const ( ` GetObservedBlock = ` - SELECT * FROM observed_block + SELECT * FROM observed_blocks WHERE block_key = @block_key LIMIT 1; ` UpsertObservedBlock = ` - INSERT INTO observed_block (block_key, block_number) + INSERT INTO observed_blocks (block_key, block_number) VALUES (@block_key, @block_number) ON CONFLICT (block_key) DO UPDATE SET block_number = @block_number diff --git a/api/migrations/000002_add_observed_block.down.sql b/api/migrations/000002_add_observed_block.down.sql index 1972b5c12..9a1ef910e 100644 --- a/api/migrations/000002_add_observed_block.down.sql +++ b/api/migrations/000002_add_observed_block.down.sql @@ -1 +1 @@ -DROP TABLE IF EXISTS "observed_block"; \ No newline at end of file +DROP TABLE IF EXISTS "observed_blocks"; \ No newline at end of file diff --git a/api/migrations/000002_add_observed_block.up.sql b/api/migrations/000002_add_observed_block.up.sql index 490d303f9..be0a2b492 100644 --- a/api/migrations/000002_add_observed_block.up.sql +++ b/api/migrations/000002_add_observed_block.up.sql @@ -1,5 +1,5 @@ -CREATE TABLE IF NOT EXISTS "observed_block" ( +CREATE TABLE IF NOT EXISTS "observed_blocks" ( block_key TEXT NOT NULL, block_number BIGINT NOT NULL, - CONSTRAINT "observed_block_key" UNIQUE ("block_key") + CONSTRAINT "observed_blocks_key" UNIQUE ("block_key") ) \ No newline at end of file diff --git a/core/src/errors.ts b/core/src/errors.ts index 0861962fe..77920bf35 100644 --- a/core/src/errors.ts +++ b/core/src/errors.ts @@ -74,5 +74,6 @@ export enum OraklErrorCode { AxiosNotSupported, AxiosInvalidUrl, FailedToConnectAPI, - UpsertListenerObservedBlockFailed + UpsertObservedBlockFailed, + GetObservedBlockFailed } diff --git a/core/src/listener/api.ts b/core/src/listener/api.ts index 066b4149d..5a46e4a4c 100644 --- a/core/src/listener/api.ts +++ b/core/src/listener/api.ts @@ -2,8 +2,9 @@ import axios from 'axios' import { Logger } from 'pino' import { OraklError, OraklErrorCode } from '../errors' import { ORAKL_NETWORK_API_URL } from '../settings' -import { IListenerObservedBlock, IListenerRawConfig } from '../types' +import { IListenerRawConfig } from '../types' import { buildUrl } from '../utils' +import { IObservedBlock } from './types' const FILE_NAME = import.meta.url @@ -59,16 +60,40 @@ export async function getListener({ } } +/** + * Get observed block number from the Orakl Network API for a given contract address + * + * @param {string} blockKey + * @param {pino.Logger} logger + * @return {Promise} + * @exception {OraklErrorCode.GetObservedBlockFailed} + */ +export async function getObservedBlock({ + blockKey, + logger +}: { + blockKey: string + logger?: Logger +}): Promise { + try { + const endpoint = buildUrl(ORAKL_NETWORK_API_URL, `listener/observed-block?blockKey=${blockKey}`) + return (await axios.get(endpoint))?.data + } catch (e) { + logger?.error({ name: 'getObservedBlock', file: FILE_NAME, ...e }, 'error') + throw new OraklError(OraklErrorCode.GetObservedBlockFailed) + } +} + /** * Upsert listener observed block number to the Orakl Network API for a given contract address * * @param {string} blockKey * @param {number} blockValue * @param {pino.Logger} logger - * @return {Promise} - * @exception {UpsertListenerObservedBlockFailed} + * @return {Promise} + * @exception {OraklErrorCode.UpsertObservedBlockFailed} */ -export async function upsertListenerObservedBlock({ +export async function upsertObservedBlock({ blockKey, blockValue, logger @@ -76,12 +101,12 @@ export async function upsertListenerObservedBlock({ blockKey: string blockValue: number logger?: Logger -}): Promise { +}): Promise { try { const endpoint = buildUrl(ORAKL_NETWORK_API_URL, 'listener/observed-block') return (await axios.post(endpoint, { blockKey, blockValue }))?.data } catch (e) { - logger?.error({ name: 'upsertListenerObservedBlock', file: FILE_NAME, ...e }, 'error') - throw new OraklError(OraklErrorCode.UpsertListenerObservedBlockFailed) + logger?.error({ name: 'upsertObservedBlock', file: FILE_NAME, ...e }, 'error') + throw new OraklError(OraklErrorCode.UpsertObservedBlockFailed) } } diff --git a/core/src/listener/types.ts b/core/src/listener/types.ts index ae6375e27..8bc765069 100644 --- a/core/src/listener/types.ts +++ b/core/src/listener/types.ts @@ -77,3 +77,8 @@ export interface IProcessEventListenerJob { export interface IContracts { [key: string]: ethers.Contract } + +export interface IObservedBlock { + blockKey: string + blockValue: number +} diff --git a/core/src/types.ts b/core/src/types.ts index 41a2aaad4..ccec1be24 100644 --- a/core/src/types.ts +++ b/core/src/types.ts @@ -317,11 +317,6 @@ export interface IListenerGroupConfig { [key: string]: IListenerConfig[] } -export interface IListenerObservedBlock { - blockKey: string - blockValue: number -} - // Reporter export interface IReporterConfig { id: string