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.');
- }
- }
- }
|