Update master (#4)

* update

* renamed to vality
This commit is contained in:
Артем 2022-01-24 15:35:28 +03:00 committed by GitHub
parent b8b19e1d82
commit da5112091b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 4616 additions and 8994 deletions

23
.github/workflows/build.yaml vendored Normal file
View File

@ -0,0 +1,23 @@
name: build
on:
- pull_request
env:
NODEJS_VERSION: '16'
jobs:
bundle:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODEJS_VERSION }}
cache: npm
- run: npm install
- name: Bundle specification
run: npm run build
- name: Validate specification
run: npm run test

28
.github/workflows/gh-pages.yaml vendored Normal file
View File

@ -0,0 +1,28 @@
name: gh-pages
on:
push:
branches: [master]
env:
NODEJS_VERSION: '16'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODEJS_VERSION }}
cache: npm
- run: npm install
- name: Bundle specification
run: npm run build
- name: Publish ReDoc on Github Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
exclude_assets: 'swagger-ui'

7
.gitignore vendored
View File

@ -1,6 +1,6 @@
# Dir for API portal deploy # Dir for API portal deploy
dist dist/
out out/
# Logs # Logs
logs logs
@ -35,6 +35,3 @@ node_modules
# CI # CI
.wercker .wercker
# Generated
web_deploy/

View File

@ -1,10 +1 @@
# Wallet API Specification # Wallet API Specification
## TODO
* Надо бы ввести identity service terms.
* Кажется всё-таки, что identity classes и identity levels на одном уровне иерархии.
* Можно попробовать identity classes и levels совместить во что-то одно (типа badges) и позволять набивать их в identity в произвольном количестве.
* Вообще, withdrawal может включать и user interaction.
* Ресурсы _currencies_ и _residences_ выглядят как достаточно универсальные, чтобы их вынести в отдельную спеку.
* Пропатчить _swagger-repo_ так, чтобы _swagger-editor_ корректно работал с репозиториями, в которых больше одной спеки.

View File

@ -1,7 +1,7 @@
type: object type: object
properties: properties:
authData: authData:
description: Данные для авторизации операции по карте description: Данные для авторизации платежа по карте
type: string type: string
minLength: 1 minLength: 1
maxLength: 1000 maxLength: 1000

View File

@ -1,19 +1,11 @@
description: Платёжная система description: Платежная система
type: string type: string
enum: # enum:
- visa # - visa
- mastercard # - mastercard
- visaelectron # - amex
- maestro # - dinersclub
- forbrugsforeningen # - discover
- dankort # - unionpay
- amex # - jcb
- dinersclub # - nspkmir
- discover
- unionpay
- jcb
- nspkmir
- elo
- rupay
- dummy
- uzcard

View File

@ -2,4 +2,3 @@ type: object
allOf: allOf:
- $ref: '#/definitions/SecuredBankCard' - $ref: '#/definitions/SecuredBankCard'
- $ref: '#/definitions/AuthData' - $ref: '#/definitions/AuthData'
- $ref: '#/definitions/ValidUntil'

View File

@ -1,20 +1,17 @@
swagger: '2.0' swagger: '2.0'
info: info:
version: '0.0.1' version: '0.1.0'
title: RBKmoney Payment Resource API title: Vality Payment Resource API
description: > description: >
Платформа предоставляет возможность токенизации исходных данных пользовательских платёжных ресурсов. Vality Payment Resource API служит для токенизации чувствительных данных платёжных ресурсов пользователей.
Используя RBKmoney Payment Resource API вы можете для своего платёжного ресурса получить уникальный токен,
который может быть использован для переводов.
termsOfService: https://vality.dev/
termsOfService: http://rbk.money/
contact: contact:
name: RBKmoney support team name: Команда техподдержки
email: support@rbk.money email: support@vality.dev
url: https://rbk.money url: https://vality.dev/
host: api.rbk.money host: api.vality.dev
basePath: /payres/v0 basePath: /payres/v0
schemes: schemes:
- https - https

View File

@ -1,12 +0,0 @@
description: Исходные чувствительные данные персональные документа
type: object
discriminator: type
required:
- type
properties:
type:
description: Вид документа
type: string
enum:
- RUSDomesticPassportData
- RUSRetireeInsuranceCertificateData

View File

