Alimentalos/Backend

View on GitHub
relationships/src/Asserts/ResourceGroupAssert.php

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
<?php


namespace Alimentalos\Relationships\Asserts;


use App\Models\Group;
use Illuminate\Database\Eloquent\Model;

trait ResourceGroupAssert
{
    /**
     * Assert resource has group.
     *
     * @param object|Model $resource
     * @param object|Group $group
     * @return bool
     */
    public static function hasGroup(Model $resource, Group $group)
    {
        return $resource->groups()->where('group_uuid', $group->uuid)
            ->whereIn('status', [
                Group::ACCEPTED_STATUS, Group::ATTACHED_STATUS
            ])->exists();
    }

    /**
     * Assert resource has group blocked.
     *
     * @param object|Model $resource
     * @param object|Group $group
     * @return bool
     */
    public static function isBlocked(Model $resource, Group $group)
    {
        return $resource->groups()->where('group_uuid', $group->uuid)
            ->whereIn('status', [
                Group::BLOCKED_STATUS
            ])->exists();
    }
}