deployment.service.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. Deployments = new Mongo.Collection('deployments');
  2. DeploymentService = {
  3. get: function(id) {
  4. return Deployments.findOne({_id: id});
  5. },
  6. appendLog: function(id, data, error) {
  7. var deployment = DeploymentService.get(id),
  8. project = ProjectService.get(deployment.project_id);
  9. Deployments.update({ _id: id },{ $push: {
  10. output: {
  11. timestamp : new Date().getTime(),
  12. data : data.replace(new RegExp(project._id, 'g'), project.label),
  13. error: error
  14. }
  15. }});
  16. },
  17. create: function(project) {
  18. return Deployments.insert({
  19. project_id: project._id,
  20. timestamp: new Date().getTime(),
  21. output: [],
  22. status: 'opened'
  23. }, function(errors, deploymentId) {
  24. JobService.create_repository(deploymentId);
  25. });
  26. },
  27. delete: function(projectId) {
  28. Deployments.remove({project_id: projectId}, function(errors) {
  29. if( !errors ) {
  30. JobService.delete_repository({_id: projectId});
  31. }
  32. });
  33. },
  34. update: function(projectId) {
  35. Deployments.insert({
  36. project_id: projectId,
  37. timestamp: new Date().getTime(),
  38. output: []
  39. }, function(errors, deploymentId) {
  40. JobService.update_repository(deploymentId);
  41. });
  42. },
  43. update_status: function(id, status, callback) {
  44. Deployments.update(
  45. id,
  46. { $set: {
  47. status: status
  48. }
  49. },
  50. callback
  51. );
  52. },
  53. list: function(projectId) {
  54. return Deployments.find({project_id: projectId}, {sort: {timestamp: -1}});
  55. },
  56. deploy: function(project) {
  57. }
  58. }