import { defaultSettings } from './constants'; const schema = { jobtype: { type: 'string', index: 'not_analyzed' }, payload: { type: 'object', enabled: false }, priority: { type: 'short' }, timeout: { type: 'long' }, process_expiration: { type: 'date' }, created_by: { type: 'string', index: 'not_analyzed' }, created_at: { type: 'date' }, started_at: { type: 'date' }, completed_at: { type: 'date' }, attempts: { type: 'short' }, max_attempts: { type: 'short' }, status: { type: 'string', index: 'not_analyzed' }, output: { type: 'object', properties: { content_type: { type: 'string', index: 'not_analyzed' }, content: { type: 'object', enabled: false } } } }; export default function createIndex(client, indexName, doctype = defaultSettings.DEFAULT_SETTING_DOCTYPE) { const indexBody = { mappings : {} }; indexBody.mappings[doctype] = { properties: schema }; return client.indices.exists({ index: indexName, }) .then((exists) => { if (!exists) { return client.indices.create({ ignore: 400, index: indexName, body: indexBody }) .then(() => true); } return exists; }); }