/** * Update a Poi = 1 SharcPoiDesigner + 1 SharcPoiExperience * @param String $objPoi: a json object containing info of both Pois */ public static function updatePoi($objPoi) { $response = array(); try { $poiDesigner = SharcPoiDesigner::find($objPoi['poiDesigner']['id']); if ($poiDesigner != null) { $poiDesigner->name = $objPoi['poiDesigner']['name']; $poiDesigner->coordinate = $objPoi['poiDesigner']['coordinate']; $poiDesigner->triggerZone = $objPoi['poiDesigner']['triggerZone']; $result = $poiDesigner->save(); if (!$result) { $response["status"] = ERROR; $response["data"] = INTERNAL_SERVER_ERROR; return $response; } } $poiExperience = SharcPoiExperience::find($objPoi['id']); if ($poiExperience != null) { $poiExperience->description = $objPoi['description']; $poiExperience->typeList = $objPoi['typeList']; $poiExperience->eoiList = $objPoi['eoiList']; $poiExperience->routeList = $objPoi['routeList']; $result = $poiExperience->save(); if ($result) { //= 1 success $response["status"] = SUCCESS; //$poiExperience->$poiDesigner $response["data"] = $poiExperience->toArray(); } else { //error $response["status"] = ERROR; $response["data"] = INTERNAL_SERVER_ERROR; } } //update other table e.g. route/event } catch (Exception $e) { $response["status"] = ERROR; $response["data"] = Utils::getExceptionMessage($e); } return $response; }
/** * Get content of an experience -> use when loading an experience from SLAT * @param String $experienceId: id of the SharcExperience * @param String $designerId: id of the designer */ public static function getExperienceContent($designerId, $experienceId) { $response = array(); try { //Check if the designerId owns the experience if ($designerId == ADMIN_ID) { //admin $ex = SharcExperience::find($experienceId); $designerId = $ex->designerId; } $rs = SharcExperience::where('id', $experienceId)->where('designerId', $designerId)->get(); if ($rs->count() == 0) { //Not exists $response["status"] = FAILED; $response["data"] = EXPERIENCE_NOT_EXIST; return $response; } else { $response["status"] = SUCCESS; //Get all POIs of the experience $objPois = SharcPoiExperience::where('experienceId', $experienceId)->get(); $tmpPois = $objPois->toArray(); $i = 0; for ($i; $i < $objPois->count(); $i++) { $rs = SharcPoiDesigner::where('id', $objPois[$i]->poiDesignerId)->where('designerId', $designerId)->get(); $tmpPois[$i]["poiDesigner"] = $rs[0]->toArray(); //Thumbnail $media = SharcMediaExperience::where('entityId', $objPois[$i]->id)->where('entityType', 'POI')->where('mainMedia', 1)->get(); if ($media->count() > 0) { $mediaDesigner = SharcMediaDesigner::where('id', $media[0]->mediaDesignerId)->where('designerId', $designerId)->get(); if ($mediaDesigner->count() > 0) { $tmpPois[$i]["thumbnail"] = $mediaDesigner[0]->content; } else { $tmpPois[$i]["thumbnail"] = ""; } } else { $tmpPois[$i]["thumbnail"] = ""; } $media = SharcMediaExperience::where('entityId', $objPois[$i]->id)->where('entityType', 'POI')->get(); $tmpPois[$i]["mediaCount"] = $media->count(); $tmpPois[$i]["responseCount"] = 0; } $response["data"]["allPois"] = $tmpPois; //Get all EOIs of the experience $objEois = SharcEoiExperience::where('experienceId', $experienceId)->get(); $tmpEois = $objEois->toArray(); $i = 0; for ($i; $i < $objEois->count(); $i++) { $rs = SharcEoiDesigner::where('id', $objEois[$i]->eoiDesignerId)->where('designerId', $designerId)->get(); $tmpEois[$i]["eoiDesigner"] = $rs[0]->toArray(); $media = SharcMediaExperience::where('entityId', $objEois[$i]->id)->where('entityType', 'EOI')->get(); $tmpEois[$i]["mediaCount"] = $media->count(); $tmpEois[$i]["responseCount"] = 0; } $response["data"]["allEois"] = $tmpEois; //Get all Routes of the experience $objRoutes = SharcRouteExperience::where('experienceId', $experienceId)->get(); $tmpRoutes = $objRoutes->toArray(); $i = 0; for ($i; $i < $objRoutes->count(); $i++) { $rs = SharcRouteDesigner::where('id', $objRoutes[$i]->routeDesignerId)->where('designerId', $designerId)->get(); $tmpRoutes[$i]["routeDesigner"] = $rs[0]->toArray(); $media = SharcMediaExperience::where('entityId', $objRoutes[$i]->id)->where('entityType', 'ROUTE')->get(); $tmpRoutes[$i]["mediaCount"] = $media->count(); $tmpRoutes[$i]["responseCount"] = 0; } $response["data"]["allRoutes"] = $tmpRoutes; //Get all responses $objResponses = SharcResponse::where('experienceId', $experienceId)->get(); $tmpResponse = $objResponses->toArray(); $i = 0; for ($i; $i < $objResponses->count(); $i++) { $rs = SharcUser::find($objResponses[$i]->userId); if ($rs != null) { $tmpResponse[$i]["userId"] = $rs->username; } //get entity name as well switch ($objResponses[$i]->entityType) { case "POI": $obj = SharcPoiExperience::find($objResponses[$i]->entityId); $tmpResponse[$i]["entityId"] = SharcPoiDesigner::find($obj->poiDesignerId)->name; break; case "EOI": $obj = SharcEoiExperience::find($objResponses[$i]->entityId); $tmpResponse[$i]["entityId"] = SharcEoiDesigner::find($obj->eoiDesignerId)->name; break; case "ROUTE": $obj = SharcRouteExperience::find($objResponses[$i]->entityId); $tmpResponse[$i]["entityId"] = SharcRouteDesigner::find($obj->routeDesignerId)->name; break; case "media": break; } } $response["data"]["allResponses"] = $tmpResponse; //Get all PoiType of the experience $objPoiTypes = SharcPoiType::where('designerId', $designerId)->get(); $response["data"]["allPoiTypes"] = $objPoiTypes->toArray(); return $response; } } catch (Exception $e) { $response["status"] = ERROR; $response["data"] = Utils::getExceptionMessage($e); } return $response; }
/** * Get all responses of an experience * @param String $experienceId: id of the SharcExperience * @param String $designerId: id of the designer */ public static function getExperienceResponses($designerId, $experienceId) { $response = array(); try { //Check if the designerId owns the experience if ($designerId == ADMIN_ID) { //admin $ex = SharcExperience::find($experienceId); $designerId = $ex->designerId; } $rs = SharcExperience::where('id', $experienceId)->where('designerId', $designerId)->get(); if ($rs->count() == 0) { //Not exists $response["status"] = FAILED; $response["data"] = EXPERIENCE_NOT_EXIST; return $response; } else { $response["status"] = SUCCESS; //Get all responses $objResponses = SharcResponse::where('experienceId', $experienceId)->get(); $tmpResponse = $objResponses->toArray(); $i = 0; for ($i; $i < $objResponses->count(); $i++) { $rs = SharcUser::find($objResponses[$i]->userId); if ($rs != null) { $tmpResponse[$i]["userId"] = $rs->username; } //get entity name as well switch ($objResponses[$i]->entityType) { case "POI": $obj = SharcPoiExperience::find($objResponses[$i]->entityId); $tmpResponse[$i]["entityId"] = SharcPoiDesigner::find($obj->poiDesignerId)->name; break; case "EOI": $obj = SharcEoiExperience::find($objResponses[$i]->entityId); $tmpResponse[$i]["entityId"] = SharcEoiDesigner::find($obj->eoiDesignerId)->name; break; case "ROUTE": $obj = SharcRouteExperience::find($objResponses[$i]->entityId); $tmpResponse[$i]["entityId"] = SharcRouteDesigner::find($obj->routeDesignerId)->name; break; case "media": break; } } $response["data"] = $tmpResponse; return $response; } } catch (Exception $e) { $response["status"] = ERROR; $response["data"] = Utils::getExceptionMessage($e); } return $response; }