Candidates.js

const Api = require("./Api");
const checkCredentials = require("./utils/credentials");
const logger = require("loglevel");

/**
 * Candidates
 * @constructor
 * @param {Object} configuration
 * @param {string} configuration.projectId Your DataGraphs project id
 * @param {string} configuration.apiKey - Your DataGraphs application API Key
 * @param {string} configuration.clientId - Your DataGraphs application client id
 * @param {string} configuration.clientSecret - Your DataGraphs application client secret
 */
function Candidates({ projectId, apiKey, clientId, clientSecret } = {}) {
  const api = new Api({ projectId, apiKey, clientId, clientSecret });

  /**
   * Create a new candidate
   * @function create
   * @memberOf Candidates#
   * @param {Object} candidate - The new candidate
   * @param {string} candidate.label - The label for the new candidate
   * @return {string} id
   */
  this.create = async (candidate) => {
    checkCredentials({ clientId, clientSecret });
    logger.debug(`Creating candidate`, candidate);
    const res = await api.postJson("_candidates", candidate);
    return res.headers.get("location");
  };
}

exports = module.exports = Candidates;