Refactor the City, Company and their tests.
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-08-16 17:47:22 +03:00
parent a4938eb099
commit c22945926c
4 changed files with 84 additions and 33 deletions
+8 -2
View File
@@ -6,6 +6,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use App\Models\Company;
class City extends Model
{
use HasFactory;
@@ -33,12 +35,16 @@ class City extends Model
public function addCompanyId(int $company_id)
{
$this->addCompanyIds([$company_id]);
if(Company::isExist($company_id))
$this->addCompanyIds([$company_id]);
}
public function addCompanyIds(array $company_ids)
{
$companyIDs = array_merge($this->getCompanyIds(), $company_ids);
$existingCompanies = array_filter($company_ids, ['App\Models\Company', 'isExist']);
$companyIDs = array_merge($this->getCompanyIds(), $existingCompanies);
$this->companies()->sync($companyIDs);
}
+7
View File
@@ -28,6 +28,13 @@ class Company extends Model
return $this->hasMany(Category::class);
}
public static function isExist(int $company_id): bool
{
$count = Company::where('id', $company_id)->count();
return $count != 0;
}
public static function validate_with_name(string $name)
{
$name = $name ?? '';