API: Контрагенты - MCODEDOTSU/panorama.back GitHub Wiki

API: Контрагенты

Для всех запросов, не отмеченных как NOAUTH, необходимо добавить в заголовок Authorization:

"Bearer {TOKEN}"

TOKEN получается на этапе аутентификации в системе

Получить список контрагентов

METHOD: GET

NAME: api/contractor

RESPONSES:

[
    {
        id: integer,
        name: string,
        full_name: string,
        inn: string,
        kpp: string | null,
        address_id: integer | null,
        created_at: datetime | null,
        updated_at: datetime | null,
        logo: string | null,
        modules: [
            {
                id: integer,
                title: string,
                description: string,
                created_at: datetime | null,
                updated_at: datetime | null,
                pivot: {
                    contractor_id: integer,
                    module_id: integer
                }
            },
        ],
        users: [
            {
                id: integer,
                name: string,
                email: string,
                email_verified_at: datetime | null,
                contractor_id: integer,
                created_at: datetime | null,
                updated_at: datetime | null,
                role: string,
                post: string | null,
                photo: string | null,
                person_id: integer | null,
            }
        ],
        address: {
            id: integer,
            index: integer,
            region: string,
            city: string,
            street: string,
            build: string,
            created_at: datetime,
            updated_at: datetime
        } | null,
    }
]

Получить контрагента по ID

METHOD: GET

NAME: api/contractor/ID

RESPONSES:

{
    id: integer,
    name: string,
    full_name: string,
    inn: string,
    kpp: string | null,
    address_id: integer | null,
    created_at: datetime | null,
    updated_at: datetime | null,
    logo: string | null,
    modules: [
        {
            id: integer,
            title: string,
            description: string,
            created_at: datetime | null,
            updated_at: datetime | null,
            pivot: {
                contractor_id: integer,
                module_id: integer
            }
        },
    ],
    users: [
        {
            id: integer,
            name: string,
            email: string,
            email_verified_at: datetime | null,
            contractor_id: integer,
            created_at: datetime | null,
            updated_at: datetime | null,
            role: string,
            post: string | null,
            photo: string | null,
            person_id: integer | null,
        }
    ],
    address: {
        id: integer,
        index: integer,
        region: string,
        city: string,
        street: string,
        build: string,
        created_at: datetime,
        updated_at: datetime
    } | null
}

Создать контрагента

METHOD: POST

NAME: api/contractor

QUERY PARAMETERS:

name*: string // Наименование
full_name*: string // Полное наименование
inn*: string // ИНН
kpp: string // КПП
logo: string // Путь к изображению
address: {
    city: string // Город контрагента
    street: string // Улица
    build: string // Номер дома
}

RESPONSES:

{
    id: integer,
    name: string,
    full_name: string,
    inn: string,
    kpp: string | null,
    address_id: integer | null,
    created_at: datetime | null,
    updated_at: datetime | null,
    logo: string | null,
    modules: [ ],
    users: [ ],
    address: {
        id: integer,
        index: integer,
        region: string,
        city: string,
        street: string,
        build: string,
        created_at: datetime,
        updated_at: datetime
    } | null
}

Изменить контрагента

METHOD: PUT

NAME: api/contractor

QUERY PARAMETERS:

id*: integer // Идентификатор
name*: string // Наименование
full_name*: string // Полное наименование
inn*: string // ИНН
kpp: string // КПП
logo: string // Путь к изображению
address: {
    city: string // Город контрагента
    street: string // Улица
    build: string // Номер дома
}

RESPONSES:

{
    id: integer,
    name: string,
    full_name: string,
    inn: string,
    kpp: string | null,
    address_id: integer | null,
    created_at: datetime | null,
    updated_at: datetime | null,
    logo: string | null,
    modules: [
        {
            id: integer,
            title: string,
            description: string,
            created_at: datetime | null,
            updated_at: datetime | null,
            pivot: {
                contractor_id: integer,
                module_id: integer
            }
        },
    ],
    users: [
        {
            id: integer,
            name: string,
            email: string,
            email_verified_at: datetime | null,
            contractor_id: integer,
            created_at: datetime | null,
            updated_at: datetime | null,
            role: string,
            post: string | null,
            photo: string | null,
            person_id: integer | null,
        }
    ],
    address: {
        id: integer,
        index: integer,
        region: string,
        city: string,
        street: string,
        build: string,
        created_at: datetime,
        updated_at: datetime
    } | null
}

Удалить контрагента

METHOD: DELETE

NAME: api/contractor/ID

RESPONSES:

{
    id: integer
}

Привязать модуль к контрагенту

METHOD: GET

NAME: api/contractor/ID/attach/module/MODULE_ID

RESPONSES:

{
    id: integer,
    name: string,
    full_name: string,
    inn: string,
    kpp: string | null,
    address_id: integer | null,
    created_at: datetime | null,
    updated_at: datetime | null,
    logo: string | null,
    modules: [
        {
            id: integer,
            title: string,
            description: string,
            created_at: datetime | null,
            updated_at: datetime | null,
            pivot: {
                contractor_id: integer,
                module_id: integer
            }
        },
    ],
    users: [
        {
            id: integer,
            name: string,
            email: string,
            email_verified_at: datetime | null,
            contractor_id: integer,
            created_at: datetime | null,
            updated_at: datetime | null,
            role: string,
            post: string | null,
            photo: string | null,
            person_id: integer | null,
        }
    ],
    address: {
        id: integer,
        index: integer,
        region: string,
        city: string,
        street: string,
        build: string,
        created_at: datetime,
        updated_at: datetime
    } | null
}

Отвязать модуль от контрагента

METHOD: GET

NAME: api/contractor/ID/detach/module/MODULE_ID

RESPONSES:

{
    id: integer,
    name: string,
    full_name: string,
    inn: string,
    kpp: string | null,
    address_id: integer | null,
    created_at: datetime | null,
    updated_at: datetime | null,
    logo: string | null,
    modules: [
        {
            id: integer,
            title: string,
            description: string,
            created_at: datetime | null,
            updated_at: datetime | null,
            pivot: {
                contractor_id: integer,
                module_id: integer
            }
        },
    ],
    users: [
        {
            id: integer,
            name: string,
            email: string,
            email_verified_at: datetime | null,
            contractor_id: integer,
            created_at: datetime | null,
            updated_at: datetime | null,
            role: string,
            post: string | null,
            photo: string | null,
            person_id: integer | null,
        }
    ],
    address: {
        id: integer,
        index: integer,
        region: string,
        city: string,
        street: string,
        build: string,
        created_at: datetime,
        updated_at: datetime
    } | null
}

Загрузить логотип

METHOD: POST

NAME: api/upload

QUERY PARAMETERS:

FormData: {
    file*: file // Файл
}

RESPONSES:

{
    filename: string,
}