@ -1,20 +0,0 @@
description: Открытые данные национального паспорта гражданина РФ
allOf:
- $ref: '#/definitions/SecuredPrivateDocument'
- type: object
properties:
seriesMasked:
description: Маскированная серия паспорта
type: string
example: "45**"
readOnly: true
numberMasked:
description: Маскированный номер паспорта
type: string
example: "*****6"
readOnly: true
fullnameMasked:
description: Маскированное полное имя гражданина
type: string
example: "И***** И.И."
readOnly: true

View File

@ -1,69 +0,0 @@
description: Исходные данные национального паспорта гражданина РФ
allOf:
- $ref: '#/definitions/PrivateDocument'
- type: object
required:
- series
- number
- issuer
- issuerCode
- issuedAt
- familyName
- firstName
- birthDate
- birthPlace
properties:
series:
description: Серия паспорта
type: string
example: "4567"
pattern: '^[0-9]{4}$'
number:
description: Номер паспорта
type: string
example: "123456"
pattern: '^[0-9]{6}$'
issuer:
description: Наименование выдавшего паспорт органа
type: string
example: |
Отделение УФМС России по Кемеровской области в Юргинском районе
maxLength: 1000
issuerCode:
description: Код подразделения выдавшего паспорт органа
type: string
example: |
666-777
pattern: '^[0-9]{3}-[0-9]{3}$'
issuedAt:
description: Дата выдачи паспорта
type: string
format: date
familyName:
description: Фамилия гражданина
type: string
example: "Иванов"
# pattern: "^[А-Яа-я'-]{1,100}$"
maxLength: 100
firstName:
description: Имя гражданина
type: string
example: "Иван"
# pattern: "^[А-Яа-я'-]{1,100}$"
maxLength: 100
patronymic:
description: Отчество гражданина
type: string
example: "Иванович"
# pattern: "^[А-Яа-я'-]{1,100}$"
maxLength: 100
birthDate:
description: Дата рождения гражданина
type: string
format: date
birthPlace:
description: Место рождения гражданина
type: string
# pattern: "^[ .0-9А-Яа-я'-]{1,100}$"
maxLength: 100
example: "дер. Белянино"

View File

