App\Http\Controllers\ContestEntriesController::store PHP Method

store() public method

public store ( )
    public function store()
    {
        if (Request::hasFile('entry') !== true) {
            abort(422);
        }
        $user = Auth::user();
        $contest = Contest::findOrFail(Request::input('contest_id'));
        priv_check('ContestEntryStore', $contest)->ensureCan();
        $allowedExtensions = [];
        $maxFilesize = 0;
        switch ($contest->type) {
            case 'art':
                $allowedExtensions[] = 'jpg';
                $allowedExtensions[] = 'jpeg';
                $allowedExtensions[] = 'png';
                $maxFilesize = 4000000;
                break;
            case 'beatmap':
                $allowedExtensions[] = 'osu';
                $maxFilesize = 1000000;
                break;
            case 'music':
                $allowedExtensions[] = 'mp3';
                $maxFilesize = 15000000;
                break;
        }
        if (!in_array(strtolower(Request::file('entry')->getClientOriginalExtension()), $allowedExtensions, true)) {
            abort(422);
        }
        if (Request::file('entry')->getClientSize() > $maxFilesize) {
            abort(413);
        }
        UserContestEntry::upload(Request::file('entry'), $user, $contest);
        return $contest->userEntries($user);
    }
ContestEntriesController