@open-age/insight-client
Version:
58 lines (47 loc) • 1.61 kB
JavaScript
const api = require('../helpers/request-helper')('logs')
const config = require('config').get('providers')['insight']
const client = new (require('node-rest-client-promise')).Client()
const buildUrl = require('build-url')
exports.create = async (model, context) => {
const args = {
headers: {
'Content-Type': 'application/json'
},
data: model
}
if (context.role) {
if (context.role.key) {
args.headers['x-role-key'] = context.role.key
} else if (context.role.id) {
args.headers['x-role-id'] = context.role.id
}
} else if (context.user && context.user.role) {
if (context.user.role.key) {
args.headers['x-role-key'] = context.user.role.key
} else if (context.user.role.id) {
args.headers['x-role-id'] = context.user.role.id
}
} else if (context.tenant) {
if (context.tenant.code) {
args.headers['x-tenant-code'] = context.tenant.code
}
}
if (context.session) {
args.headers['x-session-id'] = context.session.id
}
if (context.id) {
args.headers['x-context-id'] = context.id
}
let url = buildUrl(config.url, { path: 'logs' })
let response = await client.postPromise(url, args)
if (!response.data.isSuccess) {
throw new Error(`invalid response from insight`)
}
return response.data.data
}
exports.search = async (query, context) => {
return api.search(query, null, context)
}
exports.get = async (id, context) => {
return api.get(id, null, context)
}