/* --Description :cloud function called to add mater key in update query */ //-- Export Modules import dotenv from 'dotenv'; dotenv.config() import axios from "axios"; export async function getUserGroups(request) { try { var appname = request.params.appname; if (appname == "") { return Promise.reject("Error:please provide appname"); } var response = {}; var rolelist = {}; appname = appname + "_"; //--function to get the userid from session token function getuserid(request) { return new Promise(function (resolve, reject) { const options = { url: process.env.SERVER_URL + "/users/me", method: "get", headers: { "X-Parse-Application-Id": process.env.APP_ID, "X-Parse-Session-Token": request.headers["sessiontoken"], }, }; axios(options) .then((x) => { const body = x.data; var error = body == "" ? true : false; if (error) { reject("result not found!"); } else { resolve(body); } }) .catch((err) => { if (err) { console.error(err); return; } }); }); } var userData = await getuserid(request); var userid = userData.objectId; console.log("userid " + userid); var url = process.env.SERVER_URL + '/roles?where={"users":{"__type":"Pointer","className":"_User","objectId":"' + userid + '"},"name": {"$regex": "' + appname + '"}}'; //-- check user role function getRoleList(userid) { return new Promise(function (resolve, reject) { const options = { url: url, method: "get", headers: { "X-Parse-Application-Id": process.env.APP_ID, }, }; axios(options) .then((x) => { const body = x.data; var roleres = []; for (var i = 0; i < body["results"].length; i++) { var rolename = body["results"][i]["name"]; //var roleprefix = rolename.split("_")[0]; roleres.push(rolename); } var error = roleres == "" ? true : false; if (error) { reject("result not found!"); } else { resolve(roleres); } }) .catch((err) => { if (err) { console.error(err); return; } }); }); } rolelist = await getRoleList(request); console.log(rolelist); //--check user roles according to appId var rolesInapp = []; for (let i = 0; i < rolelist.length; i++) { var str = JSON.stringify(rolelist[i]); var result = str.includes(appname); if (result == true) { rolesInapp.push(rolelist[i]); } } console.log(rolesInapp); return rolesInapp; } catch (err) { console.log("err in usergroup"); console.log(err); return Promise.reject("Error:Result not found"); } }