pupenasan / Git4All

5 stars 2 forks source link

Необхідно розробити сервіс підтримки UI для FrontEnd. #14

Open pavlo-shcherbukha opened 2 years ago

pavlo-shcherbukha commented 2 years ago

кому цікаво, то один з прикладів опису тех. специфікації в MD з вкористанням gitlab-githab issue. Звичайно - лінки не працюють, але набір методів форматування можна в режимі зміни побачити. В принципі, було б що писати. А форматування не складне. за день можна вивчити і потім користуватися на автоматі. Ну, лінки змінені - тому не працюють. Але крос-лінки працюють

Розміщення проекту:

Розробка ведеться в ASWP_SRVC_UI

Розробка методів для Меню: Довідник балансових рахунків для відбору в систему

Для розробки екранних форм ведення довідника Меню: Довідник балансових рахунків для відбору в систему потрібно розробити набір методів для взаємодії UI з базою даних CRUD OPERATION.

Довідник зберігається в таблиці qpf.QPF$NIIS_D_ACBAL, VIEW для читання QPF.QPF_NIIS_D_ACBAL_MBR_SHW, VIEW для модифікації QPF.QPF_NIIS_D_ACBAL_MBR_MDF

1. Метод для отримання масиву всіх записів довідника, або структури одного запису, Read.

Опис методу

Повертає масив всіх записів довідника qpf.QPF$NIIS_D_ACBAL

Вхідні параметри

Обов'язкові http заголовки

Content-Type: application/json
Accept: application/json
app_username: <user login>
CallID: <ідентифікатор запиту, giud>
SystemID: <Найменування системи, що виконує запит>
DtRequest: <Дата та час виконання запиту в UTC>

Детально читати за лінком: IIB.RestAPI.Перелік службових HTTP загловків та пояснення по їх заповненню.

Контроль вхідних параметриів

Якщо mode не переданий або не заповнений, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NULL_PARAMS" та текстом : "Не вказан параметр mode."

Якщо в mode передано щось відмінне від значень ALL, One , повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.RNG_PARAMS" та текстом : "Невірне значення параметру mode. Має бути: ALL або ONE."

Якщо в mode передано ALL та передано параметр bal_id, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом IIB.UNRELATION_PARAMS та текстом: "Параметр bal_id не може бути вказанний для mode = ALL."

Якщо в mode передано ONE та не передано bal_id, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом IIB.NOT_ENOUGH_PARAMS та текстом: 'Не вказан параметр bal_id.'

Якщо не вказано http-заголовок app_username, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NOT_DEFINED_APP_USERNAME" та текстом : "Не передано заголовок app_username".

Якщо не вказано http-заголовок app_requestid, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NOT_DEFINED_APP_REQUESTID" та текстом : "Не передано заголовок app_requestid".

Обробка запиту, якщо передоно параметр mode='ALL'

Вибираються запитом всі поля та записи в VIEW: QPF.QPF_NIIS_D_ACBAL_MBR_SHW

Орієнтовний приклад запиту та результуюча множина даних:

select t.* FROM QPF.QPF_NIIS_D_ACBAL_MBR_SHW t 

image

Метод повертає масив, кожний елемент якого є структура з таким набором реквізитів:

Тип: String, відповідає полю БД ACC_BAL

Тип: "String", відповідає пол. БД ACC_STATUS

Тип: String, Відповідає полю БД ACC_STATUS_NAME

Далі показаний приклад відповіді


{
   "Header":    {
      "SystemId": "aswp",
      "CallID": "23456333",
      "DtRequest": "2022-08-05",
      "Status": "OK"
   },
   "Response": {"accballist":    [
            {
         "acc_bal_id": 141,
         "acc_bal": "2610",
         "acc_status": "A",
         "acc_status_name": "A-активний запис"
      },
            {
         "acc_bal_id": 268,
         "acc_bal": "2620",
         "acc_status": "A",
         "acc_status_name": "A-активний запис"
      },
            {
         "acc_bal_id": 274,
         "acc_bal": "2612",
         "acc_status": "A",
         "acc_status_name": "A-активний запис"
      },
            {
         "acc_bal_id": 8,
         "acc_bal": "2630",
         "acc_status": "A",
         "acc_status_name": "A-активний запис"
      }
   ]}
}

