/** * @param bool $confirm * @param $lectureId * @param $speakerId * @return ServiceResponse */ public function replyToSpeakerInvitation(bool $confirm, integer $lectureId, integer $speakerId) : ServiceResponse { $lecture = $this->dbContext->getLecturesRepository()->filterById(" = {$lectureId}")->findOne(); $speaker = $this->dbContext->getUsersRepository()->filterById(" = {$speakerId}")->findOne(); if ($lecture->getId() == null) { return new ServiceResponse(404, "Lecture not found."); } if ($speaker->getId() == null) { return new ServiceResponse(404, "Speaker not found."); } $invitation = $this->dbContext->getSpeakerInvitationsRepository()->filterByLectureId(" = {$lectureId}")->filterBySpeakerId(" = {$speakerId}")->findOne(); if ($invitation->getId() == null) { return new ServiceResponse(404, "Invitation not found."); } $lectureStartDate = $lecture->getStartDate(); $lectureEndDate = $lecture->getEndDate(); $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $statement = $db->prepare($this::CHECK_SPEAKER_AVAILABILITY); $statement->execute([$speakerId, $lectureStartDate, $lectureStartDate, $lectureEndDate, $lectureEndDate]); if ($statement->rowCount() > 0) { return new ServiceResponse(1, "The hall is busy at this time. Request is denied."); } if ($confirm) { $invitation->setStatus(1); $this->dbContext->saveChanges(); return new ServiceResponse(null, "Invitation was confirmed."); } else { $invitation->setStatus(2); $lecture->setSpeaker_Id(null); $this->dbContext->saveChanges(); return new ServiceResponse(null, "Invitation was rejected."); } }
public function getConferenceDetails(integer $conferenceId) : ServiceResponse { $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $statement = $db->prepare("select count(LectureId) as 'count' from lecturesParticipants where LectureId = ?"); $conference = $this->dbContext->getConferencesRepository()->filterById(" = {$conferenceId}")->findOne(); if ($conference->getId() == null) { return new ServiceResponse(1, "Conference not found."); } $venueId = $conference->getVenue_Id(); $venue = $this->dbContext->getVenuesRepository()->filterById(" = {$venueId}")->findOne()->getTitle(); $ownerId = $conference->getOwnerId(); $owner = $this->dbContext->getUsersRepository()->filterById(" = {$ownerId}")->findOne()->getUsername(); $model = new ConferenceDetailsViewModel($conference); $model->setVenueId($venueId); $model->setVenue($venue); $model->setOwnerUsername($owner); $venueStatus = $this->dbContext->getVenueReservationRequestsRepository()->filterByConferenceId(" = {$conferenceId}")->filterByVenueId(" = {$venueId}")->findOne()->getStatus(); $model->setVenueRequestStatus($venueStatus); $lectures = $this->dbContext->getLecturesRepository()->filterByConferenceId(" = {$conferenceId}")->orderBy("StartDate")->findAll(" = {$conferenceId}"); $lecturesModels = []; foreach ($lectures->getLectures() as $lecture) { $lectureModel = new LectureViewModel($lecture); $hallId = $lectureModel->getHallId() == null ? 0 : $lectureModel->getHallId(); $hall = $this->dbContext->getHallsRepository()->filterById(" = {$hallId}")->findOne(); $lectureModel->setHallTitle($hall->getTitle() == null ? "(to be decided)" : $hall->getTitle()); $speakerId = $lectureModel->getSpeakerId(); $speaker = $this->dbContext->getUsersRepository()->filterById(" = {$speakerId}")->findOne(); $lectureModel->setSpeakerUsername($speaker->getUsername()); $lectureId = $lecture->getId(); $speakerRequest = $this->dbContext->getSpeakerInvitationsRepository()->filterByLectureId(" = {$lectureId}")->filterBySpeakerId(" = {$speakerId}")->findOne(); $lectureModel->setSpeakerRequestStatus($speakerRequest->getStatus()); $lectureId = $lectureModel->getId(); $statement = $db->prepare("select count(LectureId) as 'count' from lecturesParticipants where LectureId = ?"); $statement->execute([$lectureId]); $participants = $statement->fetch()['count']; $lectureModel->setParticipantsCount($participants); $participantId = HttpContext::getInstance()->getIdentity()->getUserId(); if ($participantId == null) { $lectureModel->setIsParticipating(false); $lectureModel->setCanParticipate(false); } else { $participantsInLecture = $this->dbContext->getLecturesParticipantsRepository()->filterByLectureId(" = {$lectureId}")->filterByParticipantId(" = {$participantId}")->findOne(); if ($participantsInLecture->getId() != null) { $lectureModel->setIsParticipating(true); } else { $lectureModel->setIsParticipating(false); } $statement = $db->prepare(self::CHECK_USER_CAN_PARTICIPATE); $statement->execute([$participantId, $lecture->getStartDate(), $lecture->getStartDate(), $lecture->getEndDate(), $lecture->getEndDate()]); if ($statement->rowCount() > 0) { $lectureModel->setCanParticipate(false); } else { $lectureModel->setCanParticipate(true); } } $lecturesModels[] = $lectureModel; } $model->setLectures($lecturesModels); return $model; }
/** * @param $userId * @return mixed * @throws \Exception */ public static function getUnreadCount(integer $userId) : ServiceResponse { $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $statement = $db->prepare(self::$GET_UNREAD_COUNT); $statement->execute([$userId]); $count = $statement->fetch()['count']; return $count; }
private static function getUserFromDatabase() { $userTable = new IdentityUserTable(); $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $statement = $db->query("show columns from users"); $columns = array_map(function ($c) { return ['name' => $c['Field'], 'type' => $c['Type']]; }, $statement->fetchAll()); if (count($columns) == 0) { return null; } foreach ($columns as $column) { $userTable->setColumn($column['name'], $column['type']); } return $userTable; }
private static function insert(Role $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO roles (Name) VALUES (:Name);"; $result = $db->prepare($query); $result->execute([':Name' => $model->getName()]); $model->setId($db->lastInsertId()); }
public function insertRole($role) { $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $statement = $db->prepare(self::INSERT_ROLE); try { $statement->execute([$role]); return $statement->rowCount() > 0; } catch (\Exception $ex) { return false; } }
<?php ini_set('display_errors', 1); ob_start(); session_start(); require_once "Autoloader.php"; \RedDevil\Autoloader::init(); $requestParts = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); $indexBaseProjectFolder = array_search(\RedDevil\Config\AppConfig::BASE_PROJECT_FOLDER, $requestParts); $requestParts = array_slice($requestParts, $indexBaseProjectFolder + 1); $route = implode('/', $requestParts); if (strlen($route) > 1 && $route[0] == '/') { $route = substr($route, 1, strlen($route)); } \RedDevil\Core\DatabaseData::setInstance(RedDevil\Config\DatabaseConfig::DB_INSTANCE, RedDevil\Config\DatabaseConfig::DB_DRIVER, RedDevil\Config\DatabaseConfig::DB_USER, RedDevil\Config\DatabaseConfig::DB_PASS, RedDevil\Config\DatabaseConfig::DB_NAME, RedDevil\Config\DatabaseConfig::DB_HOST); $app = new \RedDevil\Application($route); $app->start();
public function replyToVenueRequest(bool $confirm, integer $requestId) : ServiceResponse { $request = $this->dbContext->getVenueReservationRequestsRepository()->filterById(" = {$requestId}")->findOne(); $venueId = $request->getVenueId(); $conferenceId = $request->getConferenceId(); $venue = $this->dbContext->getVenuesRepository()->filterById(" = {$venueId}")->findOne(); $conference = $this->dbContext->getConferencesRepository()->filterById(" = {$conferenceId}")->findOne(); if ($venue->getId() == null) { return new ServiceResponse(404, "Venue not found."); } if ($conference->getId() == null) { return new ServiceResponse(404, "Conference not found."); } if ($request->getId() == null) { return new ServiceResponse(404, "Venue request not found."); } if (HttpContext::getInstance()->getIdentity()->getUserId() != $venue->getOwnerId()) { return new ServiceResponse(401, 'Replying to venue request only allowed for venue owner.'); } $conferenceStartDate = $conference->getStartDate(); $conferenceEndDate = $conference->getEndDate(); $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $statement = $db->prepare($this::CHECK_VENUE_AVAILABILITY); $statement->execute([$venueId, $conferenceStartDate, $conferenceStartDate, $conferenceEndDate, $conferenceEndDate]); if ($statement->rowCount() > 0) { $request->setStatus(2); $this->dbContext->saveChanges(); return new ServiceResponse(1, "The venue is busy at this time. Request is denied."); } if ($confirm) { $request->setStatus(1); $this->dbContext->saveChanges(); return new ServiceResponse(null, "Venue request was confirmed."); } else { $request->setStatus(2); $conference->setVenue_Id(null); $this->dbContext->saveChanges(); return new ServiceResponse(null, "Venue request was rejected."); } }
private static function insert(User $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO users (username,email,password,fullname,telephone) VALUES (:username, :email, :password, :fullname, :telephone);"; $result = $db->prepare($query); $result->execute([':username' => $model->getUsername(), ':email' => $model->getEmail(), ':password' => $model->getPassword(), ':fullname' => $model->getFullname(), ':telephone' => $model->getTelephone()]); $model->setId($db->lastInsertId()); }
private static function insert(Conferencesparticipant $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO conferencesparticipants (ConferenceId,ParticipantId) VALUES (:ConferenceId, :ParticipantId);"; $result = $db->prepare($query); $result->execute([':ConferenceId' => $model->getConferenceId(), ':ParticipantId' => $model->getParticipantId()]); $model->setId($db->lastInsertId()); }
private static function insert(Notification $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO notifications (Content,UserId,IsRead,CreatedOn) VALUES (:Content, :UserId, :IsRead, :CreatedOn);"; $result = $db->prepare($query); $result->execute([':Content' => $model->getContent(), ':UserId' => $model->getUserId(), ':IsRead' => $model->getIsRead(), ':CreatedOn' => $model->getCreatedOn()]); $model->setId($db->lastInsertId()); }
public function deleteParticipant(integer $lectureId, integer $participantId) : ServiceResponse { $lecture = $this->dbContext->getLecturesRepository()->filterById(" = {$lectureId}")->findOne(); $user = $this->dbContext->getUsersRepository()->filterById(" = {$participantId}")->findOne(); if ($lecture->getId() == null) { return new ServiceResponse(404, "Lecture not found."); } if ($user->getId() == null) { return new ServiceResponse(404, "User not found."); } $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); $isParticipatingStatement = $db->prepare($this::IS_USER_A_PARTICIPANT_IN_LECTURE); $isParticipatingStatement->execute([$participantId, $lectureId]); if ($isParticipatingStatement->rowCount() == 0) { return new ServiceResponse(404, "User is not a participant in this lecture."); } $lectureParticipant = new LecturesParticipant($lectureId, $participantId); $this->dbContext->getLecturesParticipantsRepository()->filterByLectureId(" = {$lectureId}")->filterByParticipantId(" = {$participantId}")->delete(); return new ServiceResponse(null, "Participant removed from lecture."); }
private static function insert(Venue $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO venues (Title,Description,Address,OwnerId) VALUES (:Title, :Description, :Address, :OwnerId);"; $result = $db->prepare($query); $result->execute([':Title' => $model->getTitle(), ':Description' => $model->getDescription(), ':Address' => $model->getAddress(), ':OwnerId' => $model->getOwnerId()]); $model->setId($db->lastInsertId()); }
private function __construct() { $this->db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); }
private static function insert(Hall $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO halls (Title,Capacity,VenueId) VALUES (:Title, :Capacity, :VenueId);"; $result = $db->prepare($query); $result->execute([':Title' => $model->getTitle(), ':Capacity' => $model->getCapacity(), ':VenueId' => $model->getVenueId()]); $model->setId($db->lastInsertId()); }
private static function insert(Lecturebreak $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO lecturebreaks (Title,Description,LectureId,StartDate,EndDate) VALUES (:Title, :Description, :LectureId, :StartDate, :EndDate);"; $result = $db->prepare($query); $result->execute([':Title' => $model->getTitle(), ':Description' => $model->getDescription(), ':LectureId' => $model->getLectureId(), ':StartDate' => $model->getStartDate(), ':EndDate' => $model->getEndDate()]); $model->setId($db->lastInsertId()); }
private static function insert(Message $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO messages (SenderId,RecipientId,Content,CreatedOn) VALUES (:SenderId, :RecipientId, :Content, :CreatedOn);"; $result = $db->prepare($query); $result->execute([':SenderId' => $model->getSenderId(), ':RecipientId' => $model->getRecipientId(), ':Content' => $model->getContent(), ':CreatedOn' => $model->getCreatedOn()]); $model->setId($db->lastInsertId()); }
private static function insert(Conference $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO conferences (Title,StartDate,EndDate,OwnerId,Venue_Id) VALUES (:Title, :StartDate, :EndDate, :OwnerId, :Venue_Id);"; $result = $db->prepare($query); $result->execute([':Title' => $model->getTitle(), ':StartDate' => $model->getStartDate(), ':EndDate' => $model->getEndDate(), ':OwnerId' => $model->getOwnerId(), ':Venue_Id' => $model->getVenue_Id()]); $model->setId($db->lastInsertId()); }
private static function insert(UsersRole $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO users_roles (user_id,role_id) VALUES (:user_id, :role_id);"; $result = $db->prepare($query); $result->execute([':user_id' => $model->getUser_id(), ':role_id' => $model->getRole_id()]); $model->setId($db->lastInsertId()); }
private static function insert(Venuereservationrequest $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO venuereservationrequests (VenueId,ConferenceId,Status) VALUES (:VenueId, :ConferenceId, :Status);"; $result = $db->prepare($query); $result->execute([':VenueId' => $model->getVenueId(), ':ConferenceId' => $model->getConferenceId(), ':Status' => $model->getStatus()]); $model->setId($db->lastInsertId()); }
public function getSpeakerSchedule() : ServiceResponse { $userId = HttpContext::getInstance()->getIdentity()->getUserId(); if ($userId == null) { return new ServiceResponse(401, "Unauthorised. Only logged users can get their speaker's schedule."); } $todayDate = new \DateTime('now'); $today = $todayDate->format('Y-m-d H:i:s'); $lectures = $this->dbContext->getLecturesRepository()->orderBy("StartDate")->filterBySpeaker_Id(" = {$userId}")->filterByStartDate(" >= '{$today}'")->findAll(); $lecturesModels = []; $db = DatabaseData::getInstance(DatabaseConfig::DB_INSTANCE); foreach ($lectures->getLectures() as $lecture) { $lectureModel = new LectureViewModel($lecture); $hallId = $lectureModel->getHallId() == null ? 0 : $lectureModel->getHallId(); $hall = $this->dbContext->getHallsRepository()->filterById(" = {$hallId}")->findOne(); $lectureModel->setHallTitle($hall->getTitle() == null ? "(to be decided)" : $hall->getTitle()); $speakerId = $lectureModel->getSpeakerId(); $speaker = $this->dbContext->getUsersRepository()->filterById(" = {$speakerId}")->findOne(); $lectureModel->setSpeakerUsername($speaker->getUsername()); $lectureId = $lecture->getId(); $speakerRequest = $this->dbContext->getSpeakerInvitationsRepository()->filterByLectureId(" = {$lectureId}")->filterBySpeakerId(" = {$speakerId}")->findOne(); $lectureModel->setSpeakerRequestStatus($speakerRequest->getStatus()); $lectureId = $lectureModel->getId(); $statement = $db->prepare("select count(LectureId) as 'count' from lecturesParticipants where LectureId = ?"); $statement->execute([$lectureId]); $participants = $statement->fetch()['count']; $lectureModel->setParticipantsCount($participants); $participantId = HttpContext::getInstance()->getIdentity()->getUserId(); if ($participantId == null) { $lectureModel->setIsParticipating(false); $lectureModel->setCanParticipate(false); } else { $participantsInLecture = $this->dbContext->getLecturesParticipantsRepository()->filterByLectureId(" = {$lectureId}")->filterByParticipantId(" = {$participantId}")->findOne(); if ($participantsInLecture->getId() != null) { $lectureModel->setIsParticipating(true); } else { $lectureModel->setIsParticipating(false); } } $lecturesModels[] = $lectureModel; } return new ServiceResponse(null, null, $lecturesModels); }
private static function insert(Speakerinvitation $model) { $db = DatabaseData::getInstance(\RedDevil\Config\DatabaseConfig::DB_INSTANCE); $query = "INSERT INTO speakerinvitations (LectureId,SpeakerId,Status) VALUES (:LectureId, :SpeakerId, :Status);"; $result = $db->prepare($query); $result->execute([':LectureId' => $model->getLectureId(), ':SpeakerId' => $model->getSpeakerId(), ':Status' => $model->getStatus()]); $model->setId($db->lastInsertId()); }