/** * Move conversation * * @param int $conversation_id * @param string $label */ public function moveToLabel($conversation_id, $label) { $users = new Users(); $labels = new Labels(); $available_labels = [Labels::TYPE_INBOX, Labels::TYPE_TRASH, Labels::TYPE_ARCHIVE]; /** * Wrong label */ if (in_array($label, $available_labels) === false) { return \Redirect::to('mail'); } /** * Wrong conversation ID */ if ($users->isUserInConversation(\Auth::user()->id, $conversation_id) === false) { return \Redirect::to('mail'); } $label_id = $labels->getLabelByUserIdAndType(\Auth::user()->id, $label); if ($label_id === null) { $label_id = $labels->getUserInboxID(\Auth::user()->id); } else { $label_id = $label_id->label_id; } $users->updateLabelId($conversation_id, \Auth::user()->id, $label_id); return \Redirect::to('mail/l/' . $label); }
/** * @param array $data */ private function execute(array $data) { /** * User */ foreach ($data as $user) { $profile = $user['profile']; $events = $user['events']; unset($user['profile'], $user['events']); $user_data = \Flocc\User::create($user); $user_id = $user_data->getId(); /** * User profile */ $profile['user_id'] = $user_id; \Flocc\Profile::create($profile); /** * User events */ foreach ($events as $event) { $scoring = $event['scoring']; unset($event['scoring']); $event['user_id'] = $user_id; $event = \Flocc\Events\Events::create($event); /** * Event activities */ \Flocc\Events\Activities::create(['event_id' => $event->getId(), 'activity_id' => rand(1, 3)]); /** * Event members */ \Flocc\Events\Members::create(['event_id' => $event->getId(), 'user_id' => $user_id, 'status' => 'member']); /** * Add scoring */ $scoring['event_id'] = $event->getId(); \Flocc\Events\Scoring::create([$scoring]); } /** * Mail label */ \Flocc\Mail\Labels::create(['user_id' => $user_id, 'name' => 'Skrzynka odbiorcza', 'type' => 'inbox']); \Flocc\Mail\Labels::create(['user_id' => $user_id, 'name' => 'Kosz', 'type' => 'trash']); \Flocc\Mail\Labels::create(['user_id' => $user_id, 'name' => 'Archiwum', 'type' => 'archive']); } }
/** * New conversation * * @param NewMessage $message * * @return int */ public function addNewConversation(\Flocc\Mail\NewMessage $message) { /** * mail_conversations */ $conversation = new Conversations(); $conversation->last_message_time = null; $conversation->save(); /** * ID */ $conversation_id = (int) \DB::getPdo()->lastInsertId(); /** * User label */ $labels = new Labels(); /** * owner */ $mail_users = new Users(); $mail_users->conversation_id = $conversation_id; $mail_users->user_id = $message->getUserId(); $mail_users->label_id = $labels->getUserInboxID($message->getUserId()); $mail_users->is_owner = '1'; $mail_users->save(); /** * mail_users */ foreach ($message->getUsers() as $user_id) { if ((int) $user_id != $message->getUserId()) { $mail_users = new Users(); $mail_users->conversation_id = $conversation_id; $mail_users->user_id = (int) $user_id; $mail_users->label_id = $labels->getUserInboxID($user_id); $mail_users->unread_messages = 1; $mail_users->save(); } } /** * mail_messages */ $messages = new Messages(); $messages->conversation_id = $conversation_id; $messages->user_id = $message->getUserId(); $messages->message = $message->getMessage(); $messages->save(); return (int) $conversation_id; }