Abstract Class: MapperRepository<K, D>
@hyperledger/identus-sdk v8.0.0
@hyperledger/identus-sdk / overview / MapperRepository
Abstract Class: MapperRepository<K, D>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:13
MapperRepository
Extends BaseRepository to handle Store interactions while mapping between a Domain class and a Model object
Extends
Extended by
CredentialRepositoryCredentialMetadataRepositoryDIDRepositoryKeyRepositoryLinkSecretRepositoryMessageRepository
Type Parameters
| Type Parameter |
|---|
K extends TableName |
D extends Storable |
Constructors
Constructor
new MapperRepository<
K,D>(store:Store,name:K):MapperRepository<K,D>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:20
Parameters
| Parameter | Type |
|---|---|
store | Store |
name | K |
Returns
MapperRepository<K, D>
Inherited from
Methods
byUUID()
byUUID(
uuid:string):Promise<D|null>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:75
Utility fn for common use of find with uuid
Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | - |
Returns
Promise<D | null>
first found Domain instance or undefined
Throws
Domain.PlutoError.StoreQueryFailed if the query fails
delete()
delete(
uuid:string):Promise<void>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:53
Parameters
| Parameter | Type |
|---|---|
uuid | string |
Returns
Promise<void>
Inherited from
find()
find(
selector?:Partial<CollectionMap[K]>):Promise<D[]>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:48
Search for instances based on given values
Parameters
| Parameter | Type | Description |
|---|---|---|
selector? | Partial<CollectionMap[K]> | object with matchable properties |
Returns
Promise<D[]>
all found Domain instances
Throws
Domain.PlutoError.StoreQueryFailed if the query fails
findOne()
findOne(
selector?:Partial<CollectionMap[K]>):Promise<D|null>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:61
Search for single instance based on given values
Parameters
| Parameter | Type | Description |
|---|---|---|
selector? | Partial<CollectionMap[K]> | object with matchable properties |
Returns
Promise<D | null>
first found Domain instance or null
Throws
Domain.PlutoError.StoreQueryFailed if the query fails
get()
get(
query?:Query<CollectionSchemas[K]>):Promise<D[]>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:36
Search the Store, mapping any found to Domain
Parameters
| Parameter | Type | Description |
|---|---|---|
query? | Query<CollectionSchemas[K]> | either an object or array of objects with matchable properties |
Returns
Promise<D[]>
Array of matched Domain instances
Throws
Domain.PlutoError.StoreQueryFailed if the query fails
getModels()
getModels(
query?:Query<CollectionSchemas[K]>):Promise<CollectionMap[K][]>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:87
Search the Store for Models
Parameters
| Parameter | Type | Description |
|---|---|---|
query? | Query<CollectionSchemas[K]> | a Query object, a set of values and operators defining the query |
Returns
Promise<CollectionMap[K][]>
Array of matched Models
See
../types.ts
Examples
search for a model with uuid and name
repo.getModels({ selector: { uuid: "1", name: "eg" }})
search for models with uuid of 1 or 2
repo.getModels({ selector: { $or: [{ uuid: "1" }, { uuid: "2" }] }})
search for all models
repo.getModels()
Throws
Domain.Models if the query fails
Inherited from
insert()
insert(
model:CollectionMap[K]):Promise<CollectionMap[K]>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:32
Persist the Model in the Store.
Parameters
| Parameter | Type | Description |
|---|---|---|
model | CollectionMap[K] | - |
Returns
Promise<CollectionMap[K]>
Throws
Domain.PlutoError.StoreInsertError if insert fails
Inherited from
save()
save(
domain:D):Promise<void>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:88
Persist the Domain instance in the Store.
Parameters
| Parameter | Type | Description |
|---|---|---|
domain | D | Will be mapped to relevant Model for persistance |
Returns
Promise<void>
See
Throws
Domain.PlutoError.StoreInsertError if insert fails
toDomain()
abstracttoDomain(model:CollectionMap[K]):D
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:21
Map from a Model to the Domain class
Parameters
| Parameter | Type | Description |
|---|---|---|
model | CollectionMap[K] | the stored Model with a uuid |
Returns
D
Domain with uuid set
toModel()
abstracttoModel(domain:D):CollectionMap[K]
Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:27
Map from a Domain class to a Model
Parameters
| Parameter | Type | Description |
|---|---|---|
domain | D | may be missing uuid |
Returns
Model potentially without uuid
update()
update(
model:CollectionMap[K]):Promise<void>
Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:44
Parameters
| Parameter | Type |
|---|---|
model | CollectionMap[K] |
Returns
Promise<void>