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
 | 
