436 lines
11 KiB
Ruby
436 lines
11 KiB
Ruby
require 'swagger/blocks'
|
|
|
|
require_relative 'devops_error'
|
|
require_relative 'devops_response'
|
|
|
|
module Devops
|
|
module API3
|
|
module Docs
|
|
class UserRoutes
|
|
|
|
include Swagger::Blocks
|
|
|
|
swagger_schema :UserResponse do
|
|
allOf do
|
|
schema do
|
|
key :'$ref', :DevopsResponse
|
|
end
|
|
schema do
|
|
property :id do
|
|
key :type, :string
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_schema :UserObject do
|
|
allOf do
|
|
schema do
|
|
key :'$ref', :UserObjectCommon
|
|
end
|
|
schema do
|
|
property :created_at do
|
|
key :type, :integer
|
|
key :format, :int64
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_schema :UserObjectInput do
|
|
allOf do
|
|
schema do
|
|
key :'$ref', :UserObjectCommon
|
|
end
|
|
schema do
|
|
property :password do
|
|
key :type, :string
|
|
key :maxLength, 31
|
|
key :minLength, 5
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_schema :UserEmailBody do
|
|
key :required, [:email]
|
|
property :email do
|
|
key :type, :string
|
|
end
|
|
end
|
|
|
|
swagger_schema :UserPasswordBody do
|
|
key :required, [:password]
|
|
property :password do
|
|
key :type, :string
|
|
key :maxLength, 31
|
|
key :minLength, 5
|
|
end
|
|
end
|
|
|
|
swagger_schema :UserBodyToUpdate do
|
|
allOf do
|
|
schema do
|
|
key :'$ref', :UserEmailBody
|
|
end
|
|
schema do
|
|
key :'$ref', :UserPasswordBody
|
|
end
|
|
schema do
|
|
property :roles do
|
|
key :type, :array
|
|
items do
|
|
key :type, :string
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_schema :UserObjectCommon do
|
|
key :required, [:id, :email, :roles]
|
|
property :id do
|
|
key :type, :string
|
|
key :pattern, "^[\w-]{1,100}$"
|
|
key :maxLength, 100
|
|
end
|
|
property :email do
|
|
key :type, :string
|
|
end
|
|
property :roles do
|
|
key :type, :array
|
|
items do
|
|
key :type, :string
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/users" do
|
|
operation :get do
|
|
key :description, 'Get users list'
|
|
key :operationId, 'getUsers'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
response 200 do
|
|
key :description, 'Users list'
|
|
schema do
|
|
key :type, :array
|
|
items do
|
|
key :'$ref', :UserObject
|
|
end
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}" do
|
|
operation :get do
|
|
key :description, 'Get user by id'
|
|
key :operationId, 'getUserById'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User'
|
|
schema do
|
|
key :'$ref', :UserObject
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user" do
|
|
operation :post do
|
|
key :description, 'Create new user'
|
|
key :operationId, 'createUser'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :user
|
|
key :in, :body
|
|
key :description, 'New user'
|
|
key :required, true
|
|
schema do
|
|
key :'$ref', :UserObjectInput
|
|
end
|
|
end
|
|
response 201 do
|
|
key :description, 'Create user response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}/roles/add" do
|
|
operation :post do
|
|
key :description, 'Add roles to user'
|
|
key :operationId, 'addRolesToUser'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
parameter do
|
|
key :name, :roles
|
|
key :in, :body
|
|
key :description, 'Roles list'
|
|
key :required, true
|
|
schema do
|
|
key :type, :array
|
|
items do
|
|
key :type, :string
|
|
end
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}/roles/delete" do
|
|
operation :post do
|
|
key :description, 'Delete roles from user'
|
|
key :operationId, 'deleteRolesFromUser'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
parameter do
|
|
key :name, :roles
|
|
key :in, :body
|
|
key :description, 'Roles list'
|
|
key :required, true
|
|
schema do
|
|
key :type, :array
|
|
items do
|
|
key :type, :string
|
|
end
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}/email" do
|
|
operation :put do
|
|
key :description, 'Update user email'
|
|
key :operationId, 'userEmail'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
parameter do
|
|
key :name, :email
|
|
key :in, :body
|
|
key :description, 'New email'
|
|
key :required, true
|
|
schema do
|
|
key :'$ref', :UserEmailBody
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}/password" do
|
|
operation :put do
|
|
key :description, 'Update user password'
|
|
key :operationId, 'userPassword'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
parameter do
|
|
key :name, :password
|
|
key :in, :body
|
|
key :description, 'New password'
|
|
key :required, true
|
|
schema do
|
|
key :'$ref', :UserPasswordBody
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}" do
|
|
operation :delete do
|
|
key :description, 'Delete user by id'
|
|
key :operationId, 'deleteUserById'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
swagger_path "/user/{id}" do
|
|
operation :put do
|
|
key :description, 'Update user by id'
|
|
key :operationId, 'updateUserById'
|
|
key :tags, [
|
|
'user'
|
|
]
|
|
parameter do
|
|
key :name, :id
|
|
key :in, :path
|
|
key :description, 'User id'
|
|
key :required, true
|
|
schema do
|
|
key :type, :string
|
|
end
|
|
end
|
|
parameter do
|
|
key :name, :user_data
|
|
key :in, :body
|
|
key :description, 'User data to update'
|
|
key :required, true
|
|
schema do
|
|
key :'$ref', :UserBodyToUpdate
|
|
end
|
|
end
|
|
response 200 do
|
|
key :description, 'User response'
|
|
schema do
|
|
key :'$ref', :UserResponse
|
|
end
|
|
end
|
|
response :default do
|
|
key :description, 'error'
|
|
schema do
|
|
key :'$ref', :DevopsError
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|