mirror of
https://github.com/valitydev/swag-dark-api.git
synced 2024-11-06 10:55:16 +00:00
Merge pull request #1 from rbkmoney/ft/BJ-456/magista-dark-api
dark-api for magista
This commit is contained in:
commit
3054bcd358
4
.gitignore
vendored
4
.gitignore
vendored
@ -58,6 +58,4 @@ package-lock.json
|
||||
|
||||
# Gradle:
|
||||
.idea/gradle.xml
|
||||
.idea/libraries
|
||||
|
||||
*.iml
|
||||
.idea/libraries
|
@ -15,4 +15,8 @@
|
||||
4. All changes are immediately propagated to your local server, moreover all documentation pages will be automagically refreshed in a browser after each change
|
||||
**TIP:** you can open `swagger-editor`, documentation and `swagger-ui` in parallel
|
||||
5. Once you finish with the changes you can run tests using: `npm test`
|
||||
6. Share you changes with the rest of the world by pushing to GitHub :smile:
|
||||
6. Share you changes with the rest of the world by pushing to GitHub :smile:
|
||||
|
||||
Для генерации java-кода используйте команду
|
||||
'mvn package' OR
|
||||
`npm run-script build && swagger-codegen generate -i web_deploy/swagger.json -l java -o ./java --api-package "com.rbkmoney.dark.api" --artifact-id "swag-dark-api" --artifact-version "1.0.0" --group-id "com.rbkmoney" --model-package "com.rbkmoney.dark.model" --additional-properties dateLibrary=java8`
|
||||
|
2
pom.xml
2
pom.xml
@ -19,7 +19,7 @@
|
||||
</description>
|
||||
|
||||
<properties>
|
||||
<default.package>com.rbkmoney.swag.dark.api.server</default.package>
|
||||
<default.package>com.rbkmoney.swag.dark_api</default.package>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<swagger-annotations-version>1.5.21</swagger-annotations-version>
|
||||
<jodatime-version>2.7</jodatime-version>
|
||||
|
5
spec/definitions/ContinuationToken.yaml
Normal file
5
spec/definitions/ContinuationToken.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
description: |
|
||||
Токен, сигнализирующий о том, что в ответе передана только часть данных.
|
||||
Для получения следующей части нужно повторно обратиться к сервису, указав тот-же набор условий и полученый токен.
|
||||
Если токена нет, получена последняя часть данных.
|
||||
type: string
|
10
spec/definitions/EnrichedSearchResult.yaml
Normal file
10
spec/definitions/EnrichedSearchResult.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
type: object
|
||||
allOf:
|
||||
- type: object
|
||||
required:
|
||||
- payment
|
||||
properties:
|
||||
payment:
|
||||
$ref: '#/definitions/PaymentSearchResult'
|
||||
refund:
|
||||
$ref: '#/definitions/RefundSearchResult'
|
12
spec/definitions/GeoLocationInfo.yaml
Normal file
12
spec/definitions/GeoLocationInfo.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
description: Информация о геопозиции
|
||||
type: object
|
||||
required:
|
||||
- cityGeoID
|
||||
- countryGeoID
|
||||
properties:
|
||||
cityGeoID:
|
||||
type: integer
|
||||
format: int32
|
||||
countryGeoID:
|
||||
type: integer
|
||||
format: int32
|
68
spec/definitions/PaymentSearchResult.yaml
Normal file
68
spec/definitions/PaymentSearchResult.yaml
Normal file
@ -0,0 +1,68 @@
|
||||
type: object
|
||||
allOf:
|
||||
- $ref: '#/definitions/PaymentStatus'
|
||||
- type: object
|
||||
required:
|
||||
- id
|
||||
- invoiceID
|
||||
- createdAt
|
||||
- amount
|
||||
- currency
|
||||
- payer
|
||||
- flow
|
||||
properties:
|
||||
id:
|
||||
description: Идентификатор платежа
|
||||
type: string
|
||||
shortID:
|
||||
description: Cокращенный идентификатор платежа и инвойса (spid)
|
||||
type: string
|
||||
invoiceID:
|
||||
description: 'Идентификатор инвойса, в рамках которого был создан платеж'
|
||||
type: string
|
||||
shopID:
|
||||
description: 'Идентификатор магазина, в рамках которого был создан платеж'
|
||||
type: string
|
||||
createdAt:
|
||||
description: Дата и время создания
|
||||
type: string
|
||||
format: date-time
|
||||
amount:
|
||||
description: |
|
||||
Стоимость предлагаемых товаров или услуг, в минорных денежных
|
||||
единицах, например в копейках в случае указания российских рублей в
|
||||
качестве валюты.
|
||||
type: integer
|
||||
format: int64
|
||||
minimum: 1
|
||||
fee:
|
||||
description: 'Комиссия системы, в минорных денежных единицах'
|
||||
type: integer
|
||||
format: int64
|
||||
minimum: 0
|
||||
currency:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/Currency'
|
||||
payer:
|
||||
$ref: '#/definitions/Payer'
|
||||
flow:
|
||||
$ref: '#/definitions/PaymentFlow'
|
||||
geoLocationInfo:
|
||||
$ref: '#/definitions/GeoLocationInfo'
|
||||
metadata:
|
||||
description: Связанные с платежом метаданные
|
||||
type: object
|
||||
invoiceMetadata:
|
||||
description: Связанные с инвойсом метаданные
|
||||
type: object
|
||||
statusChangedAt:
|
||||
description: Дата и время изменения статуса платежа
|
||||
type: string
|
||||
format: date-time
|
||||
makeRecurrent:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/PaymentMakeRecurrent'
|
||||
- readOnly: true
|
||||
cart:
|
||||
$ref: '#/definitions/InvoiceCart'
|
||||
|
38
spec/definitions/Refund.yaml
Normal file
38
spec/definitions/Refund.yaml
Normal file
@ -0,0 +1,38 @@
|
||||
type: object
|
||||
x-merge-properties:
|
||||
- type: object
|
||||
required:
|
||||
- id
|
||||
- createdAt
|
||||
- amount
|
||||
- currency
|
||||
properties:
|
||||
id:
|
||||
description: Идентификатор возврата
|
||||
type: string
|
||||
createdAt:
|
||||
description: Дата и время осуществления
|
||||
type: string
|
||||
format: date-time
|
||||
amount:
|
||||
description: >
|
||||
Сумма возврата, в минорных денежных единицах,
|
||||
например в копейках в случае указания российских рублей в качестве
|
||||
валюты.
|
||||
type: integer
|
||||
format: int64
|
||||
minimum: 1
|
||||
currency:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/Currency'
|
||||
reason:
|
||||
description: Причина осуществления возврата
|
||||
type: string
|
||||
cart:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/InvoiceCart'
|
||||
- description: >
|
||||
Итоговая корзина предоставляемых товаров и услуг, которая должна формироваться
|
||||
из корзины инвойса исключением позиций, по которым производился возврат.
|
||||
Сумма корзины должна совпадать с суммой платежа за вычетом суммы возврата.
|
||||
- $ref: '#/definitions/RefundStatus'
|
14
spec/definitions/RefundSearchResult.yaml
Normal file
14
spec/definitions/RefundSearchResult.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
type: object
|
||||
allOf:
|
||||
- type: object
|
||||
required:
|
||||
- invoiceID
|
||||
- paymentID
|
||||
properties:
|
||||
invoiceID:
|
||||
description: Идентификатор инвойса
|
||||
type: string
|
||||
paymentID:
|
||||
description: Идентификатор платежа
|
||||
type: string
|
||||
- $ref: '#/definitions/Refund'
|
26
spec/definitions/RefundStatus.yaml
Normal file
26
spec/definitions/RefundStatus.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
type: object
|
||||
required:
|
||||
- status
|
||||
properties:
|
||||
status:
|
||||
description: Статус возврата
|
||||
type: string
|
||||
enum:
|
||||
- pending
|
||||
- succeeded
|
||||
- failed
|
||||
error:
|
||||
description: |
|
||||
Данные ошибки, возникшей в процессе проведения возврата, в случае если
|
||||
возврат был неуспешен
|
||||
type: object
|
||||
required:
|
||||
- code
|
||||
- message
|
||||
properties:
|
||||
code:
|
||||
description: Код ошибки, пригодный для обработки автоматическими системами
|
||||
type: string
|
||||
message:
|
||||
description: Описание ошибки, пригодное для восприятия человеком
|
||||
type: string
|
139
spec/paths/search@payments.yaml
Normal file
139
spec/paths/search@payments.yaml
Normal file
@ -0,0 +1,139 @@
|
||||
get:
|
||||
description: Поиск платежей
|
||||
tags:
|
||||
- Search
|
||||
operationId: searchPayments
|
||||
parameters:
|
||||
- $ref: '#/parameters/requestID'
|
||||
- $ref: '#/parameters/deadline'
|
||||
- $ref: '#/parameters/shopID'
|
||||
- $ref: '#/parameters/fromTime'
|
||||
- $ref: '#/parameters/toTime'
|
||||
- $ref: '#/parameters/limit'
|
||||
- name: paymentStatus
|
||||
in: query
|
||||
description: Статус платежа для поиска
|
||||
required: false
|
||||
type: string
|
||||
enum:
|
||||
- pending
|
||||
- processed
|
||||
- captured
|
||||
- cancelled
|
||||
- refunded
|
||||
- failed
|
||||
- name: paymentFlow
|
||||
in: query
|
||||
description: Flow платежа
|
||||
required: false
|
||||
type: string
|
||||
enum:
|
||||
- instant
|
||||
- hold
|
||||
- name: paymentMethod
|
||||
in: query
|
||||
description: Метод оплаты
|
||||
required: false
|
||||
type: string
|
||||
enum:
|
||||
- bankCard
|
||||
- paymentTerminal
|
||||
- name: paymentTerminalProvider
|
||||
in: query
|
||||
description: Провайдер платежного терминала
|
||||
required: false
|
||||
type: string
|
||||
enum:
|
||||
- euroset
|
||||
- name: invoiceID
|
||||
in: query
|
||||
description: Идентификатор инвойса
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
- name: paymentID
|
||||
in: query
|
||||
description: Идентификатор платежа
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
- name: payerEmail
|
||||
in: query
|
||||
description: 'Email, указанный при оплате'
|
||||
required: false
|
||||
type: string
|
||||
format: email
|
||||
maxLength: 100
|
||||
- name: payerIP
|
||||
in: query
|
||||
description: IP-адрес плательщика
|
||||
required: false
|
||||
type: string
|
||||
format: ip-address
|
||||
maxLength: 45
|
||||
- name: payerFingerprint
|
||||
in: query
|
||||
description: Уникальный отпечаток user agent'а плательщика
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 1000
|
||||
- name: customerID
|
||||
in: query
|
||||
description: Идентификатор плательщика
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
- name: bin
|
||||
in: query
|
||||
description: BIN банка-эмитента карты
|
||||
required: false
|
||||
type: string
|
||||
pattern: '^\d{6,8}$'
|
||||
- name: lastDigits
|
||||
in: query
|
||||
description: Последние цифры номера карты
|
||||
required: false
|
||||
type: string
|
||||
pattern: '^\d{2,4}$'
|
||||
- x-rebillyMerge:
|
||||
- name: bankCardTokenProvider
|
||||
in: query
|
||||
required: false
|
||||
- $ref: '#/definitions/BankCardTokenProvider'
|
||||
- x-rebillyMerge:
|
||||
- name: bankCardPaymentSystem
|
||||
in: query
|
||||
required: false
|
||||
- $ref: '#/definitions/BankCardPaymentSystem'
|
||||
- name: paymentAmount
|
||||
in: query
|
||||
description: Сумма платежа
|
||||
required: false
|
||||
type: integer
|
||||
format: int64
|
||||
minimum: 1
|
||||
- x-rebillyMerge:
|
||||
- name: continuationToken
|
||||
in: query
|
||||
required: false
|
||||
- $ref: '#/definitions/ContinuationToken'
|
||||
responses:
|
||||
'200':
|
||||
description: Найденные платежи
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
continuationToken:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/ContinuationToken'
|
||||
result:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/EnrichedSearchResult'
|
||||
'404':
|
||||
$ref: '#/responses/NotFound'
|
||||
'401':
|
||||
$ref: '#/responses/Unauthorized'
|
63
spec/paths/search@refunds.yaml
Normal file
63
spec/paths/search@refunds.yaml
Normal file
@ -0,0 +1,63 @@
|
||||
get:
|
||||
description: Поиск возвратов
|
||||
tags:
|
||||
- Search
|
||||
operationId: searchRefunds
|
||||
parameters:
|
||||
- $ref: '#/parameters/requestID'
|
||||
- $ref: '#/parameters/deadline'
|
||||
- $ref: '#/parameters/shopID'
|
||||
- $ref: '#/parameters/fromTime'
|
||||
- $ref: '#/parameters/toTime'
|
||||
- $ref: '#/parameters/limit'
|
||||
- name: invoiceID
|
||||
in: query
|
||||
description: Идентификатор инвойса
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
- name: paymentID
|
||||
in: query
|
||||
description: Идентификатор платежа
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
- name: refundID
|
||||
in: query
|
||||
description: Идентификатор возврата
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
- name: refundStatus
|
||||
in: query
|
||||
description: Статус возврата
|
||||
type: string
|
||||
enum:
|
||||
- pending
|
||||
- succeeded
|
||||
- failed
|
||||
- x-rebillyMerge:
|
||||
- name: continuationToken
|
||||
in: query
|
||||
required: false
|
||||
- $ref: '#/definitions/ContinuationToken'
|
||||
responses:
|
||||
'200':
|
||||
description: Найденные возвраты
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
continuationToken:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/ContinuationToken'
|
||||
result:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/EnrichedSearchResult'
|
||||
'404':
|
||||
$ref: '#/responses/NotFound'
|
||||
'401':
|
||||
$ref: '#/responses/Unauthorized'
|
@ -60,11 +60,89 @@ parameters:
|
||||
type: string
|
||||
maxLength: 32
|
||||
minLength: 1
|
||||
shopID:
|
||||
name: shopID
|
||||
in: path
|
||||
description: Идентификатор магазина
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
paymentID:
|
||||
name: paymentID
|
||||
in: path
|
||||
description: Идентификатор платежа в рамках инвойса
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
refundID:
|
||||
name: refundID
|
||||
in: path
|
||||
description: Идентификатор возврата в рамках платежа
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
customerID:
|
||||
name: customerID
|
||||
in: path
|
||||
description: Идентификатор кастомера
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
payoutID:
|
||||
name: payoutID
|
||||
in: path
|
||||
description: Идентификатор вывода
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
invoiceID:
|
||||
name: invoiceID
|
||||
in: path
|
||||
description: Идентификатор инвойса
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
fromTime:
|
||||
name: fromTime
|
||||
in: query
|
||||
description: Начало временного отрезка
|
||||
required: true
|
||||
type: string
|
||||
format: date-time
|
||||
toTime:
|
||||
name: toTime
|
||||
in: query
|
||||
description: Конец временного отрезка
|
||||
required: true
|
||||
type: string
|
||||
format: date-time
|
||||
limit:
|
||||
name: limit
|
||||
in: query
|
||||
description: Лимит выборки
|
||||
required: true
|
||||
type: integer
|
||||
format: int32
|
||||
minimum: 1
|
||||
maximum: 1000
|
||||
deadline:
|
||||
name: X-Request-Deadline
|
||||
in: header
|
||||
description: Максимальное время обработки запроса
|
||||
required: false
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
|
||||
tags:
|
||||
|
||||
- name: Payments
|
||||
x-displayName: Управление платежами
|
||||
- name: Search
|
||||
x-displayName: Управление поиском
|
||||
description: ""
|
||||
|
||||
- name: Questionary
|
||||
|
Loading…
Reference in New Issue
Block a user