diff --git a/app/Http/Controllers/NotificationController.php b/app/Http/Controllers/NotificationController.php index 8fbc170..f5ad7d6 100644 --- a/app/Http/Controllers/NotificationController.php +++ b/app/Http/Controllers/NotificationController.php @@ -12,6 +12,7 @@ use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; use Illuminate\Http\Response; + class NotificationController extends Controller { use ApiResponse; @@ -79,4 +80,14 @@ class NotificationController extends Controller return $this->errorResponse(false, $ex->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); } } + + public function notify() + { + try { + $response = $this->notification->getNotify(); + return response()->json($response, Response::HTTP_OK); + }catch (\Exception $ex){ + return $this->errorResponse(false, $ex->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); + } + } } \ No newline at end of file diff --git a/app/Models/Notifications.php b/app/Models/Notifications.php index a429c21..8eacd18 100644 --- a/app/Models/Notifications.php +++ b/app/Models/Notifications.php @@ -6,10 +6,12 @@ use DateTimeInterface; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; +use Illuminate\Database\Eloquent\SoftDeletes; +use OwenIt\Auditing\Auditable; class Notifications extends Model { - use HasFactory; + use HasFactory, SoftDeletes; protected $table = 'notificacoes'; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 917663e..5e7671f 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -10,6 +10,8 @@ use App\Repositories\Economy\EconomyContractInterface; use App\Repositories\Economy\EconomyRepository; use App\Repositories\Faqs\FaqContractInterface; use App\Repositories\Faqs\FaqRepository; +use App\Repositories\Med5min\Med5minContractInterface; +use App\Repositories\Med5min\Med5minRepository; use App\Repositories\Notifications\NotificationContractInterface; use App\Repositories\Notifications\NotificationRepository; use App\Repositories\Pld\PldContractInterface; @@ -55,6 +57,10 @@ class AppServiceProvider extends ServiceProvider DadosCadastraisContractInterface::class, DadosCadastraisRepository::class ); + $this->app->bind( + Med5minContractInterface::class, + Med5minRepository::class + ); } /** diff --git a/app/Repositories/Med5min/Med5minContractInterface.php b/app/Repositories/Med5min/Med5minContractInterface.php new file mode 100644 index 0000000..591613a --- /dev/null +++ b/app/Repositories/Med5min/Med5minContractInterface.php @@ -0,0 +1,10 @@ +model->select($fields); + + if (!empty($params)) { + $query = static::getFilterBuilder($params)->applyFilter($query); + } + + return $query; + } + +} diff --git a/app/Repositories/MethodsTrait.php b/app/Repositories/MethodsTrait.php index 744ffd5..ef50f37 100644 --- a/app/Repositories/MethodsTrait.php +++ b/app/Repositories/MethodsTrait.php @@ -3,7 +3,6 @@ namespace App\Repositories; use Illuminate\Database\Eloquent\Collection; -use Illuminate\Support\Facades\DB; trait MethodsTrait { @@ -38,6 +37,7 @@ trait MethodsTrait return $this->model->with($relations)->get(); } + public function search($params) { $filter = static::getFilterBuilder($params); diff --git a/app/Repositories/Notifications/NotificationContractInterface.php b/app/Repositories/Notifications/NotificationContractInterface.php index f189bba..680e731 100644 --- a/app/Repositories/Notifications/NotificationContractInterface.php +++ b/app/Repositories/Notifications/NotificationContractInterface.php @@ -6,5 +6,6 @@ use App\Repositories\ContractInterface; interface NotificationContractInterface extends ContractInterface { + public function getNotify(); } \ No newline at end of file diff --git a/app/Repositories/Notifications/NotificationRepository.php b/app/Repositories/Notifications/NotificationRepository.php index 9fc1c5d..0d37c4f 100644 --- a/app/Repositories/Notifications/NotificationRepository.php +++ b/app/Repositories/Notifications/NotificationRepository.php @@ -13,4 +13,9 @@ class NotificationRepository extends AbstractRepository implements NotificationC parent::__construct($notification); } + public function getNotify(): int + { + return Notifications::query()->with('users') + ->whereRelation('users', 'id', '=', auth()->id())->count(); + } } \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index bee842c..de62591 100644 --- a/routes/api.php +++ b/routes/api.php @@ -62,6 +62,8 @@ Route::middleware(['auth:sanctum', 'ability:Client'])->group(function () { Route::post('operation', [\App\Http\Controllers\OperationSummaryController::class, 'index']); Route::get('download', [\App\Http\Controllers\InfoSectorialController::class, 'download']); + + Route::post('notify', [\App\Http\Controllers\NotificationController::class, 'notify']); });