fix: Потерялась зависимость rfdc
fix: Исправить опечатку number_ fix: Фикс в монге, коллекцию не надо создавать до проверки уникального ключа fix: Заменить TypeError на ErrStorage в mongo fix: Исправить collectionName в сигнатуре remove
This commit is contained in:
1 parent
231895c7cd
commit
e1d03577dd
7 files changed
+28
-20
No files matched your search
+4
-1
@@ -7,6 +7,9 @@ export type ValuesObject = Record<string, any>
|
||||
export abstract class Data {
|
||||
[key: string]: any
|
||||
|
||||
/**
|
||||
* @deprecated use fromObject()
|
||||
*/
|
||||
static assign(vo: Data, values: ValuesObject): Data {
|
||||
for (const key of Object.getOwnPropertyNames(values)) {
|
||||
vo[key] = values[key]
|
||||
@@ -26,7 +29,7 @@ export abstract class Data {
|
||||
}
|
||||
}
|
||||
|
||||
toObject(exclude: string[] = []): Record<string, any> {
|
||||
toObject(exclude: string[] = []): ValuesObject {
|
||||
const object = {} as ValuesObject
|
||||
for (const key of Object.getOwnPropertyNames(this)) {
|
||||
if (key.startsWith('__')) {
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/** @public */
|
||||
export interface StorageCursor {
|
||||
limit(number_: number): StorageCursor
|
||||
limit(number: number): StorageCursor
|
||||
sort(parameters: Record<string, any>): StorageCursor
|
||||
skip(offset: number): StorageCursor
|
||||
toArray(): Promise<any[]>
|
||||
@@ -28,7 +28,7 @@ export abstract class Storage {
|
||||
|
||||
abstract count(name: string, query?: Record<string, any>): Promise<number>
|
||||
|
||||
abstract remove(collectionName: string, uniqKeyName: string, uniqKey: string): Promise<boolean>
|
||||
abstract remove(name: string, uniqKey: string, uniqVal: string | number): Promise<boolean>
|
||||
}
|
||||
|
||||
/** @public */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ClientSession, MongoClient, TransactionOptions } from 'mongodb'
|
||||
import { Storage, StorageCursor, StorageSession } from '../storage'
|
||||
import { ErrStorage, Storage, StorageCursor, StorageSession } from '../storage'
|
||||
import { ErrEntityHasNoUniqKeyValue } from '../entity'
|
||||
|
||||
/** @public */
|
||||
@@ -36,8 +36,8 @@ export class MongoStorage extends Storage {
|
||||
async save(collectionName: string, uniqKey: string, data: Record<string, any>): Promise<string> {
|
||||
await this._connect()
|
||||
const id = data[uniqKey]
|
||||
const coll = await this._client.db().collection(collectionName)
|
||||
if (id !== null && id !== undefined) {
|
||||
const coll = await this._client.db().collection(collectionName)
|
||||
const filter = { [uniqKey]: id }
|
||||
const result = await coll.findOneAndReplace(filter, data, { upsert: true })
|
||||
if (result.lastErrorObject) {
|
||||
@@ -48,7 +48,7 @@ export class MongoStorage extends Storage {
|
||||
return result.lastErrorObject.upserted
|
||||
}
|
||||
|
||||
throw new TypeError(`can not save data to ${collectionName} with result ${result}`)
|
||||
throw new ErrStorage(`can not save data to ${collectionName} with result ${result}`)
|
||||
} else {
|
||||
// Нельзя сохранить сущность без значения уникального ключа
|
||||
// const result = await coll.insertOne(data)
|
||||
@@ -70,8 +70,8 @@ export class MongoStorage extends Storage {
|
||||
return this._client
|
||||
}
|
||||
|
||||
async remove(collectionName: string, uniqKeyName: string, uniqKey: string): Promise<boolean> {
|
||||
const coll = await this._client.db().collection(collectionName)
|
||||
async remove(name: string, uniqKeyName: string, uniqKey: string): Promise<boolean> {
|
||||
const coll = await this._client.db().collection(name)
|
||||
const result = await coll.deleteOne({ [uniqKeyName]: uniqKey })
|
||||
return Promise.resolve(result.acknowledged)
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ export class MapCursor implements StorageCursor {
|
||||
this._map = map
|
||||
}
|
||||
|
||||
limit(number_: number): StorageCursor {
|
||||
this._limit = number_
|
||||
limit(number: number): StorageCursor {
|
||||
this._limit = number
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ export class MapStorage extends Storage {
|
||||
return Promise.resolve(0)
|
||||
}
|
||||
|
||||
async remove(collectionName: string, uniqKeyName: string, uniqKey: string): Promise<boolean> {
|
||||
async remove(name: string, uniqKeyName: string, uniqKey: string): Promise<boolean> {
|
||||
return Promise.resolve(true)
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user