ws.js 2.94 KB
Newer Older
1 2
'use strict'

3
/* global appconfig, entries, rights, search, upl */
NGPixel's avatar
NGPixel committed
4 5
/* eslint-disable standard/no-callback-literal */

6
const _ = require('lodash')
7 8

module.exports = (socket) => {
9 10 11 12 13
  // Check if Guest
  if (!socket.request.user.logged_in) {
    socket.request.user = _.assign(rights.guest, socket.request.user)
  }

14
  // -----------------------------------------
15
  // SEARCH
16
  // -----------------------------------------
17

18 19 20 21 22 23
  if (appconfig.public || socket.request.user.logged_in) {
    socket.on('search', (data, cb) => {
      cb = cb || _.noop
      search.find(data.terms).then((results) => {
        return cb(results) || true
      })
24
    })
25
  }
26

NGPixel's avatar
NGPixel committed
27 28 29 30
  // -----------------------------------------
  // TREE VIEW (LIST ALL PAGES)
  // -----------------------------------------

31
  if (appconfig.public || socket.request.user.logged_in) {
NGPixel's avatar
NGPixel committed
32 33
    socket.on('treeFetch', (data, cb) => {
      cb = cb || _.noop
34
      entries.getFromTree(data.basePath, socket.request.user).then((f) => {
NGPixel's avatar
NGPixel committed
35 36 37 38 39
        return cb(f) || true
      })
    })
  }

40
  // -----------------------------------------
41
  // UPLOADS
42
  // -----------------------------------------
43

44 45 46 47 48 49
  if (socket.request.user.logged_in) {
    socket.on('uploadsGetFolders', (data, cb) => {
      cb = cb || _.noop
      upl.getUploadsFolders().then((f) => {
        return cb(f) || true
      })
50
    })
51

52 53 54 55 56
    socket.on('uploadsCreateFolder', (data, cb) => {
      cb = cb || _.noop
      upl.createUploadsFolder(data.foldername).then((f) => {
        return cb(f) || true
      })
57
    })
58

59 60 61 62 63
    socket.on('uploadsGetImages', (data, cb) => {
      cb = cb || _.noop
      upl.getUploadsFiles('image', data.folder).then((f) => {
        return cb(f) || true
      })
64
    })
65

66 67 68 69 70
    socket.on('uploadsGetFiles', (data, cb) => {
      cb = cb || _.noop
      upl.getUploadsFiles('binary', data.folder).then((f) => {
        return cb(f) || true
      })
71
    })
72

73 74 75 76 77
    socket.on('uploadsDeleteFile', (data, cb) => {
      cb = cb || _.noop
      upl.deleteUploadsFile(data.uid).then((f) => {
        return cb(f) || true
      })
78
    })
79

80 81 82 83 84 85 86 87 88 89
    socket.on('uploadsFetchFileFromURL', (data, cb) => {
      cb = cb || _.noop
      upl.downloadFromUrl(data.folder, data.fetchUrl).then((f) => {
        return cb({ ok: true }) || true
      }).catch((err) => {
        return cb({
          ok: false,
          msg: err.message
        }) || true
      })
90
    })
91

92 93 94 95 96 97 98 99 100 101
    socket.on('uploadsRenameFile', (data, cb) => {
      cb = cb || _.noop
      upl.moveUploadsFile(data.uid, data.folder, data.filename).then((f) => {
        return cb({ ok: true }) || true
      }).catch((err) => {
        return cb({
          ok: false,
          msg: err.message
        }) || true
      })
102
    })
NGPixel's avatar
NGPixel committed
103

104 105 106 107 108 109 110 111 112 113
    socket.on('uploadsMoveFile', (data, cb) => {
      cb = cb || _.noop
      upl.moveUploadsFile(data.uid, data.folder).then((f) => {
        return cb({ ok: true }) || true
      }).catch((err) => {
        return cb({
          ok: false,
          msg: err.message
        }) || true
      })
114
    })
115
  }
116
}