MapperRepository
@hyperledger/identus-sdk v7.0.0
@hyperledger/identus-sdk / overview / MapperRepository
Abstract Class: MapperRepository<T, D>
Defined in: 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
- CredentialRepository
- CredentialMetadataRepository
- DIDRepository
- KeyRepository
- LinkSecretRepository
- MessageRepository
Type Parameters
| Type Parameter | 
|---|
| TextendsModel | 
| DextendsStorable | 
Constructors
Constructor
new MapperRepository<
T,D>(store:Store,name:string):MapperRepository<T,D>
Defined in: src/pluto/repositories/builders/BaseRepository.ts:20
Parameters
| Parameter | Type | 
|---|---|
| store | Store | 
| name | string | 
Returns
MapperRepository<T, D>
Inherited from
Methods
byUUID()
byUUID(
uuid:string):Promise<D|null>
Defined in: 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: src/pluto/repositories/builders/BaseRepository.ts:52
Parameters
| Parameter | Type | 
|---|---|
| uuid | string | 
Returns
Promise<void>
Inherited from
find()
find(
selector?:Partial<T>):Promise<D[]>
Defined in: src/pluto/repositories/builders/MapperRepository.ts:48
Search for instances based on given values
Parameters
| Parameter | Type | Description | 
|---|---|---|
| selector? | Partial<T> | object with matchable properties | 
Returns
Promise<D[]>
all found Domain instances
Throws
Domain.PlutoError.StoreQueryFailed if the query fails
findOne()
findOne(
selector?:Partial<T>):Promise<D|null>
Defined in: src/pluto/repositories/builders/MapperRepository.ts:61
Search for single instance based on given values
Parameters
| Parameter | Type | Description | 
|---|---|---|
| selector? | Partial<T> | 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<T>):Promise<D[]>
Defined in: src/pluto/repositories/builders/MapperRepository.ts:36
Search the Store, mapping any found to Domain
Parameters
| Parameter | Type | Description | 
|---|---|---|
| query? | Query<T> | 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<T>):Promise<T[]>
Defined in: src/pluto/repositories/builders/BaseRepository.ts:86
Search the Store for Models
Parameters
| Parameter | Type | Description | 
|---|---|---|
| query? | Query<T> | a Query object, a set of values and operators defining the query | 
Returns
Promise<T[]>
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:T):Promise<T>
Defined in: src/pluto/repositories/builders/BaseRepository.ts:32
Persist the Model in the Store.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| model | T | 
Returns
Promise<T>
Throws
Domain.PlutoError.StoreInsertError if insert fails
Inherited from
save()
save(
domain:D):Promise<void>
Defined in: src/pluto/repositories/builders/MapperRepository.ts:89
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:T):D
Defined in: src/pluto/repositories/builders/MapperRepository.ts:21
Map from a Model to the Domain class
Parameters
| Parameter | Type | Description | 
|---|---|---|
| model | T | the stored Model with a uuid | 
Returns
D
Domain with uuid set
toModel()
abstracttoModel(domain:D):T
Defined in: 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
T
Model potentially without uuid
update()
update(
model:T):Promise<void>
Defined in: src/pluto/repositories/builders/BaseRepository.ts:43
Parameters
| Parameter | Type | 
|---|---|
| model | T | 
Returns
Promise<void>