From 055995790cb444022881e05c7bcf29ee68e698e0 Mon Sep 17 00:00:00 2001 From: waynewyang Date: Thu, 4 Jan 2024 17:38:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20update=20datastore->1.0.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: 🧨 update datastore->1.0.0 --- package-lock.json | 8 ++++---- package.json | 2 +- src/chain/repo/datastore/index.ts | 20 +++++++++++--------- src/chain/service/index.ts | 14 -------------- test/chain/service/index.test.ts | 15 ++++++++------- test/helper/mongodb/instance/index.ts | 15 +++++++-------- 6 files changed, 31 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6535b87..9f88d0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@glif/filecoin-number": "^2.0.69", "@glif/filecoin-rpc-client": "^2.0.43", "@types/cbor": "^6.0.0", - "@unipackage/datastore": "^0.3.0", + "@unipackage/datastore": "^1.0.0", "@unipackage/ddd": "^1.1.0", "@unipackage/net": "^2.5.1", "cbor": "^9.0.1", @@ -1534,9 +1534,9 @@ } }, "node_modules/@unipackage/datastore": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@unipackage/datastore/-/datastore-0.3.0.tgz", - "integrity": "sha512-JTYwaSNmQihO6HM47Uids0I7nsGpvXK14/s/fA2IdyhthGdgW1j7hfh0B6kJsrYlIhVsJYecxKsbFtph/ybPkw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@unipackage/datastore/-/datastore-1.0.0.tgz", + "integrity": "sha512-j0JgpAIDYCh/w1kvCPdUMYvoWv2qC82r44z+MTauy8b+Ka0nOjQ7Ec7kuq6joezot8XjoKg+Qhq1ByuYTgs33g==", "dependencies": { "@types/node": "20.6.2", "@unipackage/utils": "^1.4.0", diff --git a/package.json b/package.json index 359d22c..ab4c4d3 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@glif/filecoin-number": "^2.0.69", "@glif/filecoin-rpc-client": "^2.0.43", "@types/cbor": "^6.0.0", - "@unipackage/datastore": "^0.3.0", + "@unipackage/datastore": "^1.0.0", "@unipackage/ddd": "^1.1.0", "@unipackage/net": "^2.5.1", "cbor": "^9.0.1", diff --git a/src/chain/repo/datastore/index.ts b/src/chain/repo/datastore/index.ts index b6bd12f..a7caf7b 100644 --- a/src/chain/repo/datastore/index.ts +++ b/src/chain/repo/datastore/index.ts @@ -18,7 +18,11 @@ * limitations under the respective licenses. ********************************************************************************/ -import { DataStore, DatabaseOptions } from "@unipackage/datastore" +import { + DataStore, + DatabaseConnection, + DatabaseConnectionOptions, +} from "@unipackage/datastore" import { Message } from "../../../basic/message/types" import { BlockMessages } from "../../../basic/block/types" import { Tipset } from "../../../basic/tipset/types" @@ -38,12 +42,11 @@ export class MessageMongoDatastore extends DataStore< ValueFields, MessageDocument > { - constructor(uri: string, options?: DatabaseOptions) { + constructor(connection: DatabaseConnection) { super( new MongooseDataStore, MessageDocument>( MessageModel, - uri, - options + connection ) ) } @@ -67,12 +70,12 @@ export class BlockMongoDatastore extends DataStore< ValueFields, BlockMessagesDocument > { - constructor(uri: string, options?: DatabaseOptions) { + constructor(connection: DatabaseConnection) { super( new MongooseDataStore< ValueFields, BlockMessagesDocument - >(BlockMessagesModel, uri, options) + >(BlockMessagesModel, connection) ) } @@ -94,12 +97,11 @@ export class TipsetMongoDatastore extends DataStore< ValueFields, TipsetDocument > { - constructor(uri: string, options?: DatabaseOptions) { + constructor(connection: DatabaseConnection) { super( new MongooseDataStore, TipsetDocument>( TipsetModel, - uri, - options + connection ) ) } diff --git a/src/chain/service/index.ts b/src/chain/service/index.ts index 518590a..1f49fe1 100644 --- a/src/chain/service/index.ts +++ b/src/chain/service/index.ts @@ -157,14 +157,6 @@ export class ChainService implements ChainService { error: undefined, } try { - // Connect to data stores. - const msgConnect = await this.messageDs.connect() - if (!msgConnect.ok) return { ok: false, error: msgConnect.error } - const bmConnect = await this.blockMessagesDs.connect() - if (!bmConnect.ok) return { ok: false, error: bmConnect.error } - const tsConnect = await this.tipsetDs.connect() - if (!tsConnect.ok) return { ok: false, error: tsConnect.error } - // Save messages to the data store. const msgDoResults = await Promise.all( chain.messages.map( @@ -206,12 +198,6 @@ export class ChainService implements ChainService { result.error = error return result } finally { - // Disconnect from data stores. - /* - await this.tipsetDs.disconnect(); - await this.blockMessagesDs.disconnect(); - await this.messageDs.disconnect(); - */ } return result diff --git a/test/chain/service/index.test.ts b/test/chain/service/index.test.ts index 9163f50..19341c3 100644 --- a/test/chain/service/index.test.ts +++ b/test/chain/service/index.test.ts @@ -18,7 +18,12 @@ * limitations under the respective licenses. ********************************************************************************/ -import { messageDs, blockDs, tipsetDs } from "../../helper/mongodb/instance" +import { + messageDs, + blockDs, + tipsetDs, + connection_noAuth, +} from "../../helper/mongodb/instance" import "mocha" import { ChainFilecoinRPC } from "../../../src/chain/repo/rpc" // Replace with the actual path to your TypeScript file import { ChainService } from "../../../src/chain/service" // Replace with the actual path to your TypeScript file @@ -42,15 +47,11 @@ describe("ChainService", () => { }) beforeEach(async () => { - await tipsetDs.connect() - await blockDs.connect() - await messageDs.connect() + await connection_noAuth.connect() }) afterEach(async () => { - await tipsetDs.disconnect() - await blockDs.disconnect() - await messageDs.disconnect() + await connection_noAuth.disconnect() }) describe("GetAndSaveChainInfoByHeight", () => { diff --git a/test/helper/mongodb/instance/index.ts b/test/helper/mongodb/instance/index.ts index 6b4f4df..e25ffba 100644 --- a/test/helper/mongodb/instance/index.ts +++ b/test/helper/mongodb/instance/index.ts @@ -18,23 +18,21 @@ * limitations under the respective licenses. ********************************************************************************/ +import { DatabaseConnection } from "@unipackage/datastore" import { MessageMongoDatastore, BlockMongoDatastore, TipsetMongoDatastore, } from "../../../../src/chain/repo/datastore" -export const messageDs = new MessageMongoDatastore( - "mongodb://127.0.0.1:27017/datastore" -) -export const blockDs = new BlockMongoDatastore( - "mongodb://127.0.0.1:27017/datastore" -) -export const tipsetDs = new TipsetMongoDatastore( +export const connection_noAuth = DatabaseConnection.getInstance( "mongodb://127.0.0.1:27017/datastore" ) +export const messageDs = new MessageMongoDatastore(connection_noAuth) +export const blockDs = new BlockMongoDatastore(connection_noAuth) +export const tipsetDs = new TipsetMongoDatastore(connection_noAuth) -export const messageAuthDs = new MessageMongoDatastore( +export const connection_auth = DatabaseConnection.getInstance( "mongodb://127.0.0.1:27018/datastoreAuth", { user: "admin", @@ -46,3 +44,4 @@ export const messageAuthDs = new MessageMongoDatastore( tlsAllowInvalidHostnames: true, } ) +export const messageAuthDs = new MessageMongoDatastore(connection_auth)