UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

72 lines (63 loc) 2.29 kB
mongoose = require "mongoose" server = require "../server" connectionDefault = server.connectionDefault Schema = mongoose.Schema # Request Schema definition RequestDef = "host": String "port": String "path" : String "headers": Object "querystring": String "body": String "method": String "timestamp": type: Date, required: true # Response Schema definition ResponseDef = "status" : Number "headers": Object "body": String "timestamp": Date ErrorDetailsDef = "message": String "stack": String # OrchestrationMetadata Schema OrchestrationMetadataDef = "name" : type: String, required: true "group" : String "request": type: RequestDef, required: false # this is needed to prevent Validation error, see https://github.com/jembi/openhim-console/issues/356#issuecomment-188708443 "response": ResponseDef "error": ErrorDetailsDef # Route Schema RouteMetadataDef = "name" : type: String, required: true "request": RequestDef "response": ResponseDef "orchestrations": [OrchestrationMetadataDef] "properties": Object "error": ErrorDetailsDef # Trasnaction schema TransactionSchema = new Schema "clientID": Schema.Types.ObjectId "clientIP": String "parentID": Schema.Types.ObjectId "childIDs": [Schema.Types.ObjectId] "channelID": type: Schema.Types.ObjectId, index: true "request": RequestDef "response": ResponseDef "routes": [RouteMetadataDef] "orchestrations": [OrchestrationMetadataDef] "properties": Object "canRerun": type: Boolean, default: true "autoRetry": type: Boolean, default: false # auto rerun this transaction (e.g. if error'd) "autoRetryAttempt": Number "wasRerun": type: Boolean, default: false "error": ErrorDetailsDef "status": type: String required: true index: true enum: ['Processing', 'Failed', 'Completed', 'Successful', 'Completed with error(s)'] TransactionSchema.index "request.timestamp" # Compile schema into Model exports.Transaction = connectionDefault.model 'Transaction', TransactionSchema