add get and toJSON methods to jobs
This commit is contained in:
33
src/job.js
33
src/job.js
@@ -1,5 +1,6 @@
|
|||||||
import events from 'events';
|
import events from 'events';
|
||||||
import { isPlainObject } from 'lodash';
|
import { isPlainObject } from 'lodash';
|
||||||
|
import { omit, values } from 'lodash';
|
||||||
import logger from './helpers/logger';
|
import logger from './helpers/logger';
|
||||||
import { jobStatuses } from './helpers/constants';
|
import { jobStatuses } from './helpers/constants';
|
||||||
import createIndex from './helpers/create_index';
|
import createIndex from './helpers/create_index';
|
||||||
@@ -52,4 +53,36 @@ export default class Job extends events.EventEmitter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get() {
|
||||||
|
return this.ready
|
||||||
|
.then(() => {
|
||||||
|
return this.client.get({
|
||||||
|
index: this.index,
|
||||||
|
type: this.type,
|
||||||
|
id: this.document.id
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then((doc) => {
|
||||||
|
return Object.assign(doc._source, {
|
||||||
|
index: doc._index,
|
||||||
|
id: doc._id,
|
||||||
|
type: doc._type,
|
||||||
|
version: doc._version,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
toJSON() {
|
||||||
|
if (!this.document) return false;
|
||||||
|
|
||||||
|
return Object.assign({
|
||||||
|
index: this.index,
|
||||||
|
type: this.type,
|
||||||
|
payload: this.payload,
|
||||||
|
timeout: this.timeout,
|
||||||
|
maxAttempts: this.maxAttempts,
|
||||||
|
priority: this.priority,
|
||||||
|
}, omit(this.document, ['version']));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user