docxTemplater/openapi.yaml
Danil Solovyov 3879213c51 Changes:
- Добавлен group
  - Все эндпоинты связанные с генерацией перенесены в generator
  - Другие правки
2022-11-12 15:58:54 +05:00

244 lines
8.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.0
info:
description: "Шаблонизатор документов PenaHub для AMO CRM"
version: 1.0.2
title: "PenaHub Template generator"
servers:
- url: https://tempgen.pena.digital
tags:
- name: amo
description: "Все что связано с amo"
paths:
/amo:
get:
tags:
- amo
summary: "Сохранение amo токена аккаунта"
description: "Вебхук предназначен для получения токена, после перехода по ссылке и подтверждения прав пользователем.
После успешного выполнения перенаправляет на страницу настроек плагина в AMO CRM"
operationId: AmoSaveToken
parameters:
- $ref: "#/components/parameters/access_token"
- $ref: "#/components/parameters/code"
- $ref: "#/components/parameters/client_id"
- $ref: "#/components/parameters/expires_in"
- $ref: "#/components/parameters/token_type"
- $ref: "#/components/parameters/refresh_token"
- $ref: "#/components/parameters/state"
- $ref: "#/components/parameters/from_widget"
- $ref: "#/components/parameters/referer"
responses:
308:
description: "Permanent Redirect. Успешно"
400:
description: "Bad Request. Ошибка в запросе"
401:
description: "Unauthorized. State-токен не совпадает с ожидаемым"
403:
description: "Forbidden. Amo клиент выдал ошибку"
500:
$ref: "#/components/responses/InternalServerError"
/amo/state:
get:
tags:
- amo
summary: "Получить состояние аккаунта пользователя в Amo"
description: "Возвращает актуальное состояние аккаунта пользователя в AMO CRM. Авторизация происходит либо по jwt
«AMO CRM» или «PenaHub»"
responses:
200:
description: "Успешно"
content:
application/json:
schema:
$ref: "#/components/schemas/AmoState"
components:
parameters:
access_token:
name: access_token
in: query
required: true
schema:
type: string
code:
name: code
in: query
schema:
type: string
client_id:
name: client_id
in: query
schema:
type: string
expires_in:
name: expires_in
in: query
schema:
type: integer
format: timestamp
token_type:
name: token_type
in: query
schema:
type: string
refresh_token:
name: refresh_token
in: query
schema:
type: string
state:
name: state
in: query
required: true
schema:
type: string
from_widget:
name: from_widget
in: query
schema:
type: string
referer:
name: referer
in: query
schema:
type: string
schemas:
InternalServerError:
type: string
title: Internal server
example: "Something wrong! Ow ow ow!"
AmoState:
type: object
properties:
gen_count:
description: "Количество оставшихся генераций на аккаунте"
type: integer
example: 97
auth_yandex_url:
type: string
description: "Ссылка для авторизации приложения в Yandex Disk"
example: "https://oauth.yandex.ru/authorize?..."
auth_google_url:
type: string
description: "Ссылка для авторизации приложения в Google Disk"
example: "https://accounts.google.com/o/oauth2/auth?..."
storages:
type: object
description: "Данные по хранилищам"
properties:
gdisk:
type: array
description: "Авторизованные Google Disk хранилища"
items:
$ref: "#/components/schemas/GDisk"
yadisk:
type: array
description: "Авторизованные Yandex Disk хранилища"
items:
$ref: "#/components/schemas/YaDisk"
GDisk:
type: object
description: "Google Disk"
properties:
id:
$ref: "#/components/schemas/id"
user_id:
$ref: "#/components/schemas/user_id"
email:
type: string
description: "E-mail профиля Google"
example: "johndoe@gmail.com"
display_name:
type: string
description: "Отображаемое имя профиля Google"
example: "John Doe"
photo_link:
type: string
description: "Аватарка профиля Google"
example: "https://lh3.googleusercontent.com/a/default-user=s64"
name:
type: string
description: "Пользовательское название хранилища"
example: "Google Disk (johndoe@gmail.com)"
default_folder:
type: string
description: "Название стандартной папки приложения"
example: "Template Generator"
default_folder_id:
type: string
description: "Идентификатор папки в Google Disk"
example: "1Qi0a0gEiuyZfgNm_DMg2-YAS9wtkZ3oQ"
template_folder:
type: string
description: "Название папки с шаблонами"
example: "templates"
template_folder_id:
type: string
description: "Идентификатор папки с шаблонами в Google Disk"
example: "Q230gEiuyASasdgNm_DMg2-YAS9wtkZadf"
save_folder:
type: string
description: "Название папки с сгенерированными файлами"
example: "saved"
save_folder_id:
type: string
description: "Идентификатор папки с сгенерированными файлами в Google Disk"
example: "a230gEiuyAaser1Nm_DMg2-YAS9wtfadtr"
is_deleted:
type: boolean
description: "Флаг удалено хранилище пользователем"
example: false
created_at:
$ref: "#/components/schemas/created_at"
updated_at:
$ref: "#/components/schemas/updated_at"
YaDisk:
type: object
description: "Yandex Disk"
properties:
id:
type: string
description: "Уникальный идентификатор"
example: "635520d143ebb05286f4fba6"
user_id:
type: string
description: "Уникальный идентификатор пользователя"
example: "62ac67a1471fd0f7892353bf"
id:
type: string
description: "Уникальный идентификатор"
example: "635520d143ebb05286f4fba6"
user_id:
type: string
description: "Уникальный идентификатор пользователя"
example: "62ac67a1471fd0f7892353bf"
created_at:
type: string
format: date-time
description: "Время создания записи"
example: "2022-10-23T11:09:05.35Z"
updated_at:
type: string
format: date-time
description: "Время последнего обновления записи"
example: "2022-10-23T11:09:05.35Z"
responses:
InternalServerError:
description: "Internal Server Error. Непредвиденная ошибка."
content:
application/json:
schema:
$ref: "#/components/schemas/InternalServerError"