Code Duplication    Length = 50-54 lines in 2 locations

src/server/routes/get-list-workflow.js 1 location

@@ 1-54 (lines=54) @@
1
import path from 'path'
2
import fse from 'fs-extra'
3
import Handlebars from 'handlebars'
4
import {
5
  abeExtend
6
  ,coreUtils
7
  ,config
8
} from '../../cli'
9
10
var route = function(router, req, res, next) {
11
  abeExtend.hooks.instance.trigger('beforeRoute', req, res, next)
12
  var routes = router.stack
13
  var urls = []
14
  var html = ''
15
16
  Array.prototype.forEach.call(routes, function(route) {
17
    urls.push({
18
      url: route.route.path,
19
      method: Object.keys(route.route.methods)[0].toUpperCase(),
20
      regex: route.route.path.replace(/\*$/, '') + '.*'
21
    })
22
  })
23
24
  var page = path.join(__dirname + '/../views/list-workflow.html')
25
  if (coreUtils.file.exist(page)) {
26
    html = fse.readFileSync(page, 'utf8')
27
  }
28
29
  var workflowUrl = {}
30
  Array.prototype.forEach.call(config.users.workflow, (flow) => {
31
    workflowUrl[flow] = [
32
      {url: `/abe/operations/${flow}/edit`, action: 'edit', workflow: flow},
33
      {url: `/abe/operations/${flow}/delete`, action: 'delete', workflow: flow}
34
    ]
35
    if (flow != 'publish') {
36
      workflowUrl[flow].push({url: `/abe/operations/${flow}/reject`, action: 'reject', workflow: flow})
37
      workflowUrl[flow].push({url: `/abe/operations/${flow}/submit`, action: 'submit', workflow: flow})
38
    }
39
  })
40
  var template = Handlebars.compile(html, {noEscape: true})
41
  var tmp = template({
42
    urls: urls,
43
    user: res.user,
44
    config: JSON.stringify(config),
45
    roles: config.users.roles,
46
    workflow: config.users.workflow,
47
    workflowUrl: workflowUrl
48
  })
49
  
50
  res.cookie('csrf-token', res.locals.csrfToken)
51
  return res.send(tmp)
52
}
53
54
export default route

src/server/routes/get-list-url.js 1 location

@@ 1-50 (lines=50) @@
1
import path from 'path'
2
import fse from 'fs-extra'
3
import Handlebars from 'handlebars'
4
import {
5
  abeExtend
6
  ,coreUtils
7
  ,config
8
} from '../../cli'
9
10
var route = function(router, req, res, next) {
11
  abeExtend.hooks.instance.trigger('beforeRoute', req, res, next)
12
  var routes = router.stack
13
  var urls = []
14
  var html = ''
15
16
  Array.prototype.forEach.call(routes, function(route) {
17
    urls.push({
18
      url: route.route.path,
19
      method: Object.keys(route.route.methods)[0].toUpperCase(),
20
      regex: route.route.path.replace(/\*$/, '') + '.*'
21
    })
22
  })
23
24
  var page = path.join(__dirname + '/../views/list-url.html')
25
  if (coreUtils.file.exist(page)) {
26
    html = fse.readFileSync(page, 'utf8')
27
  }
28
29
  var workflowUrl = {}
30
  Array.prototype.forEach.call(config.users.workflow, (flow) => {
31
    workflowUrl[flow] = [
32
      {url: `/abe/operations/${flow}/edit`, action: 'edit', workflow: flow},
33
      {url: `/abe/operations/${flow}/delete`, action: 'delete', workflow: flow}
34
    ]
35
  })
36
  var template = Handlebars.compile(html, {noEscape: true})
37
  var tmp = template({
38
    urls: urls,
39
    user: res.user,
40
    config: JSON.stringify(config),
41
    roles: config.users.roles,
42
    workflow: config.users.workflow,
43
    workflowUrl: workflowUrl
44
  })
45
  
46
  res.cookie('csrf-token', res.locals.csrfToken)
47
  return res.send(tmp)
48
}
49
50
export default route