@ -1,13 +0,0 @@
description: |
Открытые данные страхового свидетельства обязательного пенсионного страхования
гражданина РФ
allOf:
- $ref: '#/definitions/SecuredPrivateDocument'
- type: object
properties:
numberMasked:
description: |
Маскированный [СНИЛС](https://ru.wikipedia.org/wiki/Страховой_номер_индивидуального_лицевого_счёта)
type: string
example: "12*-***-*** *4"
readOnly: true

View File

@ -1,15 +0,0 @@
description: |
Исходные данные страхового свидетельства обязательного пенсионного страхования
гражданина РФ
allOf:
- $ref: '#/definitions/PrivateDocument'
- type: object
required:
- number
properties:
number:
description: |
[СНИЛС](https://ru.wikipedia.org/wiki/Страховой_номер_индивидуального_лицевого_счёта)
type: string
example: "123-456-789 64"
pattern: "^[0-9]{3}-[0-9]{3}-[0-9]{3} [0-9]{2}$"

View File

@ -1,15 +0,0 @@
description: |
Персональный документ, токенизированный с целью сокрытия чувствительных данных
type: object
discriminator: type
required:
- token
properties:
type:
x-rebillyMerge:
- $ref: '#/definitions/SecuredPrivateDocumentType'
- readOnly: true
token:
description: Токен, уникально идентифицирующий исходные данные
type: string
example: 7kodCm5gr68ji4O11KpVn0

View File

@ -1,5 +0,0 @@
description: Тип документа
type: string
enum:
- RUSDomesticPassport
- RUSRetireeInsuranceCertificate

View File

@ -1 +0,0 @@
../../../../../spec/definitions/responses/BadRequest.yaml

View File

@ -1,20 +0,0 @@
post:
operationId: storePrivateDocument
summary: Сохранить персональный документ
tags:
- Private Documents
parameters:
- $ref: '#/parameters/requestID'
- name: proof
description: Данные документа
in: body
required: true
schema:
$ref: '#/definitions/PrivateDocument'
responses:
'201':
description: Документ токенизирован
schema:
$ref: '#/definitions/SecuredPrivateDocument'
'400':
$ref: '#/responses/BadRequest'

View File

@ -1,61 +0,0 @@
swagger: '2.0'
info:
version: '0.0.1'
title: RBKmoney Private Document API
description: >
RBKmoney Private Document API служит для токенизации чувствительных данных
персональных документов пользователей.
termsOfService: http://rbk.money/
contact:
name: RBKmoney support team
email: support@rbk.money
url: https://rbk.money
host: api.rbk.money
basePath: /privdoc/v0
schemes:
- https
consumes:
- application/json; charset=utf-8
produces:
- application/json; charset=utf-8
securityDefinitions:
bearer:
type: apiKey
name: Authorization
in: header
description: >
Для аутентификации вызовов мы используем [JWT](https://jwt.io).
Cоответствующий ключ передается в заголовке.
```shell
Authorization: Bearer {TOKENIZATION|PRIVATE_JWT}
```
security:
- bearer: []
responses:
BadRequest:
description: Недопустимые для операции входные данные
schema:
$ref: '#/definitions/BadRequest'
parameters:
requestID:
name: X-Request-ID
in: header
description: Уникальный идентификатор запроса к системе
required: true
type: string
maxLength: 32
minLength: 1
tags:
- name: Private Documents
x-displayName: Персональные документы
description: ""

View File

@ -8,7 +8,7 @@ properties:
description: | description: |
Тип ресурса приёмника средств. Тип ресурса приёмника средств.
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml). См. [Vality Payment Resource API](?api/payres/swagger.yaml).
type: string type: string
enum: enum:
- BankCardDestinationResource - BankCardDestinationResource

View File

@ -1,4 +1,4 @@
description: Уникальный в рамках платформы идентификатор участника. description: Уникальный в рамках системы идентификатор участника.
type: string type: string
minLength: 1 minLength: 1
maxLength: 40 maxLength: 40

View File

@ -12,7 +12,7 @@ properties:
description: | description: |
Человекочитаемое наименование провайдера услуг Человекочитаемое наименование провайдера услуг
type: string type: string
example: НКО «ЭПС» example: ООО «СЕРВИС ПРОВАЙДЕР»
residences: residences:
type: array type: array
description: | description: |

View File

@ -1,3 +1,3 @@
description: Идентификатор провайдера услуг description: Идентификатор провайдера услуг
type: string type: string
example: ncoeps example: serviceprovider

View File

@ -8,7 +8,7 @@ properties:
description: | description: |
Тип ресурса получателя средств. Тип ресурса получателя средств.
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml). См. [Vality Payment Resource API](?api/payres/swagger.yaml).
type: string type: string
enum: enum:
- BankCardReceiverResource - BankCardReceiverResource

View File

@ -8,7 +8,7 @@ properties:
description: | description: |
Тип ресурса получателя средств. Тип ресурса получателя средств.
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml). См. [Vality Payment Resource API](?api/payres/swagger.yaml).
type: string type: string
enum: enum:
- BankCardReceiverResourceParams - BankCardReceiverResourceParams

View File

@ -8,7 +8,7 @@ properties:
description: | description: |
Тип ресурса отправителя средств. Тип ресурса отправителя средств.
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml). См. [Vality Payment Resource API](?api/payres/swagger.yaml).
type: string type: string
enum: enum:
- BankCardSenderResource - BankCardSenderResource

View File

@ -8,7 +8,7 @@ properties:
description: | description: |
Тип ресурса отправителя средств. Тип ресурса отправителя средств.
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml). См. [Vality Payment Resource API](?api/payres/swagger.yaml).
type: string type: string
enum: enum:
- BankCardSenderResourceParams - BankCardSenderResourceParams

View File

