|
@@ -1,5 +1,8 @@
|
|
|
-express = require("express")
|
|
|
|
|
|
|
+_ = require 'lodash'
|
|
|
|
|
+express = require 'express'
|
|
|
|
|
+bodyParser = require "body-parser"
|
|
|
app = express()
|
|
app = express()
|
|
|
|
|
+{ObjectId} = require 'mongojs'
|
|
|
|
|
|
|
|
module.exports = MockProjectHistoryApi =
|
|
module.exports = MockProjectHistoryApi =
|
|
|
docs: {}
|
|
docs: {}
|
|
@@ -8,12 +11,30 @@ module.exports = MockProjectHistoryApi =
|
|
|
|
|
|
|
|
projectVersions: {}
|
|
projectVersions: {}
|
|
|
|
|
|
|
|
|
|
+ labels: {}
|
|
|
|
|
+
|
|
|
addOldFile: (project_id, version, pathname, content) ->
|
|
addOldFile: (project_id, version, pathname, content) ->
|
|
|
@oldFiles["#{project_id}:#{version}:#{pathname}"] = content
|
|
@oldFiles["#{project_id}:#{version}:#{pathname}"] = content
|
|
|
|
|
|
|
|
setProjectVersion: (project_id, version) ->
|
|
setProjectVersion: (project_id, version) ->
|
|
|
@projectVersions[project_id] = version
|
|
@projectVersions[project_id] = version
|
|
|
|
|
|
|
|
|
|
+ addLabel: (project_id, label_id, comment, version) ->
|
|
|
|
|
+ @labels[project_id] ?= {}
|
|
|
|
|
+ @labels[project_id][label_id] = {label_id,comment,version}
|
|
|
|
|
+
|
|
|
|
|
+ deleteLabel: (project_id, label_id) ->
|
|
|
|
|
+ delete @labels[project_id][label_id]
|
|
|
|
|
+
|
|
|
|
|
+ getLabels: (project_id) ->
|
|
|
|
|
+ return null unless @labels[project_id]?
|
|
|
|
|
+ _.values @labels[project_id]
|
|
|
|
|
+
|
|
|
|
|
+ reset: () ->
|
|
|
|
|
+ @oldFiles = {}
|
|
|
|
|
+ @projectVersions = {}
|
|
|
|
|
+ @labels = {}
|
|
|
|
|
+
|
|
|
run: () ->
|
|
run: () ->
|
|
|
app.post "/project", (req, res, next) =>
|
|
app.post "/project", (req, res, next) =>
|
|
|
res.json project: id: 1
|
|
res.json project: id: 1
|
|
@@ -33,11 +54,34 @@ module.exports = MockProjectHistoryApi =
|
|
|
else
|
|
else
|
|
|
res.send 404
|
|
res.send 404
|
|
|
|
|
|
|
|
|
|
+ app.get "/project/:project_id/labels", (req, res, next) =>
|
|
|
|
|
+ {project_id} = req.params
|
|
|
|
|
+ labels = @getLabels project_id
|
|
|
|
|
+ if labels?
|
|
|
|
|
+ res.json labels
|
|
|
|
|
+ else
|
|
|
|
|
+ res.send 404
|
|
|
|
|
+
|
|
|
|
|
+ app.post "/project/:project_id/user/:user_id/labels", bodyParser.json(), (req, res, next) =>
|
|
|
|
|
+ {project_id} = req.params
|
|
|
|
|
+ {comment, version} = req.body
|
|
|
|
|
+ label_id = new ObjectId().toString()
|
|
|
|
|
+ @addLabel project_id, label_id, comment, version
|
|
|
|
|
+ res.json {label_id, comment, version}
|
|
|
|
|
+
|
|
|
|
|
+ app.delete "/project/:project_id/user/:user_id/labels/:label_id", (req, res, next) =>
|
|
|
|
|
+ {project_id, label_id} = req.params
|
|
|
|
|
+ label = @labels[project_id]?[label_id]
|
|
|
|
|
+ if label?
|
|
|
|
|
+ @deleteLabel project_id, label_id
|
|
|
|
|
+ res.send 204
|
|
|
|
|
+ else
|
|
|
|
|
+ res.send 404
|
|
|
|
|
+
|
|
|
app.listen 3054, (error) ->
|
|
app.listen 3054, (error) ->
|
|
|
throw error if error?
|
|
throw error if error?
|
|
|
.on "error", (error) ->
|
|
.on "error", (error) ->
|
|
|
console.error "error starting MockProjectHistoryApi:", error.message
|
|
console.error "error starting MockProjectHistoryApi:", error.message
|
|
|
process.exit(1)
|
|
process.exit(1)
|
|
|
|
|
|
|
|
-
|
|
|
|
|
MockProjectHistoryApi.run()
|
|
MockProjectHistoryApi.run()
|