job-hoarder
Version:
Job board aggregator to pull in standardized job postings from company job pages
47 lines (46 loc) • 1.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var lodash_unescape_1 = __importDefault(require("lodash.unescape"));
var utils_1 = require("../utils");
var GreehouseParser = /** @class */ (function () {
function GreehouseParser() {
var _this = this;
/**
* Parse jobs from request result
* @param {any} data String of jobs
* @returns {Job[]} List of parsed jobs
*/
this.parseJobs = function (data) {
if (!data)
throw new Error('No jobs to parse');
var jobs = utils_1.ensureJSON(data);
if (!jobs.jobs)
throw new Error('Failed to parse jobs');
return jobs.jobs.map(function (j) { return _this.parseJob(j); });
};
/**
* Parses job from request result
* @param {any} data String of job result
* @returns {Job} Object of parsed job
*/
this.parseJob = function (data) {
if (!data)
throw new Error('No job to parse');
var job = utils_1.ensureJSON(data);
return {
id: job.id.toString(),
url: job.absolute_url,
title: job.title,
datePosted: new Date(job.updated_at),
jobLocation: job.location.name,
department: job.departments.map(function (d) { return d.name; }).join(', '),
description: lodash_unescape_1.default(job.content),
};
};
}
return GreehouseParser;
}());
exports.default = GreehouseParser;