@ -1,24 +1,16 @@
swagger: '2.0' swagger: '2.0'
info: info:
version: '0.0.1' version: '0.1.0'
title: RBKmoney Wallet API title: Vality Wallet API
description: > description: >
RBKmoney Wallet API является базовой и единственной точкой взаимодействия с Vality Wallet API является базовой и единственной точкой взаимодействия с системой кошельков. Все изменения состояний системы осуществляются с помощью вызовов соответствующих методов API. Любые сторонние приложения, включая наши веб-сайты и другие UI-интерфейсы, являются внешними приложениями-клиентами.
платформой кошельков. Все изменения состояний платформы осуществляются с
помощью вызовов соответствующих методов API. Любые сторонние приложения,
включая наши веб-сайты и другие UI-интерфейсы являются внешними
приложениями-клиентами.
RBKmoney API работает поверх HTTP-протокола. Мы используем REST архитектуру, Vality API работает поверх HTTP-протокола. Мы используем REST архитектуру, схема описывается в соответствии с [OpenAPI 2.0](https://spec.openapis.org/oas/v2.0). Коды возврата описываются соответствующими HTTP-статусами. Система принимает и возвращает значения JSON в теле запросов и ответов.
схема описывается в соответствии со [Swagger](http://swagger.io/). Коды
возврата описываются соответствующими HTTP-статусами. Платформа принимает и
возвращает значения JSON в теле запросов и ответов.
## Формат содержимого ## Формат содержимого
Любой запрос к API должен выполняться в кодировке UTF-8 и с указанием Любой запрос к API должен выполняться в кодировке UTF-8 и с указанием содержимого в формате JSON.
содержимого в формате JSON.
``` ```
Content-Type: application/json; charset=utf-8 Content-Type: application/json; charset=utf-8
@ -26,7 +18,7 @@ info:
## Формат дат ## Формат дат
Платформа принимает значения date-time в формате, описанном в RFC 3339, например: Система принимает и возвращает значения отметок времени в формате `date-time`, описанном в [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339):
``` ```
2017-01-01T00:00:00Z 2017-01-01T00:00:00Z
@ -35,43 +27,37 @@ info:
## Максимальное время обработки запроса ## Максимальное время обработки запроса
К любому вызову методов API можно добавить параметр отсечки по времени, При любом обращении к API в заголовке `X-Request-Deadline` соответствующего запроса можно передать параметр отсечки по времени, определяющий максимальное время ожидания завершения операции по запросу:
определяющий максимальное время ожидания завершения операции по запросу.
Данная отсечка передается в соответствующем заголовке HTTP-запроса:
``` ```
X-Request-Deadline: 10s X-Request-Deadline: 10s
``` ```
Значение отсечки может быть задано в формате, описанном в RFC 3339 (см. [Формат дат](#section/Format-dat)), По истечении указанного времени система прекращает обработку запроса. Рекомендуется указывать значение не более одной минуты, но не менее трёх секунд.
либо в относительных величинах, например:
`150000ms`, `540s`, `3.5m` `X-Request-Deadline` может:
При этом возможные единицы измерения `ms`, `s`, `m`.
В обоих случаях не рекомендуется, чтобы задаваемое значение было * задаваться в формате `date-time` согласно [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339);
меньше **3 секунд** и превышало **1 минуту**. * задаваться в относительных величинах: в миллисекундах (`150000ms`), секундах (`540s`) или минутах (`3.5m`).
## Ошибки обработки запросов ## Ошибки обработки запросов
В процессе обработки запросов силами нашей платформы могут происходить В процессе обработки запросов силами нашей системы могут происходить различные непредвиденные ситуации. Об их появлении система сигнализирует по протоколу HTTP соответствующими [статусами][5xx], обозначающими ошибки сервера.
различные непредвиденные ситуации. Об их появлении платформа сигнализирует
по протоколу HTTP соответствующими [статусами][5xx], обозначающими ошибки
сервера.
| Код | Описание | | Код | Описание |
| ------- | ---------- | | ------- | ---------- |
| **500** | В процессе обработки платформой запроса возникла непредвиденная ситуация. При получении подобного кода ответа мы рекомендуем обратиться в техническую поддержку. | | **500** | В процессе обработки системой запроса возникла непредвиденная ситуация. При получении подобного кода ответа мы рекомендуем обратиться в техническую поддержку. |
| **503** | Платформа временно недоступна и не готова обслуживать данный запрос. Запрос гарантированно не выполнен, при получении подобного кода ответа попробуйте выполнить его позднее, когда доступность платформы будет восстановлена. | | **503** | Система временно недоступна и не готова обслуживать данный запрос. Запрос гарантированно не выполнен, при получении подобного кода ответа попробуйте выполнить его позднее, когда доступность системы будет восстановлена. |
| **504** | Платформа превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. | | **504** | Система превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. |
[5xx]: https://tools.ietf.org/html/rfc7231#section-6.6 [5xx]: https://tools.ietf.org/html/rfc7231#section-6.6
termsOfService: http://rbk.money/ termsOfService: 'https://vality.dev/'
contact: contact:
name: RBKmoney support team name: Команда техподдержки
email: support@rbk.money email: support@vality.dev
url: https://rbk.money url: 'https://api.vality.dev'
host: api.rbk.money host: api.vality.dev
basePath: /wallet/v0 basePath: /wallet/v0
schemes: schemes:
- https - https
@ -85,11 +71,10 @@ securityDefinitions:
name: Authorization name: Authorization
in: header in: header
description: > description: >
Для аутентификации вызовов мы используем [JWT](https://jwt.io). Для аутентификации вызовов мы используем [JWT](https://jwt.io). Соответствующий ключ передается в заголовке.
Cоответствующий ключ передается в заголовке.
```shell ```shell
Authorization: Bearer {TOKENIZATION|PRIVATE_JWT} Authorization: Bearer {YOUR_API_KEY_JWT}
``` ```
security: security:
@ -142,15 +127,6 @@ parameters:
maxLength: 40 maxLength: 40
minLength: 1 minLength: 1
challengeID:
name: challengeID
in: path
description: Идентификатор процедуры идентификации личности
required: true
type: string
maxLength: 40
minLength: 1
walletID: walletID:
name: walletID name: walletID
in: path in: path
@ -322,12 +298,6 @@ parameters:
tags: tags:
- name: Payment Resources
x-displayName: Платёжные ресурсы
description: >
Платформа предоставляет возможность токенизации исходных данных пользовательских платёжных ресурсов.
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
- name: Providers - name: Providers
x-displayName: Провайдеры услуг x-displayName: Провайдеры услуг
description: "" description: ""
@ -365,27 +335,19 @@ tags:
description: "" description: ""
- name: W2W - name: W2W
x-displayName: Переводы внутри платформы x-displayName: Переводы внутри системы
description: "Переводы средств между кошельками внутри платформы" description: "Переводы средств между кошельками внутри системы"
- name: Webhooks - name: Webhooks
x-displayName: Webhooks x-displayName: Webhooks
description: > description: >
## RBKmoney Webhooks Management API ## Vality Webhooks Management API
В данном разделе описаны методы, позволяющие управлять Webhook'ами, или В данном разделе описаны методы, позволяющие управлять Webhook'ами, или инструментами для получения асинхронных оповещений посредством HTTP-запросов при наступлении одного или группы интересующих вас событий, например, о том, что выплата в рамках созданного кошелька была успешно проведена.
инструментами для получения асинхронных оповещений посредством
HTTP-запросов при наступлении одного или группы интересующих вас событий,
например, о том, что выплата в рамках созданного кошелька была успешно
проведена.
## RBKmoney Webhooks Events API ## Vality Webhooks Events API
Внимание! Только Webhooks Management API является частью платформы Внимание! Только Webhooks Management API является частью системы Vality, а следовательно и данной спецификации. Для реализации обработчика присылаемых уведомлений вам необходимо будет ознакомиться с OpenAPI-спецификацией [Vality Wallets Webhook Events API](https://vality.github.io/swag-wallets-webhook-events/).
RBKmoney, а следовательно и данной спецификации. Для реализации
обработчика присылаемых уведомлений вам необходимо будет ознакомиться со
Swagger-спецификацей [RBKmoney Wallet Webhooks Events
API](https://rbkmoney.github.io/wallet-webhook-events-api/).
- name: Error Codes - name: Error Codes
x-displayName: Коды ошибок x-displayName: Коды ошибок
@ -399,5 +361,4 @@ tags:
| InvalidReceiverResource| Неверный получатель перевода (введен номер несуществующей карты и т.п.) | | InvalidReceiverResource| Неверный получатель перевода (введен номер несуществующей карты и т.п.) |
| InsufficientFunds | Недостаточно средств на счете банковской карты | | InsufficientFunds | Недостаточно средств на счете банковской карты |
| PreauthorizationFailed | Предварительная авторизация отклонена (введен неверный код 3D-Secure, на форме 3D-Secure нажата ссылка отмены) | | PreauthorizationFailed | Предварительная авторизация отклонена (введен неверный код 3D-Secure, на форме 3D-Secure нажата ссылка отмены) |
| RejectedByIssuer | Перевод отклонён эмитентом (установлены запреты по стране списания, запрет на покупки в интернете, платёж отклонен антифродом эмитента и т.п.) | | RejectedByIssuer | Перевод отклонён эмитентом (установлены запреты по стране списания, запрет на покупки в интернете, платеж отклонен антифродом эмитента и т.п.) |

View File

@ -1,14 +1,14 @@
var gulp = require('gulp'); const gulp = require('gulp');
var util = require('gulp-util') const util = require('gulp-util');
var gulpConnect = require('gulp-connect'); const gulpConnect = require('gulp-connect');
var connect = require('connect'); const connect = require('connect');
var cors = require('cors'); const cors = require('cors');
var path = require('path'); const exec = require('child_process').exec;
var exec = require('child_process').exec; const portfinder = require('portfinder');
var portfinder = require('portfinder'); const swaggerRepo = require('swagger-repo');
var swaggerRepo = require('swagger-repo');
var DIST_DIR = 'dist'; const DIST_DIR = 'dist';
const SPEC_DIR = 'spec';
gulp.task('build', function (cb) { gulp.task('build', function (cb) {
exec('npm run build', function (err, stdout, stderr) { exec('npm run build', function (err, stdout, stderr) {
@ -17,22 +17,22 @@ gulp.task('build', function (cb) {
}); });
}); });
gulp.task('edit', function () { gulp.task('edit', function () {
portfinder.getPort({ port: 5000 }, function (err, port) { portfinder.getPort({ port: 5000 }, function (err, port) {
var app = connect(); let app = connect();
app.use(swaggerRepo.swaggerEditorMiddleware()); app.use(swaggerRepo.swaggerEditorMiddleware());
app.listen(port); app.listen(port);
util.log(util.colors.green('swagger-editor started http://localhost:' + port)); util.log(util.colors.green('swagger-editor started http://localhost:' + port));
}); });
}); });
gulp.task('reload', gulp.series('build', function () { gulp.task('reload', gulp.series('build', function () {
gulp.src(DIST_DIR).pipe(gulpConnect.reload()) gulp.src(DIST_DIR).pipe(gulpConnect.reload())
})); }));
gulp.task('watch', function () { gulp.task('watch', function () {
gulp.watch(['api/**/*', 'spec/**/*', 'web/**/*'], gulp.series('reload')); gulp.watch([`${SPEC_DIR}/**/*`, 'web/**/*'], gulp.series('reload'));
}); });
gulp.task('serve', gulp.parallel('build', 'edit', 'watch', function () { gulp.task('serve', gulp.parallel('build', 'edit', 'watch', function () {

13105
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,14 @@
{ {
"name": "rbkmoney-wallet-api-spec", "name": "vality-wallet-openapi-spec",
"version": "0.0.1", "version": "0.1.0",
"dependencies": { "dependencies": {
"bower": "^1.7.7", "bower": "^1.7.7",
"connect": "^3.4.1", "connect": "^3.4.1",
"cors": "^2.7.1", "cors": "^2.7.1",
"gulp": "^4.0.2",
"gulp-connect": "^4.2.0", "gulp-connect": "^4.2.0",
"gulp-util": "^3.0.7", "gulp-util": "^3.0.7",
"json-merge-patch": "^0.2.3", "json-merge-patch": "^0.2.3",
"npm": "^5.7.1", "npm": "^8.1.3",
"portfinder": "^1.0.3", "portfinder": "^1.0.3",
"shelljs": "^0.7.0", "shelljs": "^0.7.0",
"swagger-repo": "^1.5.1", "swagger-repo": "^1.5.1",
@ -19,7 +18,10 @@
"scripts": { "scripts": {
"build": "node ./scripts/build.js", "build": "node ./scripts/build.js",
"swagger": "swagger-repo", "swagger": "swagger-repo",
"test": "swagger-repo validate --basedir api/wallet/spec/ && swagger-repo validate --basedir api/privdoc/spec/ && swagger-repo validate --basedir api/payres/spec/", "test": "swagger-repo validate --basedir api/wallet/spec/ && swagger-repo validate --basedir api/payres/spec/",
"start": "gulp serve" "start": "gulp serve"
},
"devDependencies": {
"gulp": "github:gulpjs/gulp"
} }
} }

View File

@ -16,7 +16,6 @@ properties:
- NoMatch - NoMatch
- InvalidResourceToken - InvalidResourceToken
- InvalidToken - InvalidToken
- AmbiguousPartyID
example: NotFound example: NotFound
name: name:
description: Имя или идентификатор элемента сообщения, содержащего недопустимые данные description: Имя или идентификатор элемента сообщения, содержащего недопустимые данные

View File

@ -2,11 +2,10 @@
<html> <html>
<head> <head>
<title>RBKmoney Wallets API</title> <title>Vality Wallets API</title>
<!-- needed for adaptive design --> <!-- needed for adaptive design -->
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js">
</script> </script>
<!-- <!--