CAPI-125: Impose reasonable limits and enforce specs on model props (#62)

* CAPI-125: Impose reasonable limits and enforce specs on model props

* CAPI-125: Accomodate for ipv6-mapped ipv4 addresses

* CAPI-125: Fix standard id

* CAPI-125: Refine phone number format
This commit is contained in:
Andrew Mayorov 2017-05-12 17:23:24 +03:00 committed by GitHub
parent 831a19e146
commit 19713fc464
31 changed files with 116 additions and 36 deletions

View File

@ -7,9 +7,13 @@ required:
properties:
account:
type: string
pattern: '^\d{20}$'
bankName:
type: string
maxLength: 100
bankPostAccount:
type: string
pattern: '^\d{20}$'
bankBik:
type: string
pattern: '^\d{9}$'

View File

@ -23,3 +23,4 @@ allOf:
cardHolder:
description: Имя держателя карты
type: string
maxLength: 100

View File

@ -5,8 +5,10 @@ required:
properties:
name:
type: string
maxLength: 100
categoryID:
type: integer
format: int32
description:
type: string
maxLength: 1000

View File

@ -7,3 +7,4 @@ allOf:
properties:
reason:
type: string
maxLength: 1000

View File

@ -6,3 +6,4 @@ properties:
fingerprint:
description: Уникальный отпечаток user agent'а плательщика
type: string
maxLength: 1000

View File

@ -4,6 +4,11 @@ properties:
email:
description: Адрес электронной почты
type: string
format: email
maxLength: 100
phoneNumber:
description: Номер мобильного телефона
description: |
Номер мобильного телефона с международным префиксом согласно
[E.164](https://en.wikipedia.org/wiki/E.164).
type: string
format: '^\+\d{4,15}$'

View File

@ -10,3 +10,4 @@ allOf:
format: date-time
reason:
type: string
maxLength: 1000

View File

@ -37,14 +37,17 @@ allOf:
currency:
description: |
Валюта, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
metadata:
description: Связанные с инвойсом метаданные
type: object
product:
description: Наименование предлагаемых товаров или услуг
type: string
maxLength: 100
description:
description: Описание предлагаемых товаров или услуг
type: string
maxLength: 1000

View File

@ -21,8 +21,9 @@ properties:
currency:
description: |
Валюта, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
metadata:
description: 'Метаданные, которые необходимо связать с инвойсом'
type: object
@ -35,6 +36,8 @@ properties:
product:
description: Наименование предлагаемых товаров или услуг
type: string
maxLength: 100
description:
description: Описание предлагаемых товаров или услуг
type: string
maxLength: 1000

View File

@ -40,14 +40,17 @@ allOf:
currency:
description: |
Валюта, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
metadata:
description: Связанные с инвойсом метаданные
type: object
product:
description: Наименование предлагаемых товаров или услуг
type: string
maxLength: 100
description:
description: Описание предлагаемых товаров или услуг
type: string
maxLength: 1000

View File

@ -14,3 +14,4 @@ properties:
reason:
description: Причина отмены или погашения инвойса
type: string
maxLength: 1000

View File

@ -36,23 +36,29 @@ allOf:
currency:
description: |
Валюта, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
paymentSession:
description: Идентификатор платежной сессии
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
contactInfo:
description: Контактные данные плательщика
allOf:
- $ref: '#/definitions/ContactInfo'
paymentSession:
description: Идентификатор платежной сессии
type: string
maxLength: 1000
paymentToolToken:
description: 'Токен платежного средства, предоставленного плательщиком'
type: string
maxLength: 1000
paymentToolDetails:
$ref: '#/definitions/PaymentToolDetails'
ip:
description: IP-адрес плательщика
type: string
format: ip-address
maxLength: 45
fingerprint:
description: Уникальный отпечаток user agent'а плательщика
type: string
maxLength: 1000

View File

@ -16,8 +16,9 @@ properties:
currency:
description: |
Валюта платежей, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
profit:
description: Прибыль магазина
type: integer

View File

@ -1,14 +1,16 @@
type: object
required:
- paymentToolToken
- paymentSession
- contactInfo
- paymentSession
- paymentToolToken
properties:
paymentToolToken:
description: Токен платежного средства, предоставленного плательщиком
type: string
contactInfo:
$ref: '#/definitions/ContactInfo'
paymentSession:
description: Идентификатор платежной сессии
type: string
contactInfo:
$ref: '#/definitions/ContactInfo'
maxLength: 1000
paymentToolToken:
description: Токен платежного средства, предоставленного плательщиком
type: string
maxLength: 1000

View File

@ -11,8 +11,9 @@ properties:
currency:
description: |
Валюта платежей, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
profit:
description: Прибыль магазина
type: integer

View File

@ -24,35 +24,39 @@ allOf:
type: string
format: date-time
amount:
description: >
description: |
Стоимость предлагаемых товаров или услуг, в минорных денежных
единицах,
например в копейках в случае указания российских рублей в качестве
валюты.
единицах, например в копейках в случае указания российских рублей в
качестве валюты.
type: integer
format: int64
minimum: 1
currency:
description: |
Валюта, символьный код согласно
[RFC 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
paymentSession:
description: Идентификатор платежной сессии
[ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).
type: string
pattern: '^[A-Z]{3}$'
contactInfo:
description: Контактные данные плательщика
allOf:
- $ref: '#/definitions/ContactInfo'
paymentSession:
description: Идентификатор платежной сессии
type: string
maxLength: 1000
paymentToolToken:
description: 'Токен платежного средства, предоставленного плательщиком'
type: string
maxLength: 1000
paymentToolDetails:
$ref: '#/definitions/PaymentToolDetails'
ip:
description: IP-адрес плательщика
type: string
format: ip-address
maxLength: 45
fingerprint:
description: Уникальный отпечаток user agent'а плательщика
type: string
maxLength: 1000

View File

@ -13,3 +13,4 @@ allOf:
paymentSystem:
description: Платежная система
type: string
maxLength: 100

View File

@ -3,4 +3,6 @@ required:
- reason
properties:
reason:
description: Причина совершения операции
type: string
maxLength: 1000

View File

@ -14,17 +14,25 @@ allOf:
properties:
registeredName:
type: string
maxLength: 100
registeredNumber:
type: string
pattern: '^(\d{13}|\d{15})$'
inn:
type: string
pattern: '^\d{10}$'
actualAddress:
type: string
maxLength: 1000
postAddress:
type: string
maxLength: 1000
representativePosition:
type: string
maxLength: 100
representativeFullName:
type: string
maxLength: 100
representativeDocument:
type: string
maxLength: 100

View File

@ -10,3 +10,4 @@ properties:
type: string
currency:
type: string
format: '^[A-Z]{3}$'

View File

@ -4,7 +4,9 @@ required:
properties:
name:
type: string
maxLength: 100
description:
type: string
maxLength: 1000
location:
$ref: '#/definitions/ShopLocation'

View File

@ -7,3 +7,5 @@ allOf:
properties:
url:
type: string
format: uri
maxLength: 1000

View File

@ -20,7 +20,8 @@ properties:
description: |
URL, на который будут поступать оповещения о произошедших событиях
type: string
format: url
format: uri
maxLength: 1000
publicKey:
description: |
Содержимое публичного ключа, служащего для проверки авторитативности

View File

@ -10,4 +10,5 @@ properties:
description: |
URL, на который будут поступать оповещения о произошедших событиях
type: string
format: url
format: uri
maxLength: 1000

View File

@ -37,26 +37,33 @@ get:
description: Идентификатор инвойса
required: false
type: string
maxLength: 40
- name: paymentID
in: query
description: Идентификатор платежа
required: false
type: string
maxLength: 40
- 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: cardNumberMask
in: query
description: Маскированый номер карты

View File

@ -26,26 +26,33 @@ get:
description: Идентификатор инвойса
required: false
type: string
maxLength: 40
- name: paymentID
in: query
description: Идентификатор платежа
required: false
type: string
maxLength: 40
- 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: cardNumberMask
in: query
description: Маскированый номер карты

View File

@ -10,6 +10,7 @@ get:
description: Account ID
required: true
type: string
maxLength: 40
responses:
'200':
description: Account found

View File

@ -6,11 +6,7 @@ get:
parameters:
- $ref: '#/parameters/requestID'
- $ref: '#/parameters/invoiceID'
- name: paymentID
in: path
description: Идентификатор платежа
required: true
type: string
- $ref: '#/parameters/paymentID'
responses:
'200':
description: Данные платежа

View File

@ -27,8 +27,10 @@ post:
token:
description: Созданный токен
type: string
maxLength: 1000
session:
description: Идентификатор созданной платежной сессии
type: string
maxLength: 1000
'400':
$ref: '#/responses/BadRequest'

View File

@ -1,7 +1,7 @@
put:
description: >-
description: |
Приостановить действие магазина. Этот тип заявок обрабатывается платформой
автоматически и исполняется сразу же после отправки
автоматически и исполняется сразу же после отправки.
operationId: suspendShop
tags:
- Shops

View File

@ -110,6 +110,14 @@ parameters:
description: Идентификатор инвойса
required: true
type: string
maxLength: 40
paymentID:
name: paymentID
in: path
description: Идентификатор платежа в рамках инвойса
required: true
type: string
maxLength: 40
contractID:
name: contractID
in: path
@ -123,6 +131,7 @@ parameters:
description: Идентификатор webhook'а
required: true
type: string
maxLength: 40
fromTime:
name: fromTime
in: query
@ -162,10 +171,11 @@ parameters:
name: limit
in: query
description: Лимит выборки
required: false
required: true
type: integer
format: int32
minimum: 1
maximum: 1000
offset:
name: offset
in: query