434 lines
9.2 KiB
YAML
434 lines
9.2 KiB
YAML
basePath: /v1
|
|
definitions:
|
|
database.Group:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
issuer:
|
|
$ref: '#/definitions/database.User'
|
|
issuerID:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
permissions:
|
|
items:
|
|
$ref: '#/definitions/database.GroupPermission'
|
|
type: array
|
|
updatedAt:
|
|
type: string
|
|
users:
|
|
items:
|
|
$ref: '#/definitions/database.User'
|
|
type: array
|
|
type: object
|
|
database.GroupPermission:
|
|
properties:
|
|
value:
|
|
type: integer
|
|
type: object
|
|
database.User:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
type: string
|
|
email:
|
|
type: string
|
|
group:
|
|
$ref: '#/definitions/database.Group'
|
|
groupID:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
isActive:
|
|
type: boolean
|
|
isRequiredToSetPassword:
|
|
type: boolean
|
|
lastLogin:
|
|
type: string
|
|
passwordLength:
|
|
type: integer
|
|
realName:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
types.AuthBody:
|
|
properties:
|
|
email:
|
|
example: john@proton.mail
|
|
type: string
|
|
password:
|
|
example: Aasdfg1!
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
type: object
|
|
types.Cursor:
|
|
properties:
|
|
count:
|
|
type: integer
|
|
currentPage:
|
|
type: integer
|
|
totalPages:
|
|
type: number
|
|
totalRows:
|
|
type: number
|
|
type: object
|
|
types.JSONPagination:
|
|
properties:
|
|
cursor:
|
|
$ref: '#/definitions/types.Cursor'
|
|
data: {}
|
|
type: object
|
|
types.ManyIDs:
|
|
properties:
|
|
array:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
required:
|
|
- array
|
|
type: object
|
|
types.NewCredentials:
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
info:
|
|
contact:
|
|
name: https://peresvet.it
|
|
title: System Trace API
|
|
version: "1.0"
|
|
paths:
|
|
/auth/login:
|
|
post:
|
|
description: Returns pair of access and refresh tokens
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.AuthBody'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Request pair of tokens
|
|
tags:
|
|
- auth
|
|
/groups:
|
|
delete:
|
|
description: Delete groups by ID
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.ManyIDs'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Delete many groups
|
|
tags:
|
|
- groups
|
|
get:
|
|
description: Returns array of groups and count
|
|
parameters:
|
|
- description: Count of rows
|
|
in: query
|
|
maximum: 100
|
|
minimum: 10
|
|
name: count
|
|
required: true
|
|
type: integer
|
|
- description: Rows to skip
|
|
in: query
|
|
name: offset
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.JSONPagination'
|
|
summary: Get groups (with pagination)
|
|
tags:
|
|
- groups
|
|
patch:
|
|
description: Update group with specified data
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/database.Group'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Update group
|
|
tags:
|
|
- groups
|
|
post:
|
|
description: Create group with specified data
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/database.Group'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Create group
|
|
tags:
|
|
- groups
|
|
/groups/:id:
|
|
delete:
|
|
description: Delete group by ID
|
|
parameters:
|
|
- description: Group ID
|
|
in: path
|
|
minimum: 1
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Delete group
|
|
tags:
|
|
- groups
|
|
get:
|
|
description: Returns group instance
|
|
parameters:
|
|
- description: Group ID
|
|
in: path
|
|
minimum: 1
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/database.Group'
|
|
summary: Get group by ID
|
|
tags:
|
|
- groups
|
|
/permissions:
|
|
get:
|
|
description: Returns key-value map with permissions
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
summary: Get list of permissions
|
|
/users:
|
|
delete:
|
|
description: Delete users by ID
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.ManyIDs'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Delete many users
|
|
tags:
|
|
- users
|
|
get:
|
|
description: Returns array of users and count
|
|
parameters:
|
|
- description: Count of rows
|
|
in: query
|
|
maximum: 100
|
|
minimum: 10
|
|
name: count
|
|
required: true
|
|
type: integer
|
|
- description: Rows to skip
|
|
in: query
|
|
name: offset
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.JSONPagination'
|
|
summary: Get users (with pagination)
|
|
tags:
|
|
- users
|
|
patch:
|
|
description: Update user with specified data
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/database.User'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Update user
|
|
tags:
|
|
- users
|
|
post:
|
|
description: Create user with specified data
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/database.User'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.NewCredentials'
|
|
summary: Create user
|
|
tags:
|
|
- users
|
|
/users/:id:
|
|
delete:
|
|
description: Delete user by ID
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
minimum: 1
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Delete user
|
|
tags:
|
|
- users
|
|
get:
|
|
description: Returns user instance
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
minimum: 1
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/database.User'
|
|
summary: Get user by ID
|
|
tags:
|
|
- users
|
|
/users/block:
|
|
patch:
|
|
description: Block users by ID
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.ManyIDs'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Block many users
|
|
tags:
|
|
- users
|
|
/users/password/:id:
|
|
patch:
|
|
description: Reset user password by user ID
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
minimum: 1
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.NewCredentials'
|
|
summary: Reset user password
|
|
tags:
|
|
- users
|
|
/users/unblock:
|
|
patch:
|
|
description: Unblock users by ID
|
|
parameters:
|
|
- description: Request body
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.ManyIDs'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
summary: Unblock many users
|
|
tags:
|
|
- users
|
|
securityDefinitions:
|
|
accessToken=...;refreshToken=...:
|
|
in: header
|
|
name: Cookie
|
|
type: apiKey
|
|
swagger: "2.0"
|