PostgresStore
@webda/postgres • Readme | API
Class: PostgresStore<T, K>
Store data within PostgreSQL with JSONB
The table should be created before with
CREATE TABLE IF NOT EXISTS ${tableName}
(
uuid uuid NOT NULL,
data jsonb,
CONSTRAINT ${tableName}_pkey PRIMARY KEY (uuid)
);
Webda Modda
Extends
SQLStore<T,K>
Type parameters
• T extends CoreModel = CoreModel
• K extends PostgresParameters = PostgresParameters
Constructors
new PostgresStore(webda, name, params)
new PostgresStore<
T,K>(webda,name,params?):PostgresStore<T,K>
Service
Parameters
• webda: Core<CoreEvents>
The main instance of Webda
• name: string
The name of the service
• params?: DeepPartial<K>
The parameters block define in the configuration file
Returns
PostgresStore<T, K>
Inherited from
Source
core/lib/services/service.d.ts:167
Properties
_cacheStore
_cacheStore:
Store<T,StoreParameters,StoreEvents>
Cache store
Inherited from
Source
core/lib/stores/store.d.ts:506
_createException
_createException:
string
Inherited from
Source
core/lib/services/service.d.ts:148
_initException
_initException:
any
Inherited from
Source
core/lib/services/service.d.ts:150
_initTime
_initTime:
number
Inherited from
Source
core/lib/services/service.d.ts:149
_model
_model:
CoreModelDefinition<T>
Contains the current model
Inherited from
Source
core/lib/stores/store.d.ts:517
_modelType
_modelType:
string
Contains the current model type
Inherited from
Source
core/lib/stores/store.d.ts:527
_modelsHierarchy
_modelsHierarchy:
Object
Store teh manager hierarchy with their depth
Index signature
[key: string]: number
Inherited from
Source
core/lib/stores/store.d.ts:521
_name
protected_name:string
Service name
Inherited from
Source
core/lib/services/service.d.ts:141
_reverseMap
_reverseMap:
Object[]
Contain the reverse map
Inherited from
Source
core/lib/stores/store.d.ts:510
_uuidField
protected_uuidField:string
Contain the model uuid field
Inherited from
Source
core/lib/stores/store.d.ts:531
_webda
protected_webda:Core<CoreEvents>
Webda Core object
Inherited from
Source
core/lib/services/service.d.ts:137
client
client:
Client|Pool
Source
postgres/src/postgresstore.ts:80
logger
protectedlogger:Logger
Logger with class context
Inherited from
Source
core/lib/services/service.d.ts:154
metrics
metrics:
Object
Add metrics counter ' UNION SELECT name, tbl_name as email, "" as col1, "" as col2, "" as col3, "" as col4, "" as col5, "" as col6, "" as col7, "" as col8 FROM sqlite_master -- {"email":"' UNION SELECT name as profileImage, tbl_name as email, '' AS column3 FROM sqlite_master --","password":"we"}
Type declaration
cache_hits
cache_hits:
Counter<string>
cache_invalidations
cache_invalidations:
Counter<string>
operations_total
operations_total:
Counter<string>
queries
queries:
Histogram<string>
slow_queries_total
slow_queries_total:
Counter<string>
Inherited from
Source
core/lib/stores/store.d.ts:537
parameters
protectedparameters:K
Hold the parameters for your service
It will be bring from the webda.config.json
Inherited from
Source
core/lib/services/service.d.ts:147
captureRejectionSymbol
staticreadonlycaptureRejectionSymbol: typeofcaptureRejectionSymbol
Inherited from
SQLStore.captureRejectionSymbol
Source
postgres/node_modules/@types/node/events.d.ts:328
captureRejections
staticcaptureRejections:boolean
Sets or gets the default captureRejection value for all emitters.
Inherited from
Source
postgres/node_modules/@types/node/events.d.ts:333
defaultMaxListeners
staticdefaultMaxListeners:number
Inherited from
Source
postgres/node_modules/@types/node/events.d.ts:334
errorMonitor
staticreadonlyerrorMonitor: typeoferrorMonitor
This symbol shall be used to install a listener for only monitoring 'error'
events. Listeners installed using this symbol are called before the regular
'error' listeners are called.
Installing a listener using this symbol does not change the behavior once an
'error' event is emitted, therefore the process will still crash if no
regular 'error' listener is installed.
Inherited from
Source
postgres/node_modules/@types/node/events.d.ts:327
Methods
__clean()
__clean():
Promise<void>
Returns
Promise<void>
Inherited from
Source
_delete()
_delete(
uid,writeCondition,writeConditionField):Promise<void>
Parameters
• uid: string
• writeCondition: any
• writeConditionField: string
Returns
Promise<void>
Inherited from
Source
_deleteItemFromCollection()
_deleteItemFromCollection(
uuid,attribute,index,itemWriteCondition,itemWriteConditionField,updateDate):Promise<any>
Parameters
• uuid: string
• attribute: string
• index: number
• itemWriteCondition: any
• itemWriteConditionField: string
• updateDate: Date
Returns
Promise<any>
Overrides
SQLStore._deleteItemFromCollection
Source
postgres/src/postgresstore.ts:361
_exists()
_exists(
uid):Promise<boolean>
Parameters
• uid: string
Returns
Promise<boolean>
Inherited from
Source
_get()
_get(
uid,raiseIfNotFound?):Promise<T>
Parameters
• uid: string
• raiseIfNotFound?: boolean
Returns
Promise<T>
Inherited from
Source
_getFromCache()
_getFromCache(
uuid,raiseIfNotFound?):Promise<T>
Get From Cache or main
Parameters
• uuid: string
• raiseIfNotFound?: boolean
Returns
Promise<T>
Inherited from
Source
core/lib/stores/store.d.ts:582
_incrementAttributes()
_incrementAttributes(
uid,params,updateDate):Promise<any>
Parameters
• uid: string
• params: Object[]
• updateDate: Date
Returns
Promise<any>
Overrides
Source
postgres/src/postgresstore.ts:300
_patch()
_patch(
object,uid,itemWriteCondition?,itemWriteConditionField?):Promise<any>
Parameters
• object: any
• uid: string
• itemWriteCondition?: any
• itemWriteConditionField?: string
Returns
Promise<any>
Overrides
Source
postgres/src/postgresstore.ts:252
_removeAttribute()
_removeAttribute(
uuid,attribute,itemWriteCondition?,itemWriteConditionField?):Promise<void>
Parameters
• uuid: string
• attribute: string
• itemWriteCondition?: any
• itemWriteConditionField?: string
Returns
Promise<void>
Overrides
Source
postgres/src/postgresstore.ts:267
_save()
_save(
object):Promise<any>
Parameters
• object: T
Returns
Promise<any>
Inherited from
Source
_update()
_update(
object,uid,itemWriteCondition?,itemWriteConditionField?):Promise<any>
Parameters
• object: any
• uid: string
• itemWriteCondition?: any
• itemWriteConditionField?: string
Returns
Promise<any>
Inherited from
Source
_upsertItemToCollection()
_upsertItemToCollection(
uuid,attribute,item,index,itemWriteCondition,itemWriteConditionField,updateDate):Promise<any>
Parameters
• uuid: string
• attribute: string
• item: any
• index: number
• itemWriteCondition: any
• itemWriteConditionField: string
• updateDate: Date
Returns
Promise<any>
Overrides
SQLStore._upsertItemToCollection
Source
postgres/src/postgresstore.ts:325
addListener()
addListener(
eventName,listener):this
Alias for emitter.on(eventName, listener).
Parameters
• eventName: string | symbol
• listener: (...args) => void
Returns
this
Inherited from
Since
v0.1.26
Source
postgres/node_modules/@types/node/events.d.ts:354
addReverseMap()
addReverseMap(
prop,store):void
Add reverse map information
Parameters
• prop: string
• store: MappingService<any>
Returns
void
Inherited from
Source
core/lib/stores/store.d.ts:629
addRoute()
protectedaddRoute(url,methods,executer,openapi?,override?):void
Add a route dynamicaly
Parameters
• url: string
of the route can contains dynamic part like {uuid}
• methods: HttpMethodType[]
• executer: Function
Method to execute for this route
• openapi?: OpenAPIWebdaDefinition
• override?: boolean
Returns
void
Inherited from
Source
core/lib/services/service.d.ts:241
authorizeClientEvent()
authorizeClientEvent(
_event,_context):boolean
Authorize a public event subscription
Parameters
• _event: string
• _context: OperationContext<any, any>
Returns
boolean
Inherited from
Source
core/lib/services/service.d.ts:219
cacheStorePatchException()
cacheStorePatchException():
void
We should ignore exception from the store
Returns
void
Inherited from
SQLStore.cacheStorePatchException
Source
core/lib/stores/store.d.ts:606
canTriggerConfiguration()
canTriggerConfiguration(
_id,_callback):boolean
By default we cannot know if the store will trigger or not
Parameters
• _id: string
• _callback: () => void
Returns
boolean
Inherited from
SQLStore.canTriggerConfiguration
Source
core/lib/stores/store.d.ts:863
cancelMigration()
cancelMigration(
name):Promise<void>
Delete a migration
Parameters
• name: string
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:815
cascadeDelete()
cascadeDelete(
obj,_uuid):Promise<any>
Cascade delete a related object
Parameters
• obj: CoreModel
• _uuid: string
Returns
Promise<any>
Inherited from
Source
core/lib/stores/store.d.ts:842
checkCollectionUpdateCondition()
checkCollectionUpdateCondition<
FK,CK>(model,collection,conditionField?,condition?,index?):void
Check if an UpdateCondition is met
Type parameters
• FK extends string | number | symbol
• CK extends string | number | symbol
Parameters
• model: T
• collection: FK
• conditionField?: CK
• condition?: any
• index?: number
Returns
void
Inherited from
SQLStore.checkCollectionUpdateCondition
Source
core/lib/stores/store.d.ts:759
checkTable()
checkTable():
Promise<void>
Ensure your table exists
Returns
Promise<void>
Source
postgres/src/postgresstore.ts:107
checkUpdateCondition()
checkUpdateCondition<
CK>(model,conditionField?,condition?,uid?):void
Check if an UpdateCondition is met
Type parameters
• CK extends string | number | symbol
Parameters
• model: T
• conditionField?: CK
• condition?: any
• uid?: string
Returns
void
Inherited from
Source
core/lib/stores/store.d.ts:751
cleanModelAliases()
cleanModelAliases():
Promise<void>
Ensure model aliases are not used in this store
So alias can be cleaned
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:802
completeQuery()
completeQuery(
q):string
Add the SELECT * FROM table if the query is not a full query
Parameters
• q: string
query to complete
Returns
string
Inherited from
Source
computeParameters()
computeParameters():
void
Retrieve the Model
Returns
void
Inherited from
Throws
Error if model is not found
Source
core/lib/stores/store.d.ts:553
conditionalPatch()
conditionalPatch<
CK>(uuid,updates,conditionField,condition):Promise<boolean>
Update conditionally
Type parameters
• CK extends string | number | symbol
Parameters
• uuid: string
• updates: Partial<T>
• conditionField: CK
• condition: any
Returns
Promise<boolean>
Inherited from
Source
core/lib/stores/store.d.ts:767
create()
create(
object,ctx?):Promise<any>
Parameters
• object: any
• ctx?: OperationContext<any, any>
Returns
Promise<any>
Inherited from
Source
core/lib/stores/store.d.ts:735
createViews()
createViews():
Promise<void>
Create views for each models
Returns
Promise<void>
Source
postgres/src/postgresstore.ts:176
delete()
delete<
CK>(uid,writeCondition?,writeConditionField?,sync?):Promise<void>
Delete an object
Type parameters
• CK extends string | number | symbol
Parameters
• uid: string | T
• writeCondition?: any
• writeConditionField?: CK
• sync?: boolean
Returns
Promise<void>
the deletion promise
Inherited from
Source
core/lib/stores/store.d.ts:856
deleteItemFromCollection()
deleteItemFromCollection<
FK>(uid,prop,index,itemWriteCondition,itemWriteConditionField?):Promise<Date>
Remove an item from an array in the model
Type parameters
• FK extends string | number | symbol
Parameters
• uid: string
of the model
• prop: FK
of the model to remove from
• index: number
of the item to remove in the array
• itemWriteCondition: any
value of the condition
• itemWriteConditionField?: string
field to read the condition from
Returns
Promise<Date>
Inherited from
SQLStore.deleteItemFromCollection
Source
core/lib/stores/store.d.ts:669
duplicateExpression()
duplicateExpression(
expression):Expression<string>
Parameters
• expression: Expression<string>
Returns
Expression<string>
Inherited from
Source
emit()
emit<
Key>(event,data):boolean
Override to allow capturing long listeners
Type parameters
• Key extends keyof StoreEvents
Parameters
• event: symbol | Key
• data: StoreEvents[Key]
Returns
boolean
Inherited from
Source
core/lib/services/service.d.ts:288
emitStoreEvent()
emitStoreEvent<
Key>(event,data):Promise<void>
Handle StoreEvent and update cache based on it Then emit the event, it allows the cache to be updated before listeners are called
Type parameters
• Key extends keyof StoreEvents
Parameters
• event: Key
• data: StoreEvents[Key] & Object
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:716
emitSync()
emitSync<
Key>(event,data):Promise<any[]>
Emit the event with data and wait for Promise to finish if listener returned a Promise
Type parameters
• Key extends keyof StoreEvents
Parameters
• event: Key
• data: StoreEvents[Key]
Returns
Promise<any[]>
Inherited from
Source
core/lib/services/service.d.ts:283
eventNames()
eventNames(): (
string|symbol)[]
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
Returns
(string | symbol)[]
Inherited from
Since
v6.0.0
Source
postgres/node_modules/@types/node/events.d.ts:669
executeQuery()
executeQuery(
query,values):Promise<SQLResult<T>>
Execute a query on the server
Parameters
• query: string
• values: any[]= []
Returns
Promise<SQLResult<T>>
Overrides
Source
postgres/src/postgresstore.ts:142
exists()
exists(
uid):Promise<boolean>
Check if an object exists
Parameters
• uid: string | CoreModel
Returns
Promise<boolean>
Inherited from
Abstract
Params
uuid of the object or the object
Source
core/lib/stores/store.d.ts:952
find()
find(
query):Promise<Object>
Parameters
• query: Query
Returns
Promise<Object>
continuationToken
continuationToken:
stringfilter
filter:
Expression<string>results
results:
T[]
Inherited from
Source
forceDelete()
forceDelete(
uid):Promise<void>
Delete an object from the store without condition nor async
Parameters
• uid: string
to delete
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:848
get()
get(
uid,ctx?,defaultValue?):Promise<T>
Get an object
Parameters
• uid: string
• ctx?: OperationContext<any, any>
• defaultValue?: any
Returns
Promise<T>
the object retrieved ( can be undefined if not found )
Inherited from
Source
core/lib/stores/store.d.ts:884
getAll()
getAll(
list?):Promise<T[]>
Parameters
• list?: string[]
Returns
Promise<T[]>
Inherited from
Source
getClient()
getClient():
Client|Pool
Return the postgresql client
Returns
Client | Pool
Source
postgres/src/postgresstore.ts:132
getClientEvents()
getClientEvents():
string[]
Return the events that an external system can subscribe to
Returns
string[]
Inherited from
Source
core/lib/services/service.d.ts:213
getConfiguration()
getConfiguration(
id):Promise<Object>
Provide a way to store configuration in store
Parameters
• id: string
Returns
Promise<Object>
Inherited from
Source
core/lib/stores/store.d.ts:869
getMaxListeners()
getMaxListeners():
number
Returns the current max listener value for the EventEmitter which is either
set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.
Returns
number
Inherited from
Since
v1.0.0
Source
postgres/node_modules/@types/node/events.d.ts:526
getMetric()
getMetric<
T>(type,configuration):T
Add service name label
Type parameters
• T = Counter<string> | Histogram<string> | Gauge<string>
Parameters
• type: Constructor<T, [MetricConfiguration<T>]>
• configuration: MetricConfiguration<T>
Returns
T
Inherited from
Source
core/lib/services/service.d.ts:207
getMigration()
getMigration(
name):Promise<any>
Get a migration
Parameters
• name: string
Returns
Promise<any>
Inherited from
Source
core/lib/stores/store.d.ts:820
getModel()
getModel():
CoreModelDefinition<CoreModel>
Return Store current model
Returns
CoreModelDefinition<CoreModel>
Inherited from
Source
core/lib/stores/store.d.ts:568
getName()
getName():
string
Get service name
Returns
string
Inherited from
Source
core/lib/services/service.d.ts:312
getObject()
getObject(
uid):Promise<T>
Get object from store
Parameters
• uid: string
Returns
Promise<T>
Inherited from
Source
core/lib/stores/store.d.ts:588
getOpenApiReplacements()
getOpenApiReplacements():
Object
Returns
Object
modelName
modelName:
string
Inherited from
SQLStore.getOpenApiReplacements
Source
core/lib/stores/store.d.ts:900
getOperationId()
getOperationId(
id):string
If undefined is returned it cancel the operation registration
Parameters
• id: string
Returns
string
Inherited from
Source
core/lib/services/service.d.ts:233
getParameters()
getParameters():
K
Get the service parameters
Returns
K
Inherited from
Source
core/lib/services/service.d.ts:179
getQueryCondition()
getQueryCondition(
itemWriteCondition,itemWriteConditionField,params):string
Parameters
• itemWriteCondition: any
• itemWriteConditionField: string
• params: any[]
Returns
string
Overrides
Source
postgres/src/postgresstore.ts:291
getService()
getService<
K>(service):K
Return a webda service
Type parameters
• K extends Service<ServiceParameters, Events>
Parameters
• service: string
name to retrieve
Returns
K
Inherited from
Source
core/lib/services/service.d.ts:308
getUrl()
getUrl(
url,methods):string
Parameters
• url: string
• methods: HttpMethodType[]
Returns
string
Inherited from
Source
core/lib/stores/store.d.ts:592
getUuid()
getUuid(
object):string
Parameters
• object: string | T | ModelLink<T>
Returns
string
Inherited from
Source
getUuidField()
getUuidField():
string
Return the model uuid field
Returns
string
Inherited from
Source
core/lib/stores/store.d.ts:946
getWebda()
getWebda():
Core<CoreEvents>
Return WebdaCore
Returns
Core<CoreEvents>
Inherited from
Source
core/lib/services/service.d.ts:183
handleModel()
handleModel(
model):number
Return if a model is handled by the store
Parameters
• model: CoreModel | Constructor<CoreModel>
Returns
number
distance from the managed class -1 means not managed, 0 manage exactly this model, >0 manage an ancestor model
Inherited from
Source
core/lib/stores/store.d.ts:575
httpAction()
httpAction(
ctx,actionMethod?):Promise<void>
Handle obect action
Parameters
• ctx: WebContext<any, any>
• actionMethod?: string
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:918
httpCreate()
httpCreate(
ctx):Promise<void>
Handle POST
Parameters
• ctx: WebContext<any, any>
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:907
httpDelete()
httpDelete(
ctx):Promise<void>
Handle HTTP request
Parameters
• ctx: WebContext<any, any>
context of the request
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:942
httpGet()
httpGet(
ctx):Promise<void>
Handle GET on object
Parameters
• ctx: WebContext<any, any>
context of the request
Returns
Promise<void>
Inherited from
Source
core/lib/stores/store.d.ts:935
httpGlobalAction()
httpGlobalAction(
ctx,model?):Promise<void>
Handle collection action