mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
parent
34ead436b0
commit
f22960ad59
@ -20,6 +20,58 @@ var apiUtils = require("../util");
|
|||||||
var runtimeAPI;
|
var runtimeAPI;
|
||||||
var needsPermission = require("../auth").needsPermission;
|
var needsPermission = require("../auth").needsPermission;
|
||||||
|
|
||||||
|
function listProjects(req,res) {
|
||||||
|
var opts = {
|
||||||
|
user: req.user
|
||||||
|
}
|
||||||
|
runtimeAPI.projects.listProjects(opts).then(function(result) {
|
||||||
|
res.json(result);
|
||||||
|
}).catch(function(err) {
|
||||||
|
apiUtils.rejectHandler(req,res,err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function getProject(req,res) {
|
||||||
|
var opts = {
|
||||||
|
user: req.user,
|
||||||
|
id: req.params.id
|
||||||
|
}
|
||||||
|
runtimeAPI.projects.getProject(opts).then(function(data) {
|
||||||
|
if (data) {
|
||||||
|
res.json(data);
|
||||||
|
} else {
|
||||||
|
res.status(404).end();
|
||||||
|
}
|
||||||
|
}).catch(function(err) {
|
||||||
|
apiUtils.rejectHandler(req,res,err);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function getProjectStatus(req,res) {
|
||||||
|
var opts = {
|
||||||
|
user: req.user,
|
||||||
|
id: req.params.id,
|
||||||
|
remote: req.query.remote
|
||||||
|
}
|
||||||
|
runtimeAPI.projects.getStatus(opts).then(function(data){
|
||||||
|
if (data) {
|
||||||
|
res.json(data);
|
||||||
|
} else {
|
||||||
|
res.status(404).end();
|
||||||
|
}
|
||||||
|
}).catch(function(err) {
|
||||||
|
apiUtils.rejectHandler(req,res,err);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function getProjectRemotes(req,res) {
|
||||||
|
var opts = {
|
||||||
|
user: req.user,
|
||||||
|
id: req.params.id
|
||||||
|
}
|
||||||
|
runtimeAPI.projects.getRemotes(opts).then(function(data) {
|
||||||
|
res.json(data);
|
||||||
|
}).catch(function(err) {
|
||||||
|
apiUtils.rejectHandler(req,res,err);
|
||||||
|
})
|
||||||
|
}
|
||||||
module.exports = {
|
module.exports = {
|
||||||
init: function(_runtimeAPI) {
|
init: function(_runtimeAPI) {
|
||||||
runtimeAPI = _runtimeAPI;
|
runtimeAPI = _runtimeAPI;
|
||||||
@ -40,16 +92,7 @@ module.exports = {
|
|||||||
// Projects
|
// Projects
|
||||||
|
|
||||||
// List all projects
|
// List all projects
|
||||||
app.get("/", needsPermission("projects.read"), function(req,res) {
|
app.get("/", needsPermission("projects.read"),listProjects);
|
||||||
var opts = {
|
|
||||||
user: req.user
|
|
||||||
}
|
|
||||||
runtimeAPI.projects.listProjects(opts).then(function(result) {
|
|
||||||
res.json(result);
|
|
||||||
}).catch(function(err) {
|
|
||||||
apiUtils.rejectHandler(req,res,err);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Create project
|
// Create project
|
||||||
app.post("/", needsPermission("projects.write"), function(req,res) {
|
app.post("/", needsPermission("projects.write"), function(req,res) {
|
||||||
@ -74,13 +117,13 @@ module.exports = {
|
|||||||
|
|
||||||
if (req.body.active) {
|
if (req.body.active) {
|
||||||
runtimeAPI.projects.setActiveProject(opts).then(function() {
|
runtimeAPI.projects.setActiveProject(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl + '/');
|
listProjects(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
} else if (req.body.initialise) {
|
} else if (req.body.initialise) {
|
||||||
runtimeAPI.projects.initialiseProject(opts).then(function() {
|
runtimeAPI.projects.initialiseProject(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl + '/'+ req.params.id);
|
getProject(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -91,7 +134,7 @@ module.exports = {
|
|||||||
req.body.hasOwnProperty('files') ||
|
req.body.hasOwnProperty('files') ||
|
||||||
req.body.hasOwnProperty('git')) {
|
req.body.hasOwnProperty('git')) {
|
||||||
runtimeAPI.projects.updateProject(opts).then(function() {
|
runtimeAPI.projects.updateProject(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl + '/'+ req.params.id);
|
getProject(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -101,21 +144,7 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Get project metadata
|
// Get project metadata
|
||||||
app.get("/:id", needsPermission("projects.read"), function(req,res) {
|
app.get("/:id", needsPermission("projects.read"), getProject);
|
||||||
var opts = {
|
|
||||||
user: req.user,
|
|
||||||
id: req.params.id
|
|
||||||
}
|
|
||||||
runtimeAPI.projects.getProject(opts).then(function(data) {
|
|
||||||
if (data) {
|
|
||||||
res.json(data);
|
|
||||||
} else {
|
|
||||||
res.status(404).end();
|
|
||||||
}
|
|
||||||
}).catch(function(err) {
|
|
||||||
apiUtils.rejectHandler(req,res,err);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
// Delete project
|
// Delete project
|
||||||
app.delete("/:id", needsPermission("projects.write"), function(req,res) {
|
app.delete("/:id", needsPermission("projects.write"), function(req,res) {
|
||||||
@ -132,22 +161,7 @@ module.exports = {
|
|||||||
|
|
||||||
|
|
||||||
// Get project status - files, commit counts, branch info
|
// Get project status - files, commit counts, branch info
|
||||||
app.get("/:id/status", needsPermission("projects.read"), function(req,res) {
|
app.get("/:id/status", needsPermission("projects.read"), getProjectStatus);
|
||||||
var opts = {
|
|
||||||
user: req.user,
|
|
||||||
id: req.params.id,
|
|
||||||
remote: req.query.remote
|
|
||||||
}
|
|
||||||
runtimeAPI.projects.getStatus(opts).then(function(data){
|
|
||||||
if (data) {
|
|
||||||
res.json(data);
|
|
||||||
} else {
|
|
||||||
res.status(404).end();
|
|
||||||
}
|
|
||||||
}).catch(function(err) {
|
|
||||||
apiUtils.rejectHandler(req,res,err);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Project file listing
|
// Project file listing
|
||||||
@ -203,7 +217,7 @@ module.exports = {
|
|||||||
path: req.params[0]
|
path: req.params[0]
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.stageFile(opts).then(function() {
|
runtimeAPI.projects.stageFile(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/status");
|
getProjectStatus(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -217,7 +231,7 @@ module.exports = {
|
|||||||
path: req.body.files
|
path: req.body.files
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.stageFile(opts).then(function() {
|
runtimeAPI.projects.stageFile(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/status");
|
getProjectStatus(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -231,7 +245,7 @@ module.exports = {
|
|||||||
message: req.body.message
|
message: req.body.message
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.commit(opts).then(function() {
|
runtimeAPI.projects.commit(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/status");
|
getProjectStatus(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -245,7 +259,7 @@ module.exports = {
|
|||||||
path: req.params[0]
|
path: req.params[0]
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.unstageFile(opts).then(function() {
|
runtimeAPI.projects.unstageFile(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/status");
|
getProjectStatus(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -258,7 +272,7 @@ module.exports = {
|
|||||||
id: req.params.id
|
id: req.params.id
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.unstageFile(opts).then(function() {
|
runtimeAPI.projects.unstageFile(opts).then(function() {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/status");
|
getProjectStatus(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -442,17 +456,7 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Get a list of remotes
|
// Get a list of remotes
|
||||||
app.get("/:id/remotes", needsPermission("projects.read"), function(req, res) {
|
app.get("/:id/remotes", needsPermission("projects.read"), getProjectRemotes);
|
||||||
var opts = {
|
|
||||||
user: req.user,
|
|
||||||
id: req.params.id
|
|
||||||
}
|
|
||||||
runtimeAPI.projects.getRemotes(opts).then(function(data) {
|
|
||||||
res.json(data);
|
|
||||||
}).catch(function(err) {
|
|
||||||
apiUtils.rejectHandler(req,res,err);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add a remote
|
// Add a remote
|
||||||
app.post("/:id/remotes", needsPermission("projects.write"), function(req,res) {
|
app.post("/:id/remotes", needsPermission("projects.write"), function(req,res) {
|
||||||
@ -466,7 +470,7 @@ module.exports = {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.addRemote(opts).then(function(data) {
|
runtimeAPI.projects.addRemote(opts).then(function(data) {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/remotes");
|
getProjectRemotes(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
@ -480,7 +484,7 @@ module.exports = {
|
|||||||
remote: req.params.remoteName
|
remote: req.params.remoteName
|
||||||
}
|
}
|
||||||
runtimeAPI.projects.removeRemote(opts).then(function(data) {
|
runtimeAPI.projects.removeRemote(opts).then(function(data) {
|
||||||
res.redirect(303,req.baseUrl+"/"+opts.id+"/remotes");
|
getProjectRemotes(req,res);
|
||||||
}).catch(function(err) {
|
}).catch(function(err) {
|
||||||
apiUtils.rejectHandler(req,res,err);
|
apiUtils.rejectHandler(req,res,err);
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user