Skip to content

Instantly share code, notes, and snippets.

@YoneMoreno
Last active November 6, 2017 07:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YoneMoreno/093585c0e4542dafaef42a2642b46c04 to your computer and use it in GitHub Desktop.
Save YoneMoreno/093585c0e4542dafaef42a2642b46c04 to your computer and use it in GitHub Desktop.
var Task = require('./task');
var repoFactory = require('./repoFactorywCache');
var task1 = new Task(repoFactory.getRepo('task').get(1));
var task2 = new Task(repoFactory.getRepo('task').get(2));
var user = repoFactory.getRepo('user').get(1);
var project = repoFactory.getRepo('project').get(1);
task1.user = user;
task1.project = project;
//console.log(task1);
task1.save();
var Task = require('./task');
var repoFactory = require('./repoFactory2');
var task1 = new Task(repoFactory.task.get(1));
var task2 = new Task(repoFactory.task.get(2));
var user = repoFactory.user.get(1);
var project = repoFactory.project.get(1);
task1.user = user;
task1.project = project;
//console.log(task1);
task1.save();
var repo = function () {
var db = {};
var get = function (id) {
console.log('Getting project ' + id);
return {
name: 'New project'
}
}
var save = function (project) {
console.log('Saving ' + project.name + ' to the db');
}
return {
get: get,
save: save
}
}
module.exports = repo;
var repoFactory = function(){
var repos = this;
var repoList = [{name:'task', source:'./taskRepository'},
{name:'user', source:'./userRepository'},
{name:'project', source:'./projectRepository'}];
repoList.forEach(function(repo){
repos[repo.name] = require(repo.source)()
});
};
module.exports = new repoFactory;
var repoFactory = function (){
this.getRepo = function (repoType){
if(repoType==='task'){
if(this.taskRepo){
console.log('Retrieving from CACHE')
return this.taskRepo;
}else{
this.taskRepo = require('./taskRepository')();
return this.taskRepo;
}
}
if(repoType==='user'){
var userRepo = require('./userRepository')();
return userRepo;
}
if(repoType==='project'){
var projectRepo = require('./projectRepository')();
return projectRepo;
}
}
};
module.exports = new repoFactory;
var Repo = require('./taskRepository')();
var Task = function (data) {
this.name = data.name;
this.completed = false;
}
Task.prototype.complete = function () {
console.log('completing task: ' + this.name);
this.completed = true;
};
Task.prototype.save = function () {
console.log('saving Task: ' + this.name);
Repo.save(this);
};
module.exports = Task;
var repo = function () {
var db = {};
var get = function (id) {
console.log('Getting task ' + id);
return {
name: 'new task from db'
}
}
var save = function (task) {
console.log('Saving ' + task.name + ' to the db');
}
console.log('newing up task repo');
return {
get: get,
save: save
}
}
module.exports = repo;
var repo = function () {
var db = {};
var get = function (id) {
console.log('Getting user ' + id);
return {
name: 'Yone Moreno'
}
}
var save = function (user) {
console.log('Saving ' + user.name + ' to the db');
}
return {
get: get,
save: save
}
}
module.exports = repo;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment