summaryrefslogtreecommitdiff
path: root/server/fetch.js
blob: b76eeff17bf746fa2d4ba5499bf6e7358c7fb5d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var DB_HOST = 'localhost'
var mongoose = require('mongoose')
var _ = require('lodash')
var Project = require("./lib/schemas/Project")

if (process.argv.length != 3) {
  console.error("usage: node fetch.js [project-slug] > project.json")
  process.exit()
}
var slug = process.argv[2]

mongoose.connect('mongodb://' + DB_HOST + '/vvalls', {}, function(){
  // console.error("vvalls: connected to", DB_HOST)
  Project.findOne({ slug: slug }).exec(function(err, data){
    if (err || ! data) {
      console.error("Project " + slug + " not found!")
    }
    else {
      console.error("Exporting " + data.name + " (" + slug + ") as JSON")
      var str = JSON.stringify( simplify(data.toObject()) ).replace(/(\.\d\d\d)\d+/g, "$1")
      console.log( "vvalls_data=" + str )
    }
    process.exit()
  })
})

function simplify (data) {
  delete data._id
  delete data.__v
  _(data).keys().forEach(function(key){
    var val = data[key]
    if (typeof val != "object") return;
    if (val.hasOwnProperty('length')) {
      data[key].forEach(simplify)
    }
    else {
      data[key] = simplify(val)
    }
  })
  return data
}