asmer@controller 4 years ago
parent
commit
f5381295b0
2 changed files with 34 additions and 11 deletions
  1. 11 2
      index.js
  2. 23 9
      models.js

+ 11 - 2
index.js

@@ -98,8 +98,8 @@ const uploadTrack  = require('multer')({ dest: uploadTrackPath, fieldSize: 1024*
     console.log(printSchema(schema))
 
     const app = express();
-    app.use(express.static('public'));
     app.use(cors())
+    app.use(express.static('public'));
     app.use('/graphql', express_graphql(jwtGQL({anonSchema, anonResolvers, schema, createContext: getModels, graphiql: true, secret: jwtSecret})))
 
 
@@ -111,6 +111,10 @@ const uploadTrack  = require('multer')({ dest: uploadTrackPath, fieldSize: 1024*
 
             let {models: {Image }} = await getModels(decoded.sub)
             let image = await Image.fromFileData(req.file)
+            if (image.error){ 
+                res.end(JSON.stringify(image))
+                return
+            }
             res.end(JSON.stringify({_id: image._id, url: image.url}))
         }
         else {
@@ -121,12 +125,17 @@ const uploadTrack  = require('multer')({ dest: uploadTrackPath, fieldSize: 1024*
 
     app.post('/track', uploadTrack.single('track'), async (req, res, next) => {
         let decoded;
-        console.log('wtf')
         if (decoded = jwtCheck(req, jwtSecret)){
             console.log('SOME UPLOAD OF TRACK', decoded, req.file)
 
             let {models: { Track }} = await getModels(decoded.sub)
             let track = await Track.fromFileData(req.file)
+
+            if (track.error){ 
+                console.log('error', track.error)
+                res.end(JSON.stringify(track))
+                return
+            }
             res.end(JSON.stringify({_id: track._id, url: track.url}))
         }
         else {

+ 23 - 9
models.js

@@ -77,15 +77,20 @@ module.exports = async (dbName='player') => {
 
 
             static async fromFileData(fileData){
-                let track  = new Track({})
-                track.fileData = fileData
-                track.url      = `track/${fileData.filename}`
-                track.originalFileName = fileData.originalname
-                const NodeID3 = require('node-id3')
-                track.id3 = await NodeID3.read(fileData.path)
-
-                await track.save()
-                return track;
+                try {
+                    let track  = new Track({})
+                    track.fileData = fileData
+                    track.url      = `track/${fileData.filename}`
+                    track.originalFileName = fileData.originalname
+                    const NodeID3 = require('node-id3')
+                    track.id3 = await NodeID3.read(fileData.path)
+
+                    await track.save()
+                    return track;
+                }
+                catch(e){
+                    return {error:e}
+                }
             }
 
 
@@ -110,6 +115,15 @@ module.exports = async (dbName='player') => {
                     tracks: ["playlists"]
                 }
             }
+
+            static get defaultPermissions(){
+                return {
+                    read: ['owner', 'user', 'admin'],
+                    create: ['user', 'admin'],
+                    write: ['owner', 'admin'],
+                    delete: ['owner', 'admin'],
+                }
+            }
         }
         SlicedSavable.addClass(Playlist)