#P1486
POST /api/v2/base/certificate
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/base/certificate | V2BaseController@storeCertificate | authWithJwt | ثبت گواهینامه جدید در جدول certificates بر اساس دادههای ورودی. |
منطق عملکرد تابع
تابع storeCertificate پس از دریافت پارامترهای اجباری (title، license_number، exporter و فایل document) گواهی را برای شعبهٔ کاربر ایجاد میکند و رکورد جدید را در جدول certificates درج مینماید. مقدار created_at و updated_at با زمان فعلی تکمیل میشود.
ورودیها
| نام پارامتر | نوع | منبع | الزامی | توضیح |
| branch | integer | JWT/Header | بله | شناسه شعبه صادرکننده. |
| title | string | Body | بله | عنوان گواهینامه. |
| license_number | string | Body | خیر | شماره سریال یا مجوز. |
| exporter | string | Body | بله | مرجع صادرکننده. |
| expiration | string (YYYY-MM-DD) | Body | خیر | تاریخ انقضاء. |
| document | string (path) | Body | بله | مسیر فایل بارگذاریشده. |
| content | string | Body | خیر | محتوای متنی یا توضیح سند. |
خروجی (Response)
{
"meta": {"timestamp": 1750669255},
"payload": {
"id": 210,
"title": "مجوز فنی اقامتگاهها",
"exporter": "وزارت گردشگری",
"expiration": "2026-02-01",
"document": "media/certificates/acm_license.pdf"
}
}
نکات امنیتی
- توکن JWT الزامی است.
- عملیات فقط برای نقشهای مجاز مثل
DocumentAdmin. - اعتبارسنجی فایل ورودی؛ فقط PDF و تصویر مجاز.
نکات عملکردی
- ورودی ساده بدون عملیات چندجدولی.
- امکان کش Redis برای فهرست پس از ثبت (TTL 1800s).
- عملیات درج داخل تراکنش اتمیک.
وابستگیها
- use Illuminate\Support\Facades\DB;
- use Carbon\Carbon;
- use Exception;
کدهای خطا
| کد | شرح |
| 400 | داده ناقص یا فایل نامعتبر. |
| 500 | خطا در درج رکورد در پایگاه داده. |
پیشنهادهای امنیتی
- بررسی نقش با
can('create_certificate'). - ضبط عملیات در جدول حسابرسی.
پیشنهادهای بهبود
- اضافه کردن نسخهبندی سند.
- رمزنگاری مسیر فایلها.
ممیزی
نوع لاگ: CreateCertificate. سطح: Important.
جمعبندی
مسیر POST /base/certificate مسئول ایجاد گواهینامه جدید است و باید کنترل نقش دقیق همراه با ثبت حسابرسی داشته باشد.