function execute($param, $post) { try { if (count($param) > 0) { if ($param[0] == "act") { $obj = json_decode($post["json"]); if ($obj->Action == "delete") { $guids = array(); foreach ($obj->Notes as $note) { $guids[] = $note->Guid; } return ReturnBoolean($this->deleteNotes($obj->NoteTakerGuid, $obj->NoteCollectionGuid, $guids)); } else { if ($obj->Action == "addorupdate") { $newNotes = array(); $updateNotes = array(); $listId = $this->getNoteCollectionId($obj->NoteTakerGuid, $obj->NoteCollectionGuid); if ($listId !== false) { foreach ($obj->Notes as $note) { $existingNote = GetSingleByCondition("Notes", array("Guid" => $note->Guid, "NoteCollectionId" => $listId)); if ($existingNote == null) { $newnote = new Note(); $newnote->NoteCollectionId = $listId; $newnote->Guid = $note->Guid; $newnote->Content = $note->Content; $newnote->Description = $note->Description; $newnote->CreateTime = ConvertToDatabaseDateTime($note->CreateTime); $newnote->IsCompleted = $note->IsCompleted; $newNotes[] = $newnote; } else { $existingNote->Content = $note->Content; $existingNote->Description = $note->Description; $existingNote->CreateTime = ConvertToDatabaseDateTime($note->CreateTime); $existingNote->IsCompleted = $note->IsCompleted; $updateNotes[] = $existingNote; } } $res = InsertAll($newNotes); $res &= UpdateAll($updateNotes); return ReturnBoolean($res == 1); } return ReturnBoolean(false); } else { if ($obj->Action == "get") { $listId = $this->getNoteCollectionId($obj->NoteTakerGuid, $obj->NoteCollectionGuid); if ($listId !== false) { $notes = GetAllByCondition("Notes", array("NoteCollectionId" => $listId)); $resp = new NoteResponse(); foreach ($notes as $note) { $resp->Notes[] = new NoteEntity($note); } return ReturnJson($resp); } return ReturnBoolean(false); } else { return ReturnError(LINK_INVALID); } } } } } return ReturnError(LINK_INVALID); } catch (\Exception $ex) { return ReturnError("Exception occured: " . $ex->getMessage()); } }
function execute($param, $post) { if (count($param) > 0) { if ($param[0] == "act") { $obj = json_decode($post["json"]); $user = GetByGuid("Drinker", $obj->Guid); if ($obj->Action == "exists") { return ReturnBoolean($user != null); } else { if ($obj->Action == "update") { if ($user instanceof Drinker) { $user->Name = $obj->UserInformations->Name; $user->Color = $obj->UserInformations->Color; return ReturnBoolean(Update(DRINKER_TABLE, $user)); } else { $user = new Drinker(); $user->Name = $obj->UserInformations->Name; $user->Color = $obj->UserInformations->Color; $user->Guid = $obj->Guid; return ReturnBoolean(Insert(DRINKER_TABLE, $user)); } } else { if ($obj->Action == "remove") { if ($user instanceof Drinker) { //remove all DrinkerCycleRelations $relations = GetAllByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerId" => $user->Id)); if (DeleteAll($relations)) { return ReturnBoolean(Delete(DRINKER_TABLE, $user)); } else { return ReturnCrudError($relations, "DeleteAll"); } } else { return ReturnNotFound($obj->Guid, "Drinker"); } } } } } else { if (ValidateGuid($param[0])) { $user = GetByGuid("Drinker", $param[0]); if ($user instanceof Drinker) { $drinker = new DrinkerEntity($user); $relations = GetAllByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerId" => $drinker->Id)); foreach ($relations as $relation) { if ($relation instanceof DrinkerCyclesDrinkersRelation) { $cycle = GetById(DRINKER_TABLE, $relation->DrinkerCycleId); if ($cycle instanceof DrinkerCycle) { if ($relation->IsAuthenticated) { $drinker->AuthDrinkerCycles[] = $cycle->Guid; } else { $drinker->NonAuthDrinkerCycles[] = $cycle->Guid; } } } } $resp = new DrinkerResponse(); $resp->Drinker = $drinker; return json_encode($resp); } else { return ReturnNotFound($param[0], "Drinker"); } } } } return ReturnError(LINK_INVALID); }
function execute($param, $post) { if (count($param) > 0 && $param[0] == "act") { $obj = json_decode($post["json"]); $group = GetSingleByCondition(DRINKERCYCLE_TABLE, array("Name" => $obj->Name)); if ($group instanceof DrinkerCycle) { if ($obj->Action == "exists") { $groupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id)); return ReturnBoolean($groupRela != null); } else { if ($obj->Action == "add") { $drinker = GetSingleByCondition(DRINKER_TABLE, array("Guid" => $obj->Guid)); if ($drinker instanceof Drinker) { $presGroupRelation = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id, "DrinkerId" => $drinker->Id)); if ($presGroupRelation == null) { $groupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id)); $newRela = new DrinkerCyclesDrinkersRelation(); $newRela->DrinkerId = $drinker->Id; $newRela->DrinkerCycleId = $group->Id; $newRela->IsAuthenticated = $groupRela == null; return ReturnBoolean(Insert(DRINKERCYCLESDRINKERSRELATION_TABLE, $newRela)); } return ReturnBoolean(true); } else { return ReturnNotFound($obj->Guid, "Drinker"); } } else { if ($obj->Action == "remove") { $drinker = GetSingleByCondition(DRINKER_TABLE, array("Guid" => $obj->Guid)); if ($drinker instanceof Drinker) { $groupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id, "DrinkerId" => $drinker->Id)); if ($groupRela instanceof DrinkerCyclesDrinkersRelation) { return ReturnBoolean(DeleteById(DRINKERCYCLESDRINKERSRELATION_TABLE, $groupRela->Id)); } else { return RelationNotFound($group->Id, $drinker->Id, DRINKERCYCLESDRINKERSRELATION_TABLE); } } else { return ReturnNotFound($obj->Guid, DRINKER_TABLE); } } else { if ($obj->Action == "authenticate" || $obj->Action == "deauthenticate") { $newVal = true; if ($obj->Action == "deauthenticate") { $newVal = false; } $drinker = GetSingleByCondition(DRINKER_TABLE, array("Guid" => $obj->Guid)); if ($drinker instanceof Drinker) { $groupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id, "DrinkerId" => $drinker->Id)); if ($groupRela instanceof DrinkerCyclesDrinkersRelation) { //can change others status if ($groupRela->IsAuthenticated) { $otherDrinker = GetSingleByCondition(DRINKER_TABLE, array("Guid" => $obj->AuthGuid)); if ($otherDrinker instanceof Drinker) { $otherGroupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id, "DrinkerId" => $otherDrinker->Id)); if ($otherGroupRela instanceof DrinkerCyclesDrinkersRelation) { $otherGroupRela->IsAuthenticated = $newVal; return ReturnBoolean(Update(DRINKERCYCLESDRINKERSRELATION_TABLE, $otherGroupRela)); } else { return RelationNotFound($group->Id, $otherDrinker->Id, DRINKERCYCLESDRINKERSRELATION_TABLE); } } else { return ReturnNotFound($obj->AuthGuid, "Drinker"); } } else { //not authenticated return ReturnBoolean(false); } } else { return RelationNotFound($group->Id, $drinker->Id, DRINKERCYCLESDRINKERSRELATION_TABLE); } } else { return ReturnNotFound($obj->Guid, "Drinker"); } } else { if ($obj->Action == "removeforeign") { $drinker = GetSingleByCondition(DRINKER_TABLE, array("Guid" => $obj->Guid)); if ($drinker instanceof Drinker) { $groupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id, "DrinkerId" => $drinker->Id)); if ($groupRela instanceof DrinkerCyclesDrinkersRelation) { //can change others status if ($groupRela->IsAuthenticated) { $otherDrinker = GetSingleByCondition(DRINKER_TABLE, array("Guid" => $obj->AuthGuid)); if ($otherDrinker instanceof Drinker) { $otherGroupRela = GetSingleByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $group->Id, "DrinkerId" => $otherDrinker->Id)); if ($otherGroupRela instanceof DrinkerCyclesDrinkersRelation) { return ReturnBoolean(Delete(DRINKERCYCLESDRINKERSRELATION_TABLE, $otherGroupRela)); } else { return RelationNotFound($group->Id, $otherDrinker->Id, DRINKERCYCLESDRINKERSRELATION_TABLE); } } else { return ReturnNotFound($obj->AuthGuid, "Drinker"); } } else { //not authenticated return ReturnBoolean(false); } } else { return RelationNotFound($group->Id, $drinker->Id, DRINKERCYCLESDRINKERSRELATION_TABLE); } } else { return ReturnNotFound($obj->Guid, "Drinker"); } } else { return ReturnError(LINK_INVALID); } } } } } } if ($obj->Action == "exists") { return ReturnBoolean(false); } else { if ($obj->Action == "add") { $newGroup = new DrinkerCycle(); $newGroup->Name = $obj->Name; $newGroup->Guid = GenerateGuid(); if (Insert(DRINKERCYCLE_TABLE, $newGroup)) { return $this->execute($param, $post); } else { return ReturnCrudError($newGroup, "add"); } } else { return ReturnNotFound($obj->Guid, DRINKERCYCLE_TABLE); } } } else { if (ValidateGuid($param[0])) { //construct model puh $drinker = GetByGuid("Drinker", $param[0]); if ($drinker != null && $drinker instanceof Drinker) { $relations = GetAllByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerId" => $drinker->Id)); $cyclesEnt = array(); $cycles = array(); $authCycles = array(); foreach ($relations as $relation) { if ($relation instanceof DrinkerCyclesDrinkersRelation) { $cycle = GetById(DRINKERCYCLE_TABLE, $relation->DrinkerCycleId); if ($cycle instanceof DrinkerCycle) { if ($relation->IsAuthenticated) { $cycl = new DrinkerCycleEntity($cycle); $cycl->IsAuthenticated = true; $authCycles[] = $cycle; $cyclesEnt[] = $cycl; } else { $cycles[] = $cycle; $cycl = new DrinkerCycleEntity($cycle); $cycl->IsAuthenticated = false; $cyclesEnt[] = $cycl; } } } } $drinkers = array(); foreach ($authCycles as $cycle) { $userRelations = GetAllByCondition(DRINKERCYCLESDRINKERSRELATION_TABLE, array("DrinkerCycleId" => $cycle->Id)); foreach ($userRelations as $userRelation) { if ($userRelation instanceof DrinkerCyclesDrinkersRelation) { //exclude self if ($drinker->Id != $userRelation->DrinkerId) { if (!isset($drinkers[$userRelation->DrinkerId])) { $user = GetById(DRINKER_TABLE, $userRelation->DrinkerId); if ($user instanceof Drinker) { $drinkers[$userRelation->DrinkerId] = new DrinkerEntity($user); } } if ($drinkers[$userRelation->DrinkerId] instanceof DrinkerEntity) { if ($userRelation->IsAuthenticated) { $drinkers[$userRelation->DrinkerId]->AuthDrinkerCycles[] = $cycle->Guid; } else { $drinkers[$userRelation->DrinkerId]->NonAuthDrinkerCycles[] = $cycle->Guid; } } } } } } $coll = new DrinkerCycleResponse(); $coll->DrinkerCycles = $cyclesEnt; foreach ($drinkers as $drinker) { $coll->Drinkers[] = $drinker; } return json_encode($coll); } else { return ReturnNotFound($param[0], "Drinker"); } } else { return ReturnError(LINK_INVALID); } } }
function GetAllOrderedBy($table, $orderBy, $additionalSql = null) { return GetAllByCondition($table, null, $orderBy, $additionalSql); }
function execute($param, $post) { if (count($param) > 0) { if ($param[0] == "act") { $obj = json_decode($post["json"]); $drinker = GetByGuid("Drinker", $obj->Guid); if ($drinker instanceof Drinker) { if ($obj->Action == "remove") { $existingBeers = array(); foreach ($obj->Beers as $beer) { $existingBeer = GetSingleByCondition("Beers", array("Guid" => $beer->Guid)); if ($existingBeer != null) { $existingBeers[] = $existingBeer; } } return ReturnBoolean(DeleteAll($existingBeers) && $this->refreshDrinkerProperties($drinker)); } else { if ($obj->Action == "add") { $newBeers = array(); foreach ($obj->Beers as $beer) { $existingBeer = GetSingleByCondition("Beers", array("Guid" => $beer->Guid)); if ($existingBeer == null) { $newbeer = new Beer(); $newbeer->Guid = $beer->Guid; $newbeer->DrinkTime = ConvertToDatabaseDateTime($beer->DrinkTime); $newbeer->DrinkerId = $drinker->Id; $newBeers[] = $newbeer; } } return ReturnBoolean(InsertAll($newBeers) && $this->refreshDrinkerProperties($drinker)); } else { if ($obj->Action == "sync") { $beercount = $this->countExistingBeers($drinker); if ($beercount !== $obj->ExpectedCount) { return ReturnBoolean(false); } $beers = GetAllByCondition("Beers", array("DrinkerId" => $drinker->Id), "DrinkTime DESC", " LIMIT " . count($obj->Beers)); for ($i = 0; $i < count($beers); $i++) { if ($beers[$i]->Guid != $obj->Beers[$i]->Guid) { return ReturnBoolean(false); } } return ReturnBoolean(true); } else { return ReturnError(LINK_INVALID); } } } } return ReturnNotFound($param[0], "Drinker"); } else { if (ValidateGuid($param[0])) { $drinker = GetByGuid("Drinker", $param[0]); if ($drinker != null && $drinker instanceof Drinker) { /* $limit = 0; if (count($param) > 1 && is_numeric($param[1])) { $beerCount = $this->countExistingBeers($drinker); if ($beerCount > $param[1]) { $limit = $beerCount - $param[0]; } } $limitstring = " LIMIT " . $limit; if ($limit == 0) $limitstring = ""; */ $beers = GetAllByCondition("Beers", array("DrinkerId" => $drinker->Id), " DrinkTime DESC "); $resp = new BeerResponse(); foreach ($beers as $beer) { $resp->Beers[] = new BeerEntity($beer); } return json_encode($resp); } else { return ReturnNotFound($param[0], "Drinker"); } } } } return ReturnError(LINK_INVALID); }
function execute($param, $post) { if (count($param) > 0) { if ($param[0] == "act") { $obj = json_decode($post["json"]); if ($obj->Action == "remove") { $existingUserConnections = array(); foreach ($obj->UserConnections as $userConnection) { $existingUserConnection = GetSingleByCondition("UserConnections", array("Guid" => $userConnection->Guid)); if ($existingUserConnection != null) { $existingUserConnections[] = $existingUserConnection; } } return ReturnBoolean(DeleteAll($existingUserConnections)); } else { if ($obj->Action == "add") { $newUserConnections = array(); foreach ($obj->UserConnections as $userConnection) { $existingUserConnection = GetSingleByCondition("UserConnections", array("Guid" => $userConnection->Guid)); if ($existingUserConnection == null) { $newuserconnection = new NoteTaker(); $newuserconnection->Guid = $userConnection->Guid; $newuserconnection->Color = $userConnection->Color; $newuserconnection->Name = $userConnection->Name; $newuserconnection->ConnectedUserGuid = $userConnection->ConnectedUserGuid; $newuserconnection->UserGuid = $obj->Guid; $newUserConnections[] = $newuserconnection; } } return ReturnBoolean(InsertAll($newUserConnections)); } else { if ($obj->Action == "addorupdate") { $newUserConnections = array(); $updateUserConnections = array(); foreach ($obj->UserConnections as $userConnection) { $existingUserConnection = GetSingleByCondition("UserConnections", array("Guid" => $userConnection->Guid)); if ($existingUserConnection == null) { $newuserconnection = new NoteTaker(); $newuserconnection->Guid = $userConnection->Guid; $newuserconnection->Color = $userConnection->Color; $newuserconnection->Name = $userConnection->Name; $newuserconnection->ConnectedUserGuid = $userConnection->ConnectedUserGuid; $newuserconnection->UserGuid = $obj->Guid; $newUserConnections[] = $newuserconnection; } else { $existingUserConnection->Color = $userConnection->Color; $existingUserConnection->Name = $userConnection->Name; $existingUserConnection->ConnectedUserGuid = $userConnection->ConnectedUserGuid; $existingUserConnection->UserGuid = $obj->Guid; $updateUserConnections[] = $existingUserConnection; } } return ReturnBoolean(InsertAll($newUserConnections) && UpdateAll($updateUserConnections)); } else { if ($obj->Action == "sync") { $userConnectioncount = $this->countExistingUserConnections($obj); if ($userConnectioncount !== $obj->ExpectedCount) { return ReturnBoolean(false); } $userConnections = GetAllByCondition("UserConnections", array("UserGuid" => $obj->Guid), "Name DESC", " LIMIT " . count($obj->UserConnections)); for ($i = 0; $i < count($userConnections); $i++) { if ($userConnections[$i]->Guid != $obj->UserConnections[$i]->Guid) { return ReturnBoolean(false); } } return ReturnBoolean(true); } else { return ReturnError(LINK_INVALID); } } } } } else { if ($param[0] == "checkGUID" && isset($param[1])) { $res = $this->checkForUniqueGuid($param[1]); if ($res == 1) { return ReturnBoolean(true); } return ReturnBoolean(false); } else { if ($param[0] == "completeGUID" && isset($param[1])) { $res = $this->getUniqueGuid($param[1]); if ($res !== false) { return ReturnJson(new GuidResponse($res)); } return ReturnJson(new GuidResponse("00000000-0000-0000-0000-00000000000")); } else { if (ValidateGuid($param[0])) { $userConnections = GetAllByCondition("UserConnections", array("UserGuid" => $param[0]), "Name DESC"); $resp = new UserConnectionResponse(); foreach ($userConnections as $userConnection) { $resp->UserConnections[] = new NoteTakerEntity($userConnection); } return ReturnJson($resp); } } } } } return ReturnError(LINK_INVALID); }