Skip to main content
#P1382

POST /api/v2/colleagues/billing

Route Info

Method Endpoint Controller Middleware Purpose دسته‌بندی عملکردی
POST /api/auth/connect/branch UserController@connectBranch ندارد اتصال و معتبرسازی شعبه بر اساس کد ورودی برای پایان‌دامنه مرتبط Authentication / Branch Connection

(Analysis) تحلیل عملکرد

این Endpoint برای شناسایی و اعتبارسنجی شعبه است. هدف آن بارگزاری دامنه محیط (Unauthenticated) به عنوان نقطه ورود اولیه بدون نیاز به احراز هویت است. این درخواست با دریافت کد شعبه ورودی، هویت دامنه مرتبط با آن دفتر را بازگردانی می‌کند.

مکانیسم کدگذاری شعبه

سیستم از فرمول زیر برای استخراج شناسه واقعی شعبه از کد ارسالی استفاده می‌کند:
Actual Office ID = Input Branch Code - 1000
  
برای مثال اگر کد ورودی 1050 باشد، شناسه واقعی شعبه 50 خواهد بود.

منطق اعتبارسنجی

پس از استخراج شناسه واقعی، سیستم پارامتر زیر را بررسی می‌کند:
  • در جدول offices جستجو انجام می‌شود تا مطمئن شود شعبه فعال است.
  • در صورت یافت نشدن یا غیرفعال بودن، پاسخ خطا بازگردانده می‌شود.
  • اگر شعبه معتبر باشد، شناسه و اطلاعات دامنه مرتبط (domain) بازگردانده می‌شود.

(Inputs) ورودی‌ها

فیلد نوع داده الزامی توضیح
branch Integer بله کد شعبه (شناسه واقعی + 1000)
نمونه درخواست (Request Body):
{
  "branch": 1050
}
  

(Outputs) خروجی‌ها

در همه حالات پاسخ HTTP 200 برمی‌گردد.

خروجی موفق:

{
  "status": true,
  "office": {
    "id": 50,
    "domain": "example.domain.ir",
    "title": "دفتر مرکزی"
  }
}
  

خروجی ناموفق:

{
  "status": false,
  "message": "کد شعبه معتبر نیست یا یافت نشد."
}
  

(Dependencies) وابستگی‌ها

  • UserController::connectBranch(Request $request)
  • مدل‌ها: Office و Domain

(Testing & Usage) تست و استفاده

نمونه تست با Postman:
POST /api/auth/connect/branch
Content-Type: application/json

{
  "branch": 1050
}
  

(Typical Error Cases) موارد خطا

  • کد شعبه کوچکتر از 1000 یا غیرعددی
  • شعبه غیرفعال در جدول offices
  • عدم تعریف دامنه برای دفتر مربوطه

(Implementation Details) جزئیات پیاده‌سازی

public function connectBranch(Request $request)
{
    $branchCode = $request->branch;
    $actualId = $branchCode - 1000;
    $office = Office::find($actualId);

    if (!$office) {
        return response()->json(['status' => false, 'message' => 'کد شعبه معتبر نیست یا یافت نشد.']);
    }

    return response()->json([
        'status' => true,
        'office' => [
            'id' => $office->id,
            'domain' => $office->domain,
            'title' => $office->title,
        ]
    ]);
}
  

(Conclusion) نتیجه‌گیری

این Endpoint یک نقطه ورود کاربردی برای لاگین دامنه‌ها بدون نیاز به احراز هویت اولیه است و فرایند تشخیص دامنه بر اساس کد شعبه را ساده می‌کند.

(Appendix) پیوست: نگهداری و امنیت

  • احراز ورودی قبل از تبدیل نوع: اطمینان از عددی بودن branch.
  • عدم نیاز به تزریق احراز JWT در این مرحله (unauthenticated).
  • پیشنهاد به محدود کردن نرخ درخواست‌ها جهت جلوگیری از Spam.