_upsertProject()

in pluto-message-ingestion/pluto-message-processor.js [50:99]


  _upsertProject(message) {
    return new Promise((resolve, reject) => {
      if (!PlutoMessageProcessor._isValidMessage(message)) {
        logForElk(
          {
            message: 'invalid message, props missing',
            data: {
              message
            }
          },
          'error'
        );

        // `resolve` to remove message from Kinesis
        return resolve('invalid message, props missing');
      }

      const project = Object.assign({}, message);

      const remoteUrl = `${this.hostname}/api/pluto/projects`;

      this.hmacRequest
        .put(remoteUrl, project)
        .then(resp => {
          logForElk(
            {
              message: 'successfully upserted project',
              response: resp
            },
            'log'
          );
          resolve(resp);
        })
        .catch(err => {
          const logDetail = {
            status: err.status,
            response: err.response,
            project: project
          };
          logForElk(
            {
              message: 'failed to upsert project',
              extraDetail: logDetail
            },
            'error'
          );
          reject(err);
        });
    });
  }