Esempio n. 1
0
Dpm.prototype.info = function(argv, callback) {
  if (!argv.identifier) {
    argv.identifier = path.resolve('.');
  }
  out = dpSpec.parse(argv.identifier);
  if (out.originalType == 'path') {
    dpRead.load(out.path, handleIt);
  } else {
    dpRead.loadUrl(out.url, handleIt);
  }
  function handleIt(err, info) {
    if (!err) {
      var out = {
        json: info,
        plain: JSON.stringify(info, null, 2),
        html: 'TODO'
      }
    }
    callback(err, out);
  }
}
Pusher.prototype.push = function(filePath, config, cb) {
  var that = this
    , basePath = fs.statSync(filePath).isDirectory() ? filePath : path.dirname(filePath)
    ;
  if (arguments.length < 3) {
    cb = config;
    config = {};
  }
  dpRead.load(filePath, function(err, dpJson) {
    if (err) {
      cb(err);
      return;
    }
    console.log('Loaded Data Package');

    // HACK - insert owner_org onto dpJson so it ends up on CKAN dataset metadata
    // need to think how to do this better
    // probably should be in _convertDataPackageToCkanDataset
    if (config.owner_org) {
      dpJson.owner_org = config.owner_org;
    }

    that.upsertDatasetMetadata(dpJson, function(err, createdCkanDataset) {
      console.log('Created/Updated CKAN Dataset with Data Package Metadata');
      if (err) {
        cb(err);
        return;
      }
      for(ii=0; ii<createdCkanDataset.resources.length; ii++) {
        dpJson.resources[ii].id = createdCkanDataset.resources[ii].id;
      }
      that.pushResources(dpJson, basePath, function(err) {
        var msg = 'Data Package successfully pushed to: ' + that.client.endpoint.replace('/api', '') + '/dataset/' + dpJson.name;
        if (err) cb(err);
        else cb(err, msg);
      });
    });
  });
}