81 lines
3.2 KiB
Ruby
81 lines
3.2 KiB
Ruby
# encoding: UTF-8
|
|
# frozen_string_literal: true
|
|
|
|
module API
|
|
module V2
|
|
module Management
|
|
class Mount < Grape::API
|
|
PREFIX = '/management'
|
|
|
|
format :json
|
|
content_type :json, 'application/json'
|
|
default_format :json
|
|
|
|
do_not_route_options!
|
|
|
|
helpers Management::Helpers
|
|
|
|
before { set_ets_context! }
|
|
|
|
rescue_from Management::Exceptions::Base do |e|
|
|
Management::Mount.logger.error { e.inspect }
|
|
error!(e.message, e.status, e.headers)
|
|
end
|
|
|
|
rescue_from Grape::Exceptions::ValidationErrors do |e|
|
|
Management::Mount.logger.error { e.inspect }
|
|
Management::Mount.logger.debug { e.full_messages }
|
|
error!(e.message, 422)
|
|
end
|
|
|
|
rescue_from ActiveRecord::RecordNotFound do |e|
|
|
Management::Mount.logger.error { e.inspect }
|
|
error!('Couldn\'t find record.', 404)
|
|
end
|
|
|
|
use Management::JWTAuthenticationMiddleware
|
|
|
|
mount Management::Accounts
|
|
mount Management::Deposits
|
|
mount Management::Withdraws
|
|
mount Management::Tools
|
|
mount Management::Operations
|
|
mount Management::Orders
|
|
mount Management::Transfers
|
|
mount Management::Trades
|
|
mount Management::Members
|
|
mount Management::TradingFees
|
|
mount Management::Currencies
|
|
mount Management::Markets
|
|
mount Management::Beneficiaries
|
|
mount Management::PaymentAddress
|
|
mount Management::Engines
|
|
|
|
# The documentation is accessible at http://localhost:3000/swagger?url=/api/v2/management/swagger
|
|
# Add swagger documentation for Peatio Management API
|
|
add_swagger_documentation base_path: File.join(API::Mount::PREFIX, API::V2::Mount::API_VERSION, PREFIX, 'peatio'),
|
|
add_base_path: true,
|
|
mount_path: '/swagger',
|
|
api_version: API::V2::Mount::API_VERSION,
|
|
doc_version: Peatio::Application::VERSION,
|
|
info: {
|
|
title: "Peatio Management API #{API::V2::Mount::API_VERSION}",
|
|
description: 'Management API is server-to-server API with high privileges.',
|
|
contact_name: 'openware.com',
|
|
contact_email: 'hello@openware.com',
|
|
contact_url: 'https://www.openware.com',
|
|
licence: 'MIT',
|
|
license_url: 'https://github.com/openware/peatio/blob/master/LICENSE.md'
|
|
},
|
|
models: [
|
|
API::V2::Management::Entities::Balance,
|
|
API::V2::Management::Entities::Deposit,
|
|
API::V2::Management::Entities::Withdraw,
|
|
API::V2::Management::Entities::Operation,
|
|
API::V2::Management::Entities::Engine
|
|
]
|
|
end
|
|
end
|
|
end
|
|
end
|