public function run()
 {
     DB::table('users')->delete();
     $user = new User();
     $user->username = '******';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('kierkegaard');
     $user->save();
     $user = new User();
     $user->username = '******';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usuario1');
     $user->save();
     $user = new User();
     $user->username = '******';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usuario2');
     $user->save();
     $user = new User();
     $user->username = '******';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usuario3');
     $user->save();
     $user = new User();
     $user->username = '******';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('participante1');
     $user->participant = true;
     $user->save();
 }
 public function getProfile(Request $request)
 {
     $user = User::find($request['user']['sub']);
     $user->roles;
     $user->videos;
     $user->competitions;
     $user->regions;
     return array('user' => $user);
 }
 public function update(Request $request, $id)
 {
     $user = User::find($request['user']['sub']);
     $mention = Mention::find($id);
     DB::transaction(function () use($request, $mention, $user) {
         $mention->name = $request->input('name');
         $mention->description = $request->input('description');
         $mention->icon = $request->input('icon');
         $mention->competition_id = $request->input('competition_id');
         $mention->save();
     });
     return $mention;
 }
 public function storeImageSlider(Request $request, Media $media)
 {
     $user = User::find($request['user']['sub']);
     if (!$request->hasFile('file')) {
         return Response::json(['error' => 'No File Sent']);
     }
     if (!$request->file('file')->isValid()) {
         return Response::json(['error' => 'File is not valid']);
     }
     $file = $request->file('file');
     $v = Validator::make($request->all(), ['file' => 'required|mimes:jpeg,jpg,png|max:8000']);
     if ($v->fails()) {
         return Response::json(['error' => $v->errors()]);
     }
     Log::info($request->file('file'));
     $image = Media::create(['name' => $request->file('file')->getClientOriginalName(), 'ext' => $request->file('file')->guessExtension(), 'user_id' => $user->id, 'type' => 'IMAGE']);
     $filename = 'slider_' . $image->id . '.' . $image->ext;
     $image->name = $filename;
     $image->save();
     Storage::disk('local')->put($filename, File::get($file));
     Storage::disk('s3-slam')->put('/slam/' . $filename, file_get_contents($file), 'public');
     return Response::json(['OK' => 1, 'filename' => $filename, 'media_id' => $image->id]);
 }
 public function update(Request $request, $id)
 {
     $user = User::find($request['user']['sub']);
     $slider = Slider::find($id);
     DB::transaction(function () use($request, $slider, $user) {
         $slider->type = $request->input('type');
         $slider->title = $request->input('title');
         $slider->subtitle = $request->input('subtitle');
         $slider->quote_author = $request->input('quote_author');
         if ($request->has('event_date')) {
             $arr = explode(".", $request->input('event_date'), 2);
             $event_date = str_replace("T", " ", $arr[0]);
             $slider->event_date = Carbon::createFromFormat('Y-m-d H:i:s', $event_date);
         }
         $slider->event_place = $request->input('event_place');
         $slider->cover_photo = $request->input('cover_photo');
         $slider->signup_action = $request->input('signup_action') || false;
         $slider->schedule_action = $request->input('schedule_action') || false;
         $slider->about_action = $request->input('about_action') || false;
         $slider->players_action = $request->input('players_action') || false;
         $slider->save();
     });
     return $slider;
 }
 public function addVideoParticipant(Request $request, $competitionId, $videoId, $participantId)
 {
     $user = User::find($request['user']['sub']);
     $competition = Competition::find($competitionId);
     DB::transaction(function () use($request, $competition, $videoId, $participantId) {
         $video = UserMedia::create(['media_id' => $videoId, 'user_id' => $participantId]);
     });
     $media = Media::find($videoId);
     $media->users;
     return $media;
 }
 public function twitter(Request $request)
 {
     $requestTokenUrl = 'https://api.twitter.com/oauth/request_token';
     $accessTokenUrl = 'https://api.twitter.com/oauth/access_token';
     $profileUrl = 'https://api.twitter.com/1.1/users/show.json?screen_name=';
     $client = new GuzzleHttp\Client();
     // Part 1 of 2: Initial request from Satellizer.
     if (!$request->input('oauth_token') || !$request->input('oauth_verifier')) {
         $requestTokenOauth = new Oauth1(['consumer_key' => Config::get('app.twitter_key'), 'consumer_secret' => Config::get('app.twitter_secret'), 'callback' => Config::get('app.twitter_callback')]);
         $client->getEmitter()->attach($requestTokenOauth);
         // Step 1. Obtain request token for the authorization popup.
         $requestTokenResponse = $client->post($requestTokenUrl, ['auth' => 'oauth']);
         $oauthToken = array();
         parse_str($requestTokenResponse->getBody(), $oauthToken);
         // Step 2. Send OAuth token back to open the authorization screen.
         return response()->json($oauthToken);
     } else {
         $accessTokenOauth = new Oauth1(['consumer_key' => Config::get('app.twitter_key'), 'consumer_secret' => Config::get('app.twitter_secret'), 'token' => $request->input('oauth_token'), 'verifier' => $request->input('oauth_verifier')]);
         $client->getEmitter()->attach($accessTokenOauth);
         // Step 3. Exchange oauth token and oauth verifier for access token.
         $accessTokenResponse = $client->post($accessTokenUrl, ['auth' => 'oauth'])->getBody();
         $accessToken = array();
         parse_str($accessTokenResponse, $accessToken);
         $profileOauth = new Oauth1(['consumer_key' => Config::get('app.twitter_key'), 'consumer_secret' => Config::get('app.twitter_secret'), 'oauth_token' => $accessToken['oauth_token']]);
         $client->getEmitter()->attach($profileOauth);
         // Step 4. Retrieve profile information about the current user.
         $profile = $client->get($profileUrl . $accessToken['screen_name'], ['auth' => 'oauth'])->json();
         // Step 5a. Link user accounts.
         if ($request->header('Authorization')) {
             $user = User::where('twitter', '=', $profile['id']);
             if ($user->first()) {
                 return response()->json(['message' => 'There is already a Twitter account that belongs to you'], 409);
             }
             $token = explode(' ', $request->header('Authorization'))[1];
             $payload = (array) JWT::decode($token, Config::get('app.token_secret'), array('HS256'));
             $user = User::find($payload['sub']);
             $user->twitter = $profile['id'];
             $user->username = $user->username || $profile['screen_name'];
             $user->save();
             return response()->json(['token' => $this->createToken($user)]);
         } else {
             $user = User::where('twitter', '=', $profile['id']);
             if ($user->first()) {
                 return response()->json(['token' => $this->createToken($user->first())]);
             }
             $user = new User();
             $user->twitter = $profile['id'];
             $user->username = $profile['screen_name'];
             $user->save();
             return response()->json(['token' => $this->createToken($user)]);
         }
     }
 }
 public function update(Request $request, $id)
 {
     $user = User::find($request['user']['sub']);
     $region = Region::find($id);
     DB::transaction(function () use($request, $region, $user) {
         $region->name = $request->input('name');
         $region->description = $request->input('description');
         $region->color = $request->input('color')['code'];
         $region->icon = $request->input('icon')['code'];
         $region->parent_id = $request->input('parent_id');
         $region->save();
     });
     return $region;
 }
 public function store(Request $request)
 {
     $validator = Validator::make($request->all(), ['username' => 'required', 'email' => 'required|email|unique:users,email', 'password' => 'required']);
     if ($validator->fails()) {
         return response()->json(['message' => $validator->messages()], 400);
     }
     $user = new User();
     $user->username = $request->input('username');
     $user->email = $request->input('email');
     $user->password = Hash::make($request->input('password'));
     $user->name = $request->input('name');
     $user->lastname = $request->input('lastname');
     $user->save();
     $gravatar = md5(strtolower(trim($user->email)));
     $user->photo = $gravatar;
     $user->save();
     Storage::disk('s3-slam')->put('/slam/profiles/' . $gravatar, file_get_contents('http://www.gravatar.com/avatar/' . $gravatar . '?d=identicon&s=150'), 'public');
     return response()->json($user);
 }