| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- const express = require('express')
- const bodyParser = require('body-parser')
- const app = express()
- const MAX_REQUEST_SIZE = 2 * (2 * 1024 * 1024 + 64 * 1024)
- const MockDocstoreApi = {
- docs: {},
- clearDocs() {
- this.docs = {}
- },
- getDoc(projectId, docId) {
- return this.docs[`${projectId}:${docId}`]
- },
- insertDoc(projectId, docId, doc) {
- if (doc.version == null) {
- doc.version = 0
- }
- if (doc.lines == null) {
- doc.lines = []
- }
- this.docs[`${projectId}:${docId}`] = doc
- },
- patchDocument(projectId, docId, meta, callback) {
- Object.assign(this.docs[`${projectId}:${docId}`], meta)
- callback(null)
- },
- peekDocument(projectId, docId, callback) {
- callback(null, this.docs[`${projectId}:${docId}`])
- },
- getAllDeletedDocs(projectId, callback) {
- callback(
- null,
- Object.entries(this.docs)
- .filter(([key, doc]) => key.startsWith(projectId) && doc.deleted)
- .map(([key, doc]) => {
- return {
- _id: key.split(':')[1],
- name: doc.name,
- deletedAt: doc.deletedAt,
- }
- })
- )
- },
- run() {
- app.get('/project/:project_id/doc-deleted', (req, res, next) => {
- this.getAllDeletedDocs(req.params.project_id, (error, docs) => {
- if (error) {
- res.sendStatus(500)
- } else {
- res.json(docs)
- }
- })
- })
- app.get('/project/:project_id/doc/:doc_id/peek', (req, res, next) => {
- this.peekDocument(
- req.params.project_id,
- req.params.doc_id,
- (error, doc) => {
- if (error) {
- res.sendStatus(500)
- } else if (doc) {
- res.json(doc)
- } else {
- res.sendStatus(404)
- }
- }
- )
- })
- app.patch(
- '/project/:project_id/doc/:doc_id',
- bodyParser.json({ limit: MAX_REQUEST_SIZE }),
- (req, res, next) => {
- MockDocstoreApi.patchDocument(
- req.params.project_id,
- req.params.doc_id,
- req.body,
- error => {
- if (error) {
- res.sendStatus(500)
- } else {
- res.sendStatus(204)
- }
- }
- )
- }
- )
- app
- .listen(3016, error => {
- if (error) {
- throw error
- }
- })
- .on('error', error => {
- console.error('error starting MockDocstoreApi:', error.message)
- process.exit(1)
- })
- },
- }
- MockDocstoreApi.run()
- module.exports = MockDocstoreApi
|