initial commit

This commit is contained in:
2026-06-08 19:58:50 +07:00
commit f7da9c6f78
154 changed files with 19586 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
<?php
namespace App\Helpers;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\JsonResponse;
use Symfony\Component\HttpFoundation\Response as ResponseAlias;
class ResponseJson
{
public static function successResponse(string $message, array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => true,
'data' => $data,
'message' => $message
], ResponseAlias::HTTP_OK);
}
public static function pageNotFoundResponse(string $message, array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => false,
'data' => $data,
'message' => $message
], ResponseAlias::HTTP_NOT_FOUND);
}
public static function failedResponse(string $message, array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => false,
'data' => $data,
'message' => $message
], ResponseAlias::HTTP_BAD_REQUEST);
}
public static function validationErrorResponse(string $message, array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => false,
'data' => $data,
'message' => $message
], ResponseAlias::HTTP_UNPROCESSABLE_ENTITY);
}
public static function unauthorizeResponse(string $message, array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => false,
'data' => $data,
'message' => $message
], ResponseAlias::HTTP_UNAUTHORIZED);
}
public static function forbidenResponse(string $message = "Forbidden", array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => false,
'data' => $data,
'message' => $message
], ResponseAlias::HTTP_FORBIDDEN);
}
public static function errorResponse(array|Collection|Model $data = []): JsonResponse
{
return response()->json([
'success' => false,
'data' => $data,
'message' => 'Server is busy right now!'
], ResponseAlias::HTTP_INTERNAL_SERVER_ERROR);
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Helpers;
use Illuminate\Support\Facades\URL;
class SignedUrlGenerator
{
public function generateDiseaseRecordsExportUrl($diseaseId, $expiryMinutes = 30)
{
return URL::temporarySignedRoute(
'disease.records.export',
now()->addMinutes($expiryMinutes),
['diseaseId' => $diseaseId]
);
}
public function generateSingleRecordExportUrl($diseaseId, $recordId, $expiryMinutes = 30)
{
return URL::temporarySignedRoute(
'disease.record.export',
now()->addMinutes($expiryMinutes),
['diseaseId' => $diseaseId, 'recordId' => $recordId]
);
}
public function generateFileDownloadUrl($path, $expiryMinutes = 30)
{
return URL::temporarySignedRoute(
'files.download.record',
now()->addMinutes($expiryMinutes),
['path' => $path]
);
}
}