# PUT /v2/core/application_interface/{id}

# Update Application Interface

این اندپوینت برای **ویرایش اطلاعات یک رابط نرم‌افزاری موجود** استفاده می‌شود. با ارسال شناسه رکورد و داده‌های جدید، سیستم رکورد را بروزرسانی می‌کند. همانند متد ثبت، پارامترهای دسته‌بندی باید به صورت آبجکت ارسال شوند تا سیستم بتواند مقادیر مورد نیاز (Title یا ID) را از آن‌ها استخراج کند.

<div class="api-docs" id="bkmrk-"></div>## Request Overview

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcore%2Fapplic"><div class="endpoint-info"><div>**URL:** `/v2/core/application_interface/{id}`</div><div>**Method:** <span class="method-put">PUT</span></div><div>**Controller:** CoreController@updateApplicationInterface</div><div>**Middleware:** authWithJwt</div></div></div>## Access Control

<div class="api-docs" id="bkmrk-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%AA%D9%88%DA%A9%D9%86-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87">- نیاز به توکن احراز هویت (JWT) دارد.
- شناسه ارسالی در URL باید معتبر باشد.

</div>## Path Parameters

<div class="api-docs" id="bkmrk-field-type-descripti"><table class="schema-table" dir="rtl"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">id</td><td dir="ltr">integer</td><td>**(الزامی)** شناسه رکورد مورد نظر برای ویرایش.</td></tr></tbody></table>

</div>## Body Parameters

ساختار بادی درخواست مشابه متد ثبت (Store) است:

<div class="api-docs" id="bkmrk-field-type-descripti-1"><table class="schema-table" dir="rtl"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">branch</td><td dir="ltr">integer</td><td>شناسه شعبه.</td></tr><tr><td dir="ltr">type</td><td dir="ltr">object</td><td>باید شامل کلید `title` باشد. مقدار این کلید در دیتابیس ذخیره می‌شود.</td></tr><tr><td dir="ltr">service</td><td dir="ltr">object</td><td>باید شامل کلید `title` باشد.</td></tr><tr><td dir="ltr">object\_type</td><td dir="ltr">object</td><td>باید شامل کلید `title` باشد (مثلاً colleague).</td></tr><tr><td dir="ltr">object</td><td dir="ltr">object | null</td><td>باید شامل کلید `id` باشد. اگر نال باشد یا ارسال نشود، مقدار دیتابیس `NULL` می‌شود.</td></tr><tr><td dir="ltr">url, username, password, data</td><td dir="ltr">string</td><td>اطلاعات اتصال و تنظیمات (رشته ساده).</td></tr><tr><td dir="ltr">priority, status</td><td dir="ltr">integer</td><td>اولویت و وضعیت فعال بودن.</td></tr></tbody></table>

</div>## Logic Details

فرآیند بروزرسانی به شرح زیر است:

<div class="api-docs" id="bkmrk-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%88-%D8%A7%D8%B3%D8%AA%D8%AE%D8%B1%D8%A7%D8%AC-%D8%AF%D8%A7%D8%AF">1. **دریافت و استخراج داده‌ها:** مقادیر ورودی پردازش می‌شوند: 
    - برای فیلدهای `type`، `service` و `object_type` مقدار `['title']` برداشته می‌شود.
    - برای فیلد `object` مقدار `['id']` برداشته می‌شود (با استفاده از عملگر Null Coalescing).
2. **بروزرسانی دیتابیس:** دستور `UPDATE` بر روی جدول `application_interface` برای رکوردی که `id` آن برابر با پارامتر مسیر است اجرا می‌شود.
3. **بازیابی مجدد:** پس از اعمال تغییرات، رکورد بروزرسانی شده با `find($id)` فراخوانی می‌شود تا تغییرات منعکس شده و داده‌ها بازگردانده شوند.

</div>## Response Structure

### نمونه Body ارسالی (JSON)

```json
{
    "branch": 1,
    "type": { "id": "api", "title": "api" },
    "service": { "id": "parto", "title": "parto" },
    "object_type": { "id": "branch", "title": "branch" },
    "object": { "id": 2 },
    "url": "https://new-api.com",
    "username": "admin",
    "password": "newpass",
    "data": "{}",
    "priority": 5,
    "status": 1
}
```

### نمونه پاسخ موفق (200 OK)

```json
{
    "payload": {
        "id": 105,
        "branch": 1,
        "type": "api",
        "service": "parto",
        "object_type": "branch",
        "object": 2,
        "url": "https://new-api.com",
        "username": "admin",
        "password": "newpass",
        "data": "{}",
        "priority": 5,
        "status": 1,
        "created_at": "2024-01-01...",
        "updated_at": null
    },
    "meta": {
        "timestamp": 1733753000
    }
}
```

<div class="api-docs" id="bkmrk--1"></div>## Flowchart

<div class="api-docs" id="bkmrk-start-request-%28put-%7B"><div class="flowchart"><div class="flow-item">Start Request (PUT {id})</div><div class="flow-arrow">↓</div><div class="flow-item-process highlight">Extract Properties:  
type['title'], service['title']  
object['id'] ?? null</div><div class="flow-arrow">↓</div><div class="flow-item-process">DB::table(...)-&gt;where('id', $id)-&gt;update(...)</div><div class="flow-arrow">↓</div><div class="flow-item-process">DB::find($id)</div><div class="flow-arrow">↓</div><div class="flow-item-success">Return Updated Record</div></div></div>