/** * Update a Media = 1 SharcMediaDesigner + 1 SharcMediaExperience * @param String $objMedia: a json object containing info of both Medias */ public static function updateMedia($objMedia) { $response = array(); try { $mediaDesigner = SharcMediaDesigner::find($objMedia['mediaDesigner']['id']); if ($mediaDesigner != null) { /*$mediaDesigner->name = $objMedia['mediaDesigner']['name']; $mediaDesigner->directed = $objMedia['mediaDesigner']['directed']; $mediaDesigner->colour = $objMedia['mediaDesigner']['colour']; $mediaDesigner->path = $objMedia['mediaDesigner']['path']; $result = $mediaDesigner->save(); if (!$result){ $response["status"] = ERROR; $response["data"] = INTERNAL_SERVER_ERROR; return $response; } */ } $mediaExperience = SharcMediaExperience::find($objMedia['id']); if ($mediaExperience != null) { //if mainMedia == 1 -> reset all other media to 0 if ($objMedia['mainMedia'] == 1) { SharcMediaExperience::where('experienceId', $objMedia['experienceId'])->where('entityType', $objMedia['entityType'])->where('entityId', $objMedia['entityId'])->update(array('mainMedia' => 0)); } $mediaExperience->caption = $objMedia['caption']; $mediaExperience->mainMedia = $objMedia['mainMedia']; $mediaExperience->visible = $objMedia['visible']; $mediaExperience->order = $objMedia['order']; $result = $mediaExperience->save(); if ($result) { //= 1 success $response["status"] = SUCCESS; $mediaExperience["mediaDesigner"] = $mediaDesigner->toArray(); //need to return this info too for presentation $response["data"] = $mediaExperience->toArray(); } else { //error $response["status"] = ERROR; $response["data"] = INTERNAL_SERVER_ERROR; } } //update other table e.g. poi/event } catch (Exception $e) { $response["status"] = ERROR; $response["data"] = Utils::getExceptionMessage($e); } return $response; }