У випадку, якщо не вибрано жодного запису, повертається помилка з HTTP-StatusCode=404, мнемонічним кодом помилки "IIB.NOT_FOUND" та текстом : "Даних не знайдено".

Обробка запиту, якщо передоно параметр mode='ONE'

Вибираються запитом всі поля з VIEW: QPF.QPF_NIIS_D_ACBAL_MBR_SHW для якого значення парамету bal_id дорівнює значенню в полі БД ACC_BAL_ID.

Приклад відповіді:

{
    "Header": {
        "SystemId": "aswp-dev",
        "CallID": "7b9b9b50-b7e7-4167-a3a0-b93260b4c0b7",
        "DtRequest": "2022-08-12T11:29:30.042Z",
        "Status": "OK"
    },
    "Response": {
        "acc_bal_id": 141,
        "acc_bal": "2610",
        "acc_status": "A",
        "acc_status_name": "A-активний запис"
    }
}

У випадку, якщо не вибрано жодного запису, повертається помилка з HTTP-StatusCode=404, мнемонічним кодом помилки "IIB.NOT_FOUND" та текстом : "Даних не знайдено".

Приклад відповіді

{
    "Header": {
        "SystemId": "aswp-dev",
        "CallID": "43c81817-bc64-4b0d-86a7-4e9f5836b3b3",
        "DtRequest": "2022-08-12T11:29:30.856Z",
        "Status": "ERROR"
    },
    "Error": {
        "code": "IIB.NOT_FOUND",
        "description": "Даних не знайдено",
        "target": ""
    }
}

2. Метод додаванння запису в довідник, Create

Додає запис масив в довідник QPF.QPF$NIIS_D_ACBAL-Довідник балансових рахунків для відбору в систему через VIEW QPF.QPF_NIIS_D_ACBAL_MBR_MDF

Вхідні параметри

В запиті передаються наступні реквізити:

- acc_bal номер балансового рахунку, обов'язковий до заповнення
- acc_status  статус рахунку, обов'язковий до заповнення. Допустимі значення: "A" - Активний, "С" - Анульований

Приклад тіла запиту:

{ 
   "acc_bal": "2620",
   "acc_status": "A"
} 

Обов'язкові http заголовки

    Content-Type: application/json
    Accept: application/json
    app_username: <user login>
    CallID: <ідентифікатор запиту, giud>
    SystemID: <Найменування системи, що виконує запит>
    DtRequest: <Дата та час виконання запиту в UTC>

Правила заповнення описані за лінком: IIB.RestAPI.Перелік службових HTTP загловків та пояснення по їх заповненню

Контроль вхідних параметриів

Якщо "acc_bal" не переданий або не заповнений, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NULL_PARAMS" та текстом : "Не задані вхідні параметри: Балансовий номер (acc_bal)".

Якщо "acc_status" не переданий або не заповнений, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NULL_PARAMS" та текстом : "Не задані вхідні параметри: Статус запису (acc_status)".

Обробка запиту

Виконується вставка запису в VIEW QPF.QPF_NIIS_D_ACBAL_MBR_MDF.

2.1. Поле БД QPF.QPF_NIIS_D_ACBAL_MBR_MDF.ACC_BAL_ID заповнюється автоматично з SEQUENCE QPF.QPF_NIIS_D_IDR. 2.2. Поле БД QPF.QPF_NIIS_D_ACBAL_MBR_MDF.ACC_BAL запвонюється реквізитим acc_bal з вхідного запиту. 2.3. Поле БД QPF.QPF_NIIS_D_ACBAL_MBR_MDF.ACC_STATUS заповнюється реквізитим acc_status з вхідного запиту.

set ls_sql = 'insert into QPF.QPF_NIIS_D_ACBAL_MBR_MDF(PF.QPF_NIIS_D_ACBAL_MBR_MDF, acc_bal, acc_status)'|| 'values( ?, ?, ? )'

У випадку успішної обороки запиту метод повертає HTTP-StatusCode=200 та відповідть у вигляді JSON об'єкта:

{
    "Header": {
        "SystemId": "aswp-dev",
        "CallID": "51567924-d484-4f0a-a520-dbbda44b716f",
        "DtRequest": "2022-08-12T11:29:30.398Z",
        "Status": "OK"
    },
    "Response": {
        "ok": true,
        "acc_bal_id": 376
    }
}

де

3. Метод видалення запису з довідника, Delete

