From daa52f63671bc633da24f6bf5a09c8786e9e20d8 Mon Sep 17 00:00:00 2001 From: luscom01 Date: Thu, 9 Apr 2020 18:00:28 +0400 Subject: [PATCH] Fix Pointer fields update --- parseClient.js | 59 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/parseClient.js b/parseClient.js index 3699946..38a0afe 100644 --- a/parseClient.js +++ b/parseClient.js @@ -17,7 +17,8 @@ export default ({URL, APP_ID, JAVASCRIPT_KEY}) => { Parse.serverURL = URL; } return async (type, resource, params) => { - const resourceObj = Parse.Object.extend(resource); + + const resourceObj = Parse.Object.extend(resource); const query = new Parse.Query(resourceObj); switch (type) { @@ -25,20 +26,18 @@ export default ({URL, APP_ID, JAVASCRIPT_KEY}) => { const { page, perPage } = params.pagination; const { field, order } = params.sort; const { filter } = params; - const count = await query.count(); query.limit(perPage); query.skip((page - 1) * perPage); - if (order === "DESC") query.descending(field); else if (order === "ASEC") query.ascending(field); - Object.keys(filter).map(f => query.matches(f, filter[f], 'i')); + Object.keys(filter).map(f => query.contains(f, filter[f])); const results = await query.find(); return { total: count, data: results.map(o => ({ id: o.id, ...o.attributes })) }; - } + } case GET_ONE: { const result = await query.get(params.id); return { @@ -46,13 +45,12 @@ export default ({URL, APP_ID, JAVASCRIPT_KEY}) => { }; } case GET_MANY: { - const results = params.ids.map(id => (new Parse.Query(resourceObj)).get(id)); - const data = await Promise.all(results); - return { - total: data.length, - data: data.map(o => ({ id: o.id, ...o.attributes })) - }; - + const results = params.ids.map(id => (new Parse.Query(resourceObj)).get(id)); + const data = await Promise.all(results); + return { + total: data.length, + data: data.map(o => ({ id: o.id, ...o.attributes })), + }; } case GET_MANY_REFERENCE: { const { page, perPage } = params.pagination; @@ -63,17 +61,14 @@ export default ({URL, APP_ID, JAVASCRIPT_KEY}) => { query.skip((page - 1) * perPage); if (order === "DESC") query.descending(field); else if (order === "ASEC") query.ascending(field); - const results = await query.find(); return { total: count, data: results.map(o => ({ id: o.id, ...o.attributes })) }; - } case CREATE: { const resObj = new resourceObj(); - // Object.keys(params.data).map(key=>resObj.set(key, params.data[key])); try { const r = await resObj.save(params.data); return {data: {id: r.id, ...r.attributes}} @@ -82,21 +77,39 @@ export default ({URL, APP_ID, JAVASCRIPT_KEY}) => { } } case UPDATE: { + var allPointersArr=[]; + var pointerArr=[]; try { const obj = await query.get(params.id); const keys = Object.keys(params.data).filter(o=> o=="id" || o=="createdAt" || o=="updatedAt" ? false : true); const data = keys.reduce((r,f,i)=>{ - r[f] = params.data[f]; + if(params.data[f].id==undefined){ + // console.log("Not Pointer"); + r[f] = params.data[f]; + } + else{ + // console.log("Pointer"); + pointerArr["pointerCN"]=params.data[f].className; + pointerArr["pointerKey"]=params.data[f].id; + pointerArr["referenceCN"]=f; + allPointersArr.push(pointerArr); + pointerArr=[]; + } return r; }, {}); - // console.log(obj); + for(var i=0;i { } } - } + } }; } + + + +