Exemplo n.º 1
0
    /**
     * save one game.
     * @param $data
     * @param $package
     * @return static
     * @internal param $item
     */
    protected function saveGames($data, $package)
    {
        $data['icon'] = $this->saveImageFromLink($data['icon'], 'avatars');
        if ($data['icon']) {
            $category = Category::where('name', $data['category'])->first();
            if (!$category) {
                copy(public_path() . '/images/avatars/' . $data['icon'], public_path() . '/images/categories/' . $data['icon']);
                $category = Category::create(['name' => $data['category'], 'icon' => $data['icon'], 'type' => $data['type']]);
            }
            $data['category_id'] = $category->id;
            try {
                $game = Game::create($data);
                foreach ($data['screens'] as $urlCapture) {
                    $urlCapture = $this->saveImageFromLink($urlCapture, 'captures');
                    if ($urlCapture) {
                        Capture::create(['name' => $urlCapture, 'game_id' => $game->id]);
                    }
                }
                try {
                    Package::create([
                        'game_id' => $game->id,
                        'name' => $package
                    ]);
                } catch (QueryException $e) {
                    DB::table('packages')->where('name', $package)->delete();
                    Package::create([
                        'game_id' => $game->id,
                        'name' => $package
                    ]);
                }
            } catch (QueryException $e) {
                return;
            }

        }
    }