Опис методу

Видаляє запис з довідника qpf.QPF$NIIS_D_ACBAL

Вхідні параметри

Обов'язкові http заголовки

Content-Type: application/json
Accept: application/json
app_username: <user login>
CallID: <ідентифікатор запиту, giud>
SystemID: <Найменування системи, що виконує запит>
DtRequest: <Дата та час виконання запиту в UTC>

Правила заповнення описані за лінком: IIB.RestAPI.Перелік службових HTTP загловків та пояснення по їх заповненню

Контроль вхідних параметриів

Якщо "bal_id" не переданий або не заповнений, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NULL_PARAMS" та текстом : "Не задані вхідні параметри: ідентифікатор запиту (bal_id)".

Обробка запиту

Виконується видалення запису з довідника QPF.QPF_NIIS_D_ACBAL_MBR_MDF використовуючи VIEW: QPF.QPF_NIIS_D_ACBAL_MBR_MDF. Приклад запиту показано далі.

delete from QPF.QPF_NIIS_D_ACBAL_MBR_MDF t where t.ACC_BAL_ID=:bal_id;

:bal_id - параметр, що передано в запиті

Якщо видалення пройшло успішно, то метод повертая json об'єкт:

{
    "Header": {
        "SystemId": "aswp-dev",
        "CallID": "3c48e806-b518-4a01-b6fc-8e1e0842cd66",
        "DtRequest": "2022-08-12T11:29:30.778Z",
        "Status": "OK"
    },
    "Response": {
        "ok": true
    }
}

4. Метод активаці/деактивації запису в довіднику, Update

Змінює статус запису в довіднику QPF.QPF$NIIS_D_ACBAL-Довідник балансових рахунків для відбору в систему через VIEW QPF.QPF_NIIS_D_ACBAL_MBR_MDF, поле: ACC_STATUS.

Вхідні параметри

В запиті передаються наступні реквізити:

- acc_bal_id ідентифікатор запису, який потрібно оновити, integer, обов'язковий до заповнення;
- acc_status  статус рахунку, обов'язковий до заповнення. Допустимі значення: "A" - Активний, "С" - Анульований.

Приклад тіла запиту:

{ 
   "acc_bal_id": 12345678,
   "acc_status": "A"
} 

Обов'язкові http заголовки

    Content-Type: application/json
    Accept: application/json
    app_username: <user login>
    CallID: <ідентифікатор запиту, giud>
    SystemID: <Найменування системи, що виконує запит>
    DtRequest: <Дата та час виконання запиту в UTC>

Правила заповнення описані за лінком: IIB.RestAPI.Перелік службових HTTP загловків та пояснення по їх заповненню

Контроль вхідних параметриів

Якщо "acc_bal_id" не переданий або не заповнений, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NULL_PARAMS" та текстом : "Не задані вхідні параметри: ідентифікатор запиту (acc_bal_id)".

Якщо "acc_status" не переданий або не заповнений, повертається помилка з HTTP-StatusCode=422, мнемонічним кодом помилки "IIB.NULL_PARAMS" та текстом : "Не задані вхідні параметри: Статус запису (acc_status)".

Обробка запиту

Виконується оновленння поля ACC_STATUS в довіднику QPF.QPF_NIIS_D_ACBAL_MBR_MDF по ідентифікатору запису ACC_BAL_ID використовуючи VIEW: QPF.QPF_NIIS_D_ACBAL_MBR_MDF. Приклад оновлення показано далі.

UPDATE QPF.QPF_NIIS_D_ACBAL_MBR_MDF t  SET ACC_STATUS=:acc_status where t.ACC_BAL_ID=:acc_bal_id;

:acc_bal_id - параметр, що передано в тілі запиту; :acc_status - параметр, що передано в тілі запиту.

Якщо видалення пройшло успішно, то метод повертая json об'єкт:

{
    "Header": {
        "SystemId": "aswp-dev",
        "CallID": "a2857fee-0cd4-4b6d-89d5-66193e186e66",
        "DtRequest": "2022-08-12T11:29:30.534Z",
        "Status": "OK"
    },
    "Response": {
        "ok": true
    }
}

5. Відповідь методів у випадку помилки

У випадку помилки структура відповіді описана за лінком IIB.RestAPI.Об'єкт помилки.Cтруктура відповіді з помилкою