Browse Source

perm changes

asmer@controller 5 years ago
parent
commit
346b0c08c0
3 changed files with 43 additions and 4 deletions
  1. 3 2
      index.js
  2. 38 0
      models.js
  3. 2 2
      package-lock.json

+ 3 - 2
index.js

@@ -54,7 +54,7 @@ const upload  = require('multer')({ dest: uploadPath })
 
         type Category {
             _id: ID,
-            name: String!,
+            name: String,
             goods: [Good]
             image: Image
             owner: User
@@ -80,7 +80,7 @@ const upload  = require('multer')({ dest: uploadPath })
 
         input GoodInput {
             _id: ID,
-            name: String!,
+            name: String,
             description: String
             price: Float
             categories: [CategoryInput]
@@ -94,6 +94,7 @@ const upload  = require('multer')({ dest: uploadPath })
             good: Good,
             order: Order
             owner: User
+            total: Float
         }
 
         input OrderGoodInput {

+ 38 - 0
models.js

@@ -101,6 +101,21 @@ module.exports = async (dbName='shop') => {
                     image: "category",
                 }
             }
+
+            static get defaultPermissions(){
+                return {
+                    //savable refs, objectid's, words like 'tags' or 'roles'
+                    read: ['owner', 'user'],
+                    write: ['owner', 'admin'],
+                    create: ['user'],
+                    delete: ['admin', 'owner'],
+
+                    /*permission
+                     * TODO: permissions for read and write permissions
+                     *
+                     */
+                }
+            }
         }
         SlicedSavable.addClass(Category)
 
@@ -118,6 +133,22 @@ module.exports = async (dbName='shop') => {
                     orderGoods: "order"
                 }
             }
+
+
+            static get defaultPermissions(){
+                return {
+                    //savable refs, objectid's, words like 'tags' or 'roles'
+                    read: ['owner', 'admin'],
+                    write: ['owner', 'admin'],
+                    create: ['user'],
+                    delete: ['admin'],
+
+                    /*permission
+                     * TODO: permissions for read and write permissions
+                     *
+                     */
+                }
+            }
         }
         SlicedSavable.addClass(Order)
 
@@ -130,6 +161,13 @@ module.exports = async (dbName='shop') => {
                 return this.price*this.count
             }
 
+            async save(...params){
+                if (!this.price && this.good && this.good.price){
+                    this.price = this.good.price
+                }
+                return await super.save(...params)
+            }
+
             static get relations(){
                 return {
                     good: ["orderGoods"],

+ 2 - 2
package-lock.json

@@ -481,11 +481,11 @@
         "express-graphql": "^0.9.0",
         "graphql": "^14.4.2",
         "jsonwebtoken": "^8.5.1",
-        "mm": "git+ssh://git@gitlab.a-level.com.ua:gitgod/mm.git#f792da15d7a00091cd98840b352b6b526e2b57a1"
+        "mm": "git+ssh://git@gitlab.a-level.com.ua:gitgod/mm.git"
       },
       "dependencies": {
         "mm": {
-          "version": "git+ssh://git@gitlab.a-level.com.ua:gitgod/mm.git#f792da15d7a00091cd98840b352b6b526e2b57a1",
+          "version": "git+ssh://git@gitlab.a-level.com.ua:gitgod/mm.git#5d34f0c91cbf3acb9cdc59bdbeadee041758cea9",
           "from": "git+ssh://git@gitlab.a-level.com.ua:gitgod/mm.git",
           "requires": {
             "mongodb": "^3.2.2"