Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * 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;
 }