private static function createInvitationToken($room, $part)
 {
     $inv = new Invitation();
     $inv->room = $room->id;
     $inv->participant = $part->id;
     \DB::transaction(function () use($inv) {
         //check for unique token before save
         do {
             $token = Str::random(32);
         } while (Invitation::where('token', '=', $token)->count() != 0);
         $inv->token = $token;
         $inv->save();
     });
     return $inv->token;
 }
 protected function addInvitationToProject(Request $request, $id)
 {
     $array = Input::all();
     $validator = Validator::make($array, ['firstname' => 'required|min:2|max:25', 'lastname' => 'required|min:2|max:50', 'email' => 'required|email|unique:users|unique:invitations', 'type' => 'required|min:1|max:1']);
     if ($validator->fails() || $request->input('type') < 0 || $request->input('type') > 2) {
         return Response::json('validation failed.', 400);
     } else {
         $invitation = new Invitation();
         $urlcode = str_random(40);
         $invitation->urlcode = $urlcode;
         $invitation->firstname = $request->input('firstname');
         $invitation->lastname = $request->input('lastname');
         $invitation->email = $request->input('email');
         $invitation->type = $request->input('type');
         $invitation->owner = $id;
         $invitation->save();
         $data = array('firstname' => $request->input('firstname'), 'lastname' => $request->input('lastname'), 'urlcode' => $urlcode);
         //$mail = $request->input('email'); uncomment for production
         $mail = "*****@*****.**";
         Mail::send('emails.test', $data, function ($message) use($mail) {
             $message->to($mail)->subject('You got invited to Pdmsys! Check it out!');
         });
         return Response::json($invitation);
     }
 }