| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- <?php
 
- namespace App\Shop\Cities\Repositories;
 
- use Jsdecena\Baserepo\BaseRepository;
 
- use App\Shop\Cities\Exceptions\CityNotFoundException;
 
- use App\Shop\Cities\Repositories\Interfaces\CityRepositoryInterface;
 
- use Illuminate\Database\Eloquent\ModelNotFoundException;
 
- use App\Shop\Cities\City;
 
- use Illuminate\Support\Collection;
 
- class CityRepository extends BaseRepository implements CityRepositoryInterface
 
- {
 
-     /**
 
-      * CityRepository constructor.
 
-      *
 
-      * @param City $city
 
-      */
 
-     public function __construct(City $city)
 
-     {
 
-         parent::__construct($city);
 
-         $this->model = $city;
 
-     }
 
-     /**
 
-      * @param array $columns
 
-      * @param string $orderBy
 
-      * @param string $sortBy
 
-      *
 
-      * @return mixed
 
-      */
 
-     public function listCities($columns = ['*'], string $orderBy = 'name', string $sortBy = 'asc')
 
-     {
 
-         return $this->all($columns, $orderBy, $sortBy);
 
-     }
 
-     /**
 
-      * @param int $id
 
-      * @return City
 
-      * @throws CityNotFoundException
 
-      *
 
-      * @deprecated @findCityByName
 
-      */
 
-     public function findCityById(int $id) : City
 
-     {
 
-         try {
 
-             return $this->findOneOrFail($id);
 
-         } catch (ModelNotFoundException $e) {
 
-             throw new CityNotFoundException('City not found.');
 
-         }
 
-     }
 
-     /**
 
-      * @param array $params
 
-      *
 
-      * @return boolean
 
-      */
 
-     public function updateCity(array $params) : bool
 
-     {
 
-         $this->model->update($params);
 
-         return $this->model->save();
 
-     }
 
-     /**
 
-      * @param string $state_code
 
-      *
 
-      * @return Collection
 
-      */
 
-     public function listCitiesByStateCode(string $state_code) : Collection
 
-     {
 
-         return $this->model->where(compact('state_code'))->get();
 
-     }
 
-     /**
 
-      * @param string $name
 
-      *
 
-      * @return mixed
 
-      * @throws CityNotFoundException
 
-      */
 
-     public function findCityByName(string $name) : City
 
-     {
 
-         try {
 
-             return $this->model->where(compact('name'))->firstOrFail();
 
-         } catch (ModelNotFoundException $e) {
 
-             throw new CityNotFoundException('City not found.');
 
-         }
 
-     }
 
- }
 
 
  |