|
|
@@ -5,6 +5,8 @@ const UserModel = require('../../../../app/src/models/User').User
|
|
|
const UserUpdater = require('../../../../app/src/Features/User/UserUpdater')
|
|
|
const AuthenticationManager = require('../../../../app/src/Features/Authentication/AuthenticationManager')
|
|
|
const { promisify } = require('util')
|
|
|
+const fs = require('fs')
|
|
|
+const Path = require('path')
|
|
|
|
|
|
let count = 0
|
|
|
|
|
|
@@ -401,6 +403,112 @@ class User {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ uploadFileInProject(projectId, folderId, file, name, contentType, callback) {
|
|
|
+ const imageFile = fs.createReadStream(
|
|
|
+ Path.resolve(Path.join(__dirname, '..', '..', 'files', file))
|
|
|
+ )
|
|
|
+
|
|
|
+ this.request.post(
|
|
|
+ {
|
|
|
+ uri: `project/${projectId}/upload`,
|
|
|
+ qs: {
|
|
|
+ folder_id: String(folderId)
|
|
|
+ },
|
|
|
+ formData: {
|
|
|
+ qqfile: {
|
|
|
+ value: imageFile,
|
|
|
+ options: {
|
|
|
+ filename: name,
|
|
|
+ contentType: contentType
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ (error, res, body) => {
|
|
|
+ if (error) {
|
|
|
+ return callback(error)
|
|
|
+ }
|
|
|
+ if (res.statusCode < 200 || res.statusCode >= 300) {
|
|
|
+ return callback(new Error(`failed to upload file ${res.statusCode}`))
|
|
|
+ }
|
|
|
+
|
|
|
+ callback(null, JSON.parse(body).entity_id)
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ uploadExampleFileInProject(projectId, folderId, name, callback) {
|
|
|
+ this.uploadFileInProject(
|
|
|
+ projectId,
|
|
|
+ folderId,
|
|
|
+ '1pixel.png',
|
|
|
+ name,
|
|
|
+ 'image/png',
|
|
|
+ callback
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ moveItemInProject(projectId, type, itemId, folderId, callback) {
|
|
|
+ this.request.post(
|
|
|
+ {
|
|
|
+ uri: `project/${projectId}/${type}/${itemId}/move`,
|
|
|
+ json: {
|
|
|
+ folder_id: folderId
|
|
|
+ }
|
|
|
+ },
|
|
|
+ (error, res) => {
|
|
|
+ if (error) {
|
|
|
+ return callback(error)
|
|
|
+ }
|
|
|
+ if (res.statusCode < 200 || res.statusCode >= 300) {
|
|
|
+ return callback(new Error(`failed to move ${type} ${res.statusCode}`))
|
|
|
+ }
|
|
|
+
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ renameItemInProject(projectId, type, itemId, name, callback) {
|
|
|
+ this.request.post(
|
|
|
+ {
|
|
|
+ uri: `project/${projectId}/${type}/${itemId}/rename`,
|
|
|
+ json: {
|
|
|
+ name: name
|
|
|
+ }
|
|
|
+ },
|
|
|
+ (error, res) => {
|
|
|
+ if (error) {
|
|
|
+ return callback(error)
|
|
|
+ }
|
|
|
+ if (res.statusCode < 200 || res.statusCode >= 300) {
|
|
|
+ return callback(
|
|
|
+ new Error(`failed to rename ${type} ${res.statusCode}`)
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ deleteItemInProject(projectId, type, itemId, callback) {
|
|
|
+ this.request.delete(
|
|
|
+ `project/${projectId}/${type}/${itemId}`,
|
|
|
+ (error, res) => {
|
|
|
+ if (error) {
|
|
|
+ return callback(error)
|
|
|
+ }
|
|
|
+ if (res.statusCode < 200 || res.statusCode >= 300) {
|
|
|
+ return callback(
|
|
|
+ new Error(`failed to delete ${type} ${res.statusCode}`)
|
|
|
+ )
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
addUserToProject(projectId, user, privileges, callback) {
|
|
|
let updateOp
|
|
|
if (privileges === 'readAndWrite') {
|