Skip to content
Snippets Groups Projects
Commit e964d2bd authored by Daniel Svane's avatar Daniel Svane
Browse files

Using upsert instead of dropping database

parent bb654c40
No related branches found
No related tags found
No related merge requests found
...@@ -3,32 +3,24 @@ var request = require("request"); ...@@ -3,32 +3,24 @@ var request = require("request");
var mongo = require("mongodb").MongoClient; var mongo = require("mongodb").MongoClient;
var ObjectID = require("mongodb").ObjectID; var ObjectID = require("mongodb").ObjectID;
var mongoUrl = "mongodb://localhost:27017/meteor-kursuskatalog"; var mongoUrl = "mongodb://localhost:3001/meteor";
var params = ["programme", "period", "year", "ects", "location", "department","faculty", "instructionLanguage", "courseType"]; var params = ["programme", "period", "year", "ects", "location", "department","faculty", "instructionLanguage", "courseType"];
var lang = ["da", "en"]; var lang = ["da", "en"];
mongo.connect(mongoUrl, function (err, db) {
db.collection("filters").drop();
db.close();
});
var sortCounter = 0; var sortCounter = 0;
var getData = function (lang, param, sortCounter) { var getData = function (lang, param, sortCounter) {
var url = "https://eddiprod.au.dk/EDDI/webservices/CourseCatalogService2.cfc?method=getValueList&list=" + param + "&lang=" + lang; var url = "https://eddiprod.au.dk/EDDI/webservices/CourseCatalogService2.cfc?method=getValueList&list=" + param + "&lang=" + lang;
// console.log("Getting data for '"+param+"' with language '"+lang+"'");
// console.log("url"+url);
console.log("start req" + url);
request({url: url,json: true}, function (e, res, json) { request({url: url,json: true}, function (e, res, json) {
var obj = {}; var obj = {};
var arr = []; var arr = [];
if (e){
throw e;
}
console.log("the json"+json); if (e){
throw e;
}
json.listItems.forEach(function (item) { json.listItems.forEach(function (item) {
arr.push({id: item.id, name: item[json.listName]}); arr.push({id: item.id, name: item[json.listName]});
...@@ -43,23 +35,18 @@ var getData = function (lang, param, sortCounter) { ...@@ -43,23 +35,18 @@ var getData = function (lang, param, sortCounter) {
if(json.listName == "year") obj["default"] = [2016, 2017]; if(json.listName == "year") obj["default"] = [2016, 2017];
else obj["default"] = []; else obj["default"] = [];
console.log("before mongo connect");
mongo.connect(mongoUrl, function (err, db) {
// db.collection("filters").drop();
db.collection("filters").insert(obj, function (err, docs) {
mongo.connect(mongoUrl, function (err, db) {
db.collection("filters").updateOne({name: obj.name, lang: obj.lang}, obj, {upsert: true}, function(err, res){
db.close(); db.close();
}); });
}); });
}); });
}; };
lang.forEach(function (lang) { lang.forEach(function (lang) {
params.forEach(function (param) { params.forEach(function (param) {
getData(lang, param, sortCounter); getData(lang, param, sortCounter);
sortCounter = sortCounter + 10; sortCounter = sortCounter + 10;
// console.log(param, sortCounter, lang);
}); });
}); });
var request = require("request");
var mongo = require("mongodb").MongoClient;
var ObjectID = require("mongodb").ObjectID;
var mongoUrl = "mongodb://localhost:3001/meteor";
// Params and languages to use in filters
var params = ["programme", "period", "year", "ects", "location", "department", "faculty", "instructionLanguage", "courseType"];
var lang = ["da", "en"];
// Database connection
var db = null;
getParams("da");
// Gets list of params available from EDDI
function getParams(lang){
var url = "https://eddiprod.au.dk/EDDI/webservices/CourseCatalogService2.cfc?method=getValueList&list=&lang=" + lang;
request({url: url,json: true}, function (e, res, json) {
console.log(params);
console.log(json.listOfPossibleListNames.split(","));
connectDB();
});
}
function connectDB(){
mongo.connect(mongoUrl, function (err, database) {
db = database;
getLocalList();
});
};
function getLocalList(){
db.collection("filters").find({lang: "en"}).toArray(function(err, docs){
docs.forEach(function(lol, foo){
console.log(lol.name);
});
});
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment