Files
api/v2/swagger.yaml
T

6972 lines
214 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
openapi: 3.0.1
info:
version: 2.0.0
title: HRBox Mobile API
description: |
HRBox mobile app API
Since HRBOX is multi-tenant application you need to find out domain and endpoint to start working with this API
(Option 1) QR-code will contain this info - hrbox://bind/?url={url} where {url} will be url to /mobile/bind method. You should make POST request to this URL sending "device" param in body just like described in /mobile/bind method. In the response you will find endpoint
(Option 2) Manual bind - user will provide you with {domain} {email} and {password} and you should send this info to https://{domain}/api/v2/mobile/manual-bind like described in /mobile/manual-bind method. In the response you will find endpoint
Once you will get endpoint and tenantId, use it in every request you make, using endpoint as base path, and passing tenantId as header "x-hrbox-tenant-id: {tenantId}"
To authorize you session, make call to {endpoint}/mobile/auth sending "x-hrbox-tenant-id: {tenantId}" header, and sending body that described in /mobile/auth method
To sign your requests with session id, pass following headers with each request:
x-hrbox-tenant-id: {tenantId}
x-hrbox-device-id: {deviceId}
x-hrbox-session-id: {sessionId}
x-hrbox-session-code: {sessionSecret}
x-hrbox-embed: true
{tenantId} - you will get this form /mobile/auth or /mobile/bind methods
{sessionId} - you will get this form /mobile/auth method
{sessionSecret} - you will get this form /mobile/auth method
the last one (x-hrbox-embed) is for opening web pages in WebView to remove website footer and header
contact:
email: yuriy@hrbox.io
tags:
- name: mobile
description: Binding device and authorizing
- name: account
description: Methods for getting current user data (assignments, notifications etc.)
- name: department
description: Methods for browsing and searching through Org Structure
- name: user
description: Methods for getting user and employment information
- name: employment
description: Methods for user employment
- name: article
description: Methods News, Categories and Articles
- name: postcard
description: Methods for working with postcards
- name: dashboard
description: Methods for getting dashboards and widgets data
- name: user-status
description: Methods for getting user statuses data
- name: comment
description: Methods for working with comments
- name: category
description: Methods for working with categories. Требуется право доступа show-content-categories "Видеть категории".
- name: wallet
description: Methods for working with user wallet.
- name: shop
description: Methods for working with corporate shop. Требуется право доступа shop-usage "Магазин".
paths:
/mobile/bind/{id}/{token}:
post:
tags:
- mobile
summary: Bind device by token. This URL will be taken by parsing QR code
operationId: mobileBind
parameters:
- name: id
in: path
description: ID
schema:
type: string
required: true
- name: token
in: path
description: ID
schema:
type: string
required: true
requestBody:
description: Device info
required: true
content:
application/json:
schema:
type: object
properties:
device:
$ref: '#/components/schemas/device'
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
properties:
accountSecret:
$ref: '#/components/schemas/accountSecret'
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
403:
description: Invalid id or token
/mobile/request-two-factor:
post:
tags:
- mobile
summary: Запросить код двухфакторной аутентификации. Код будет выслан если она включена.
operationId: mobileRequestTwoFactor
requestBody:
description: Email Password and Device info. Also Code if 2FAuth enabled.
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
format: email
password:
type: string
format: password
responses:
200:
description: Если Двухфакторная аутентификация включена и код был выслан то в ответе будет codeRequired = true иначе codeRequired=false
content:
application/json:
schema:
type: object
properties:
codeRequired:
type: boolean
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
delayTime:
type: number
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/mobile/manual-bind:
post:
tags:
- mobile
summary: Bind device by user's email and password
operationId: mobileManualBind
requestBody:
description: Email Password and Device info. Also Code if 2FAuth enabled.
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
format: email
password:
type: string
format: password
code:
type: string
format: password
description: two-factor authorization code
device:
$ref: '#/components/schemas/device'
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
properties:
accountSecret:
$ref: '#/components/schemas/accountSecret'
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/mobile/auth:
post:
tags:
- mobile
summary: Authorize user by accountSecret that you got from /mobile/bind or /mobile/manual-bind
operationId: mobileAuth
requestBody:
description: secret, userId and deviceId
required: true
content:
application/json:
schema:
type: object
properties:
secret:
type: string
format: email
userId:
type: string
deviceId:
type: string
responses:
200:
description: successful authorization
content:
application/json:
schema:
type: object
properties:
sessionId:
type: string
sessionSecret:
type: string
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
401:
description: Authorization failed, secret is invalid
404:
description: Device not found
500:
description: Server Error
/mobile/save-push-token:
post:
tags:
- mobile
summary: Save Firebase push token to server
operationId: mobileSavePushToken
requestBody:
description: token - the token that you get from Firebase Cloud Messaging. Provider should be "firebase", not other providers supported for now. deviceId - same device id that you used in bind or auth
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
provider:
type: string
default: firebase
deviceId:
type: string
responses:
200:
description: push token successfully saved
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
default: true
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/mobile/unbind:
post:
tags:
- mobile
summary: Unbind device by deviceId
operationId: mobileUnbind
parameters:
- name: deviceId
in: query
description: ID
schema:
type: string
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
type: object
properties:
tenantInfo:
$ref: '#/components/schemas/tenantInfo'
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/mobile/tenant-info:
get:
tags:
- mobile
summary: Get tenant info.
operationId: tenantInfo
responses:
200:
description: Tenant info data.
content:
application/json:
schema:
$ref: '#/components/schemas/tenantInfo'
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/user/profile:
get:
tags:
- user
summary: Get User's profile info
operationId: userProfile
parameters:
- name: id
in: query
description: User ID
schema:
type: string
required: true
responses:
200:
description: User profile data
content:
application/json:
schema:
$ref: '#/components/schemas/userProfile'
400:
description: Invalid input (malformed id)
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: User not found
500:
description: Server Error
/user/items:
get:
tags:
- user
summary: User items.
operationId: /user/items/actionItems
parameters:
- name: q
in: query
schema:
type: string
responses:
200:
description: User items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
faceUrl:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/employment/index:
get:
tags:
- employment
summary: Get User's employments info
responses:
200:
description: User employments data
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/fullEmployment'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: User not found
500:
description: Server Error
/employment/set-main:
post:
tags:
- employment
summary: Set main employment
operationId: /calendar-event-request
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
employment_id:
type: string
format: uuid
description: User employment ID
responses:
200:
description: User employments data
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: {
"type": "success",
"text": "Запись установлена основной!"
}
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
default: null
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: User not found
500:
description: Server Error
/user-group/items:
get:
tags:
- userGroup
summary: User group items.
operationId: /user-group/items/actionItems
parameters:
- name: q
in: query
description: Query string
schema:
type: string
example: Some text
- name: only_with_calendar_events
in: query
description: Only used in calendar event
example: 0
schema:
type: integer
enum:
- 0
- 1
responses:
200:
description: User group items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
faceUrl:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/meeting-place/items:
get:
tags:
- meetingPlace
summary: Meting place items.
operationId: actionMeetingPlace
parameters:
- name: q
in: query
description: Query string
schema:
type: string
example: Some text
responses:
200:
description: Meting place items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/account/status-text:
post:
tags:
- account
summary: Set user's status text
operationId: accountStatusText
requestBody:
description: User's status text
required: true
content:
application/json:
schema:
type: object
properties:
activeTypes:
type: string
responses:
200:
description: status text saved
content:
application/json:
schema:
type: object
properties:
activeTypes:
type: string
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/account/status-active-types:
post:
tags:
- account
summary: Set user's active statuses
operationId: accountStatusActiveTypes
requestBody:
description: User's active statuses
required: true
content:
application/json:
schema:
type: object
properties:
activeTypes:
type: array
items:
type: string
responses:
200:
description: user's active statuses saved
content:
application/json:
schema:
type: object
properties:
statusTypes:
type: array
items:
type: string
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/notifications/pushes:
get:
tags:
- notifications
summary: Push notifications index. Infinite scroll done by paginating with {page} parameter
operationId: notificationPushes
parameters:
- name: per-page
in: query
description: How many items return in one page (default 10).
schema:
type: string
- name: page
in: query
description: Current page.
schema:
type: string
responses:
200:
description: Returns array of push notifications and pagination related data
content:
application/json:
schema:
type: object
properties:
_meta:
$ref: '#/components/schemas/_meta'
data:
type: array
items:
$ref: '#/components/schemas/notification'
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/notifications/mark-seen:
post:
tags:
- notifications
summary: Mark notification as seen
operationId: notificationMarkSeen
parameters:
- in: query
name: notificationId
description: notificationId
schema:
type: string
required: true
responses:
200:
description: Notification marked as seen
content:
application/json:
schema:
type: object
properties:
badge:
type: number
description: unseen notification count
date:
type: string
format: date
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/notifications/mark-seen-all:
post:
tags:
- notifications
summary: Mark all notifications as seen
operationId: notificationMarkSeenAll
responses:
200:
description: All marked as seen
content:
application/json:
schema:
type: object
properties:
badge:
type: number
description: unseen notification count
date:
type: string
format: date
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/department/tree-node:
get:
tags:
- department
summary: Get departments inner structure
operationId: departmentTreeNode
parameters:
- name: id
in: query
description: Parent department ID
schema:
type: string
responses:
200:
description: Department children (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employmentsCount], [empty] - are "department" only properties.
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: "Department name"
path:
type: string
default: "Department hierarchy path"
items:
type: array
items:
$ref: '#/components/schemas/structureItem'
400:
description: Invalid input (malformed id)
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: Department not found
500:
description: Server Error
/department/search:
get:
tags:
- department
summary: Search Org Structure for matching users and departments
operationId: departmentSearch
parameters:
- name: q
in: query
description: Query string
schema:
type: string
responses:
200:
description: Search results (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employmentsCount], [empty] - are "department" only properties.
content:
application/json:
schema:
type: object
properties:
q:
type: string
example: "Search query string"
items:
type: array
items:
$ref: '#/components/schemas/structureItem'
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/postcard/user-view:
get:
tags:
- postcard
summary: Details about postcard sent to user
operationId: postcardUserView
parameters:
- name: id
in: query
description: UserPostcard item ID
schema:
type: string
required: true
responses:
200:
description: Postcard details
content:
application/json:
schema:
$ref: '#/components/schemas/userPostcard'
400:
description: Invalid input (malformed id)
401:
description: Unauthorized request
403:
description: Unauthorized request
404:
description: Postcard not found
500:
description: Server Error
/article/news:
get:
tags:
- article
summary: News index. Infinite scroll done by paginating with {page} parameter
operationId: articleNews
parameters:
- name: per-page
in: query
description: How many items return in one page (default 10).
schema:
type: string
- name: page
in: query
description: Current page
schema:
type: string
responses:
200:
description: Returns array of news and pagination related data
content:
application/json:
schema:
type: object
properties:
_meta:
$ref: '#/components/schemas/_meta'
data:
type: array
items:
$ref: '#/components/schemas/article'
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/article/category:
get:
tags:
- article
summary: Browse or search catalog categories. Displays catalog items which can be category or article
operationId: articleCategory
parameters:
- name: id
in: query
description: ID of category
schema:
type: string
- name: q
in: query
description: Search query string
schema:
type: string
responses:
200:
description: Contents of category or search results (categories and articles). entity="category" - means category node, entity="article" - means article node. Category id can be used in /article/category method to browse its content
content:
application/json:
schema:
type: object
properties:
category:
type: object
description: Current category
properties:
id:
type: string
format: uuid
title:
type: string
default: "Current category name"
q:
type: string
default: "Search query string"
items:
type: array
items:
$ref: '#/components/schemas/catalogItem'
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/dashboard:
get:
tags:
- dashboard
summary: Get dashboards and widgets by specifying needed widgets through get parameter. Personal user feed widgets starts with "my" prefix. Global company feed widgets starts with "upd" prefix
operationId: dashboard
parameters:
- name: widgets
in: query
description: Names of required widgets separated with comma.
example: myLms,mySurvey,myAchievements,myTeam,myFavorites,myPostcards
schema:
type: string
enum:
- myLms
- mySurvey
- myAchievements
- myTeam
- myFavorites
- myPostcards
- updNews
- updVoting
- updIdeas
- updAchievements
- updBirthday
- updNewbies
- updBooks
- name: info
in: query
description: >
Names of required info separated with comma.
* `profileBrief` - Current user brief info
* `notificationsBadge` - Current notification bell badge value
example: profileBrief,notificationsBadge
schema:
type: string
enum:
- profileBrief
- notificationsBadge
responses:
200:
description: Returns all the dashboard data about requested widgets. In response object only requested info/widgets keys will be presented. If widget is not available for current user, this widget will not exists in response of will be null.
content:
application/json:
schema:
type: object
properties:
profileBrief:
$ref: '#/components/schemas/profileBrief'
notificationsBadge:
description: Current notification bell badge value
type: integer
default: 0
widgets:
type: object
properties:
myLms:
# description: User feed - Assigned test and courses
$ref: '#/components/schemas/dashboardWidget'
mySurvey:
# description: User feed - Assigned surveys
$ref: '#/components/schemas/dashboardWidget'
myAchievements:
# description: User feed - Assigned achievements
$ref: '#/components/schemas/dashboardWidget'
myTeam:
# description: User feed - Teammates of current user
$ref: '#/components/schemas/dashboardWidget'
myFavorites:
# description: User feed - Favorites (in development, not used)
$ref: '#/components/schemas/dashboardWidget'
myPostcards:
# description: User feed - Received postcards
$ref: '#/components/schemas/dashboardWidget'
updNews:
# description: Company feed - New news
$ref: '#/components/schemas/dashboardWidget'
updVoting:
# description: Company feed - New contests
$ref: '#/components/schemas/dashboardWidget'
updIdeas:
# description: Company feed - New ideas
$ref: '#/components/schemas/dashboardWidget'
updAchievements:
# description: Company feed - New achievements achieved by users
$ref: '#/components/schemas/dashboardWidget'
updBirthday:
# description: Company feed - Users that have birthday today
$ref: '#/components/schemas/dashboardWidget'
updNewbies:
# description: Company feed - Recently employed employees
$ref: '#/components/schemas/dashboardWidget'
updBooks:
# description: Company feed - New books in library
$ref: '#/components/schemas/dashboardWidget'
400:
description: Invalid input
401:
description: Unauthorized request
403:
description: Unauthorized request
500:
description: Server Error
/feedback/add:
post:
tags:
- feedback
operationId: actionAdd
summary: Creates a feedback about a department or user.
requestBody:
description: <b>userId</b> - User ID from which the feedback will be created.<br><b>type</b> - Entity type (department, user).<br><b>id</b> - Entity id.<br><b>score</b> - Feedback score from 1 to 5.<br><b>text</b> - Feedback text.<br><b>isAnonymous</b> - Anonymous feedback.
required: true
content:
application/json:
schema:
type: object
properties:
userId:
description: User ID from which the feedback will be created.
type: string
example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d
type:
description: Entity type.
type: string
enum:
- department
- user
example: department
# required: true
id:
description: Entity id.
type: string
example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d
# required: true
score:
description: Feedback score.
type: number
minimum: 1
maximum: 5
example: 5
# required: true
text:
description: Feedback text.
type: string
example: Example text.
# required: true
isAnonymous:
description: Anonymous feedback.
type: boolean
example: true
default: false
responses:
200:
description: Returns the success status and data of the generated feedback.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
feedback:
$ref: '#/components/schemas/feedback'
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
/feedback/view:
get:
tags:
- feedback
summary: Details about feedback.
operationId: /feedback/view
parameters:
- name: id
in: query
description: Feedback item ID.
schema:
type: string
required: true
responses:
200:
description: Feedback details.
content:
application/json:
schema:
$ref: '#/components/schemas/feedback'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Feedback not found.
500:
description: Server Error.
/calendar-event/view:
get:
tags:
- calendarEvent
summary: Details about calendar event.
operationId: /calendar-event/view
parameters:
- name: id
in: query
description: Calendar event item ID.
schema:
type: string
- name: parent_id
in: query
description: Calendar event parent item ID.
schema:
type: string
- name: rec_date
in: query
description: Calendar event recurring date.
schema:
type: string
responses:
200:
description: Calendar event details.
content:
application/json:
schema:
properties:
calendarEvent:
$ref: '#/components/schemas/calendarEvent'
calendarEventUser:
$ref: '#/components/schemas/calendarEventUser'
calendarEventBid:
$ref: '#/components/schemas/calendarEventBid'
hasCalendarEventBid:
type: boolean
canCreateCalendarEventBid:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event:
get:
tags:
- calendarEvent
summary: Calendar event index.
operationId: /calendar-event/index
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR
schema:
type: integer
example: 1
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
$ref: '#/components/schemas/calendarEvent'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event/items:
get:
tags:
- calendarEvent
summary: Calendar event items.
operationId: actionItems
parameters:
- name: q
in: query
schema:
type: string
- name: calendar_event_type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR
schema:
type: integer
example: 1
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
example: 1030
- name: calendar_event_entity_item_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd
responses:
200:
description: Calendar event items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event/my:
get:
tags:
- calendarEvent
summary: Calendar event my.
operationId: actionMy
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR
schema:
type: integer
example: 1
- name: entity_id
in: query
example: 1030
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
$ref: '#/components/schemas/calendarEvent'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar-event-request:
post:
tags:
- calendarEventRequest
summary: Calendar event request create.
operationId: /calendar-event-request
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
calendar_event_id:
type: string
format: uuid
description: Calendar event ID
calendar_event_parent_id:
type: string
format: uuid
description: Calendar event parent ID
calendar_event_rec_date:
type: string
format: date
description: Calendar event recurring date
responses:
200:
description: Returns the calendar event request
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
errors:
type: array
items:
type: string
data:
$ref: '#/components/schemas/calendarEventBid'
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
/calendar-event-request/cancel:
post:
tags:
- calendarEventRequest
summary: Calendar event request cancel.
operationId: actionCreate
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: Calendar event request ID
responses:
200:
description: Returns the calendar event request
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
errors:
type: array
items:
type: string
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
/calendar-event-type:
get:
tags:
- calendarEventType
summary: Calendar event type index.
operationId: /calendar-event-type
parameters:
- name: name
in: query
description: Название типа события (like).
schema:
type: string
example: Тренинг
- name: is_used
in: query
description: Тип события выбран в каком-либо событии
schema:
type: boolean
example: true
- name: type_id
in: query
description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT (All custom types), 6 - WEBINAR
schema:
type: integer
example: 1
responses:
200:
description: Calendar event type index.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
example: "Корпоративное мероприятие"
background_color:
type: string
example: "#F1D46E"
text_color:
type: string
example: "#000000"
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event type not found.
500:
description: Server Error.
/calendar/view:
get:
tags:
- calendar
summary: Details about calendar event.
operationId: /calendar/view
parameters:
- name: id
in: query
description: Calendar event item ID.
schema:
type: string
- name: parent_id
in: query
description: Calendar event parent item ID.
schema:
type: string
- name: rec_date
in: query
description: Calendar event recurring date.
schema:
type: string
responses:
200:
description: Calendar event details.
content:
application/json:
schema:
properties:
data:
items:
allOf:
- $ref: '#/components/schemas/calendarEvent'
- type: object
properties:
calendar_event_type_id:
type: string
format: uuid
calendar_event_type:
$ref: '#/components/schemas/calendarEventType'
calendarEventUser:
$ref: '#/components/schemas/calendarEventUser'
calendarEventBid:
$ref: '#/components/schemas/calendarEventBid'
hasCalendarEventBid:
type: boolean
canCreateCalendarEventBid:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar:
get:
tags:
- calendar
summary: Calendar event index.
operationId: /calendar/index
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: ID типа события из `/calendar-event-type`
schema:
type: string
format: uuid
example: '9f7063d1-959e-4c32-b186-313576375739'
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/calendarEvent'
- type: object
properties:
calendar_event_type_id:
type: string
format: uuid
calendar_event_type:
$ref: '#/components/schemas/calendarEventType'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar/items:
get:
tags:
- calendar
summary: Calendar event items.
operationId: /calendar/items
parameters:
- name: q
in: query
schema:
type: string
- name: calendar_event_type_id
in: query
description: ID типа события из `/calendar-event-type`
schema:
type: string
format: uuid
example: '9f7063d1-959e-4c32-b186-313576375739'
- name: entity_id
in: query
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
example: 1030
- name: calendar_event_entity_item_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd
responses:
200:
description: Calendar event items.
content:
application/json:
schema:
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/calendar/my:
get:
tags:
- calendar
summary: Calendar event my.
operationId: /calendar/my
parameters:
- name: title
in: query
schema:
type: string
- name: title_exact
in: query
schema:
type: string
- name: start_date_time
in: query
description: Default current month
schema:
type: string
example: '2023-01-01 10:00:00'
- name: end_date_time
in: query
description: Default current month +3 month
schema:
type: string
example: '2023-04-01 10:00:00'
- name: calendar_event_type_id
in: query
description: ID типа события из `/calendar-event-type`
schema:
type: string
format: uuid
example: '9f7063d1-959e-4c32-b186-313576375739'
- name: entity_id
in: query
example: 1030
description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace
schema:
type: integer
- name: calendar_event_entity_item_id
in: query
schema:
type: string
- name: user_id
in: query
schema:
type: string
example: 9f7063d1-959e-4c32-b186-313576375739
- name: visible_to
in: query
description: Visible to user group
schema:
type: string
example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd'
responses:
200:
description: Calendar event index.
content:
application/json:
schema:
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/calendarEvent'
- type: object
properties:
calendar_event_type_id:
type: string
format: uuid
calendar_event_type:
$ref: '#/components/schemas/calendarEventType'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
404:
description: Calendar event not found.
500:
description: Server Error.
/moderation:
get:
tags:
- moderation
summary: Moderation index.
operationId: /moderation/index
parameters:
- name: id
in: query
description: Moderation ID.
schema:
type: string
required: false
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Moderation object.
content:
application/json:
schema:
$ref: '#/components/schemas/moderation'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/moderation/accept:
post:
tags:
- moderation
summary: Accept moderation.
operationId: actionAccept
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/arrayOfIds'
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/moderation/reject:
post:
tags:
- moderation
summary: Reject moderation.
operationId: actionReject
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/arrayOfIds'
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/idea/statuses:
get:
tags:
- idea
summary: Idea statuses list.
operationId: /idea/statuses
responses:
200:
description: Idea statuses object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaStatuses'
401:
description: Unauthorized.
403:
description: Unauthorized.
500:
description: Server Error.
/idea/purposes:
get:
tags:
- idea
summary: Idea purposes list.
operationId: /idea/purposes
responses:
200:
description: Idea purpose object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaPurposes'
401:
description: Unauthorized.
403:
description: Unauthorized.
500:
description: Server Error.
/idea/index:
get:
tags:
- idea
summary: Idea index.
operationId: /idea/index
parameters:
- name: created_at
in: query
description: Дата создания идеи.
schema:
type: string
example: 2023-01-01|2023-01-01
- name: created_user_id
in: query
description: Идентификатор пользователя. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: idea_status_id
in: query
description: Статус идеи. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: 1
- name: idea_purpose_id
in: query
description: Направление идеи. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: performer_id
in: query
description: Исполнитель идеи. Можно передать несколько идентификаторов разделенные запятой.
schema:
type: string
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Idea objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ideaIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/idea/view:
get:
tags:
- idea
summary: Idea view.
operationId: /idea/view
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: true
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Idea detailed object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaView'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/idea/edit:
post:
tags:
- idea
summary: Idea edit.
operationId: /idea/edit
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: false
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ideaEdit'
responses:
200:
description: Idea object.
content:
application/json:
schema:
$ref: '#/components/schemas/ideaIndex'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/idea/vote:
post:
tags:
- idea
summary: Vote for idea.
operationId: /idea/vote
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: true
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
description: Success status.
type: boolean
example: true
status:
description: Voting status.
type: boolean
example: true
message:
type: string
example: You voted for the idea!
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/idea/participate:
post:
tags:
- idea
summary: Participate an idea.
operationId: /idea/participate
parameters:
- name: id
in: query
description: Idea ID.
schema:
type: string
required: true
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Text
content:
application/json:
schema:
type: object
properties:
success:
description: Success status.
type: boolean
example: true
status:
description: Participation status.
type: boolean
example: true
message:
type: string
example: You are participating in the idea!
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Feedback not found.
500:
description: Server Error.
/file/index:
get:
tags:
- file
summary: index user files.
operationId: /file/index
parameters:
- name: file_type
in: query
example: image
schema:
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
- name: search
in: query
description: Query string
schema:
type: string
example: Some text
- name: per-page
in: query
description: How many items return in one page (default 20).
schema:
type: string
- name: page
in: query
description: Current page.
schema:
type: string
- name: sort
description: Sorting fields and directions (example, -created_at, +name)
in: query
schema:
type: string
enum:
- name
- ext
- file_type
- mime_type
- created_at
responses:
200:
description: File objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/fileIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Unauthorized.
500:
description: Server Error.
/file/count:
get:
tags:
- file
summary: count user files.
operationId: /file/count
parameters:
- name: search
in: query
description: Query string
schema:
type: string
example: Some text
responses:
200:
description: File objects.
content:
application/json:
schema:
type: object
properties:
image:
type: integer
default: 320
video:
type: integer
default: 10
document:
type: integer
default: 10
archive:
type: integer
default: 0
other:
type: integer
default: 0
encrypted:
type: integer
default: 0
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Unauthorized.
500:
description: Server Error.
/user-status/index:
get:
tags:
- user-status
summary: User status index.
operationId: /user-status/index
parameters:
- name: name
in: query
description: Название статуса (like).
schema:
type: string
example: В отпуске
- name: slug
in: query
description: Уникальный именуемый идентификатор статуса (equals).
schema:
type: string
example: vacation
- name: is_custom
in: query
description: Статус создан администратором.
schema:
type: boolean
example: 1
- name: is_editable
in: query
description: Возможность редактирования статуса.
schema:
type: boolean
example: 1
- name: is_expire
in: query
description: Статус со сроком действия.
schema:
type: boolean
example: 1
- name: display_in_modal
in: query
description: Запрашивать статус в модальном окне запроса статуса.
schema:
type: boolean
example: 1
responses:
200:
description: Returns pagination and array of user status objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/userStatus'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/user-status/view:
get:
tags:
- user-status
summary: User status view.
operationId: /user-status/view
parameters:
- name: id
in: query
description: User status ID.
schema:
type: string
required: true
example: b726280a-2be6-4e62-ab24-1736389c6474
responses:
200:
description: User status detailed object.
content:
application/json:
schema:
$ref: '#/components/schemas/userStatus'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/user-status/set:
post:
tags:
- user-status
summary: Set user statuses.
operationId: /user-status/set
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/userStatusSetRequestBody'
responses:
200:
description: Result as boolean value.
content:
application/json:
schema:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/comment/statuses:
get:
tags:
- comment
summary: Comment statuses list. Role permissions are not required.
operationId: /comment/statuses
responses:
200:
description: Comment statuses object.
content:
application/json:
schema:
$ref: '#/components/schemas/commentStatuses'
401:
description: Unauthorized.
403:
description: Unauthorized.
500:
description: Server Error.
/comment/index:
get:
tags:
- comment
summary: Comment index. Access allowed with "Moderate comments" (content-moderate-comments) role permission.
operationId: /comment/index
parameters:
- name: created_at
in: query
description: Comment creation date range.
schema:
type: string
example: 2023-01-01|2023-01-01
- name: entity_id
in: query
description: Entity ID. You can pass multiple identifiers separated by commas.
schema:
type: string
example: 1
- name: reference_id
in: query
description: Reference ID. You can pass multiple identifiers separated by commas.
schema:
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: user_id
in: query
description: User ID. You can pass multiple identifiers separated by commas.
schema:
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
- name: status_id
in: query
description: Comment status ID. You can pass multiple identifiers separated by commas.
schema:
type: string
example: 1
responses:
200:
description: Returns pagination and array of comment objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/commentIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/comment/view:
get:
tags:
- comment
summary: View comment data. Returns comments data only in the "Published" status (STATUS_APPROVED). Access allowed with "See comments" (show-content-comments) role permission.
operationId: /comment/view
parameters:
- name: id
in: query
description: Comment ID.
schema:
type: string
format: uuid
required: true
example: b726280a-2be6-4e62-ab24-1736389c6474
responses:
200:
description: Comment object.
content:
application/json:
schema:
$ref: '#/components/schemas/commentView'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/comment/get:
get:
tags:
- comment
summary: Retrieving a list of top-level comments with replies in the "Published" status (STATUS_APPROVED) and sorted by creation date without pagination. Access allowed with "See comments" (show-content-comments) role permission.
operationId: /comment/get
parameters:
- name: entity_id
in: query
description: Entity ID.
schema:
type: string
example: 1
- name: reference_id
in: query
description: Reference ID.
schema:
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
responses:
200:
description: Comment object.
content:
application/json:
schema:
$ref: '#/components/schemas/commentGet'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/comment/add:
post:
tags:
- comment
summary: Add a new comment. Access allowed with "Leave comments" (content-comments-post) role permission.
operationId: /comment/add
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/commentAddRequestBody'
responses:
200:
description: Text
content:
application/json:
schema:
$ref: '#/components/schemas/commentAddResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/comment/delete:
delete:
tags:
- comment
summary: Comment safe delete (changes comment status to STATUS DELETED). Access is allowed for comment author or users with "Moderate comments" role permission (content-moderate-comments).
operationId: /comment/delete
parameters:
- name: id
in: query
description: Comment ID.
schema:
type: string
format: uuid
required: true
example: b726280a-2be6-4e62-ab24-1736389c6474
responses:
200:
description: Result as boolean value.
content:
application/json:
schema:
type: boolean
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden.
404:
description: Not found.
500:
description: Server Error.
/category/thumb-style:
get:
tags:
- category
summary: Список вариантов отображения превью категории.
operationId: /category/thumb-style
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/type'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/category/content-style:
get:
tags:
- category
summary: Список вариантов отображения содержимого категории.
operationId: /category/content-style
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/type'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/category/root:
get:
tags:
- category
summary: Список корневых категорий.
operationId: /category/root
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/categoryRoot'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/category/index:
get:
tags:
- category
summary: Список категорий.
operationId: /category/index
parameters:
- name: root_id
in: query
description: Category root ID.
required: true
schema:
type: string
responses:
200:
description: Returns pagination and array of objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/category'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/wallet/info:
get:
tags:
- wallet
summary: Данные кошелька пользователя. Требуется право доступа wallet "Кошелек".
operationId: /wallet/info
responses:
200:
description: Список категорий.
content:
application/json:
schema:
$ref: '#/components/schemas/wallet'
401:
description: Unauthorized.
403:
description: Forbidden.
500:
description: Internal Server Error.
/shop/product/sort-type:
get:
tags:
- shop
summary: Список типов сортировки товара на странице витрины магазина.
operationId: /shop/product/sort-type
responses:
200:
description: Список типов сортировки товара.
content:
application/json:
schema:
$ref: '#/components/schemas/shopProductSortType'
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/product/index:
get:
tags:
- shop
summary: Список товаров.
operationId: /shop/product/index
parameters:
- name: sort
in: query
description: Тип сортировки товара.
schema:
type: string
- name: title
in: query
description: Название товара.
schema:
type: string
- name: category_id
in: query
description: Идентификатор категории.
schema:
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
responses:
200:
description: Returns pagination and array of objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/shopProductIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/product/view:
get:
tags:
- shop
summary: Детали товара. Нужно обязательно передать id либо option_id товара.
operationId: /shop/product/view
parameters:
- name: id
in: query
description: Product ID.
required: true
schema:
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
- name: option_id
in: query
description: Product option ID.
required: true
schema:
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
responses:
200:
description: Product object.
content:
application/json:
schema:
$ref: '#/components/schemas/shopProductView'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
404:
description: Not found.
500:
description: Internal Server Error.
/shop/order/statuses:
get:
tags:
- shop
summary: Получение списка статусов заказа.
operationId: /shop/order/statuses
responses:
200:
description: Список статусов заказа.
content:
application/json:
schema:
$ref: '#/components/schemas/status'
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/order/delivery-addresses:
get:
tags:
- shop
summary: Получение списка адресов для доставки заказа.
operationId: /shop/order/delivery-addresses
responses:
200:
description: Список адресов для доставки заказа.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderDeliveryAddresses'
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/order/index:
get:
tags:
- shop
summary: Список заказов.
operationId: /shop/order/index
parameters:
- name: num
in: query
description: Order number.
schema:
type: string
example: 1
- name: created_at
in: query
description: Creation date range.
schema:
type: string
example: 2024-01-01|2024-01-01
- name: order_status_id
in: query
description: Order status ID.
schema:
type: string
example: 1
responses:
200:
description: Returns pagination and array of objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/shopOrderIndex'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
500:
description: Internal Server Error.
/shop/order/view:
get:
tags:
- shop
summary: Данные заказа.
operationId: /shop/order/view
parameters:
- name: id
in: query
description: Order ID.
required: true
schema:
type: string
format: uuid
example: 0310635d-2c72-4219-9038-bf2ac8f14206
responses:
200:
description: Order object.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderView'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Forbidden. Возвращается если tenantInfo.modules.shop.isModuleEnabled равен false.
404:
description: Not found.
500:
description: Internal Server Error.
/shop/order/checkout:
post:
tags:
- shop
summary: Создание заказа.
operationId: /shop/order/checkout
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderCheckoutRequestBody'
responses:
200:
description: Text
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderCheckoutResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
500:
description: Server Error.
/shop/order/position-remove:
post:
tags:
- shop
summary: Удаление позиции заказа.
operationId: /shop/order/position-remove
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderPositionRemoveRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderPositionRemoveResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/shop/order/position-restore:
post:
tags:
- shop
summary: Восстановить удаленную позицию заказа.
operationId: /shop/order/position-restore
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderPositionRestoreRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderPositionRestoreResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/shop/order/position-change-comment:
post:
tags:
- shop
summary: Изменить комментарий к позиции заказа.
operationId: /shop/order/position-change-comment
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderPositionChangeCommentRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderPositionChangeCommentResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/shop/order/cancel:
post:
tags:
- shop
summary: Отменить заказ.
operationId: /shop/order/cancel
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/shopOrderCancelRequestBody'
responses:
200:
description: Return success result.
content:
application/json:
schema:
$ref: '#/components/schemas/shopOrderCancelResponse'
400:
description: Bad Request.
401:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
/newbies/index:
get:
tags:
- MdWidgets
summary: Список новичков
operationId: /newbies/index
parameters:
- $ref: '#/components/parameters/boardDateTypeParam'
- $ref: '#/components/parameters/boardDateDayParam'
- $ref: '#/components/parameters/boardDateWeekParam'
- $ref: '#/components/parameters/boardDateMonthParam'
- $ref: '#/components/parameters/boardDateYearParam'
responses:
200:
description: MdWidget Items.
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: ''
errors:
description: Array of validation errors.
type: array
default: null
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/mdWidgetUserItem'
- type: object
properties:
itemDate:
description: Date Birthday
type: string
format: date
example: 18 july
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_periodUrls:
$ref: '#/components/schemas/_periodUrls'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/birthday/index:
get:
tags:
- MdWidgets
summary: Список дней рождений
operationId: /birthday/index
parameters:
- $ref: '#/components/parameters/boardDateTypeParam'
- $ref: '#/components/parameters/boardDateDayParam'
- $ref: '#/components/parameters/boardDateWeekParam'
- $ref: '#/components/parameters/boardDateMonthParam'
- $ref: '#/components/parameters/boardDateYearParam'
responses:
200:
description: MdWidget Items.
content:
application/json:
schema:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: ''
errors:
description: Array of validation errors.
type: array
default: null
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/mdWidgetUserItem'
- type: object
properties:
itemDate:
description: Employment date
type: string
format: date
example: 1 july
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_periodUrls:
$ref: '#/components/schemas/_periodUrls'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/experienced/index:
get:
tags:
- MdWidgets
summary: Список годовщин по стажу в компании
operationId: /experienced/index
parameters:
- $ref: '#/components/parameters/boardDateTypeParam'
- $ref: '#/components/parameters/boardDateDayParam'
- $ref: '#/components/parameters/boardDateWeekParam'
- $ref: '#/components/parameters/boardDateMonthParam'
- $ref: '#/components/parameters/boardDateYearParam'
responses:
200:
description: MdWidget Items.
content:
application/json:
schema:
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: ''
errors:
description: Array of validation errors.
type: array
default: null
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/mdWidgetUserItem'
- type: object
properties:
itemDate:
description: Work anniversary date
type: string
format: date
example: 18 july
data:
type: object
properties:
date:
description: Work anniversary date
type: string
format: date
example: 18 july
experience:
description: Number of years of experience
type: string
format: date
example: 18 july
experienceFormat:
description: Number of years of experience formatted
type: string
format: date
example: 2 year
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
_periodUrls:
$ref: '#/components/schemas/_periodUrls'
400:
description: Bad Request.
401:
description: Unauthorized request.
403:
description: Unauthorized request.
500:
description: Server Error.
/timezone/index:
get:
tags:
- timezone
summary: Timezone index.
operationId: /timezone/index
parameters:
- name: id
in: query
description: Идентификатор
schema:
type: string
example: Africa
- name: name
in: query
description: Название
schema:
type: string
example: Москва
responses:
200:
description: Timezone objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/timezone'
_links:
$ref: '#/components/schemas/_links'
_meta:
$ref: '#/components/schemas/_meta'
400:
description: Bad Request.
401:
description: Unauthorized.
403:
description: Unauthorized.
404:
description: Not found.
500:
description: Server Error.
components:
schemas:
_meta:
type: object
properties:
totalCount:
description: Total rows count in database.
type: integer
example: 1
pageCount:
description: How much pages there are with current perPage value.
type: integer
example: 1
currentPage:
description: Current page number.
type: integer
default: 1
perPage:
description: Rows per page.
type: integer
default: 10
_links:
type: object
properties:
self:
description: Link to current page. Always available, even if there is no data.
type: object
properties:
href:
type: string
first:
description: Link to first page. Available when data is available.
type: object
properties:
href:
type: string
last:
description: Link to last page. Available when data is available.
type: object
properties:
href:
type: string
next:
description: Link to next page. Available when there is more than one page of data.
type: object
properties:
href:
type: string
_periodUrls:
type: object
properties:
currentDate:
description: Link to current period.
type: object
properties:
href:
type: string
nextDate:
description: Link to next period.
type: object
properties:
href:
type: string
prevDate:
description: Link to prev period.
type: object
properties:
href:
type: string
arrayOfIds:
type: object
properties:
id:
description: Array of IDs.
type: array
items:
type: string
example:
- '53f2d03c-303a-4a3c-b57f-f7fb62fee538'
- '42862a16-affa-4ba5-86c5-61376f46d695'
type:
description: Type model.
type: object
properties:
id:
description: Type ID.
type: integer
example: 1
name:
description: Type name (localized).
type: string
example: Type name
status:
description: Status.
type: object
properties:
id:
description: Status ID.
type: integer
example: 1
name:
description: Status name (localized).
type: string
example: Status name
userInfo:
description: User info.
type: object
properties:
id:
description: User ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: User's full name.
type: string
example: FirstName LastName
iconUrl:
description: User profile face image URL.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
files:
description: Attached files.
type: array
items:
type: object
properties:
id:
description: File ID.
type: string
format: uuid
example: 96cf98ed-2762-4f6b-9a5b-3eca76c56477
url:
description: File URL.
type: string
example: https://hrenot.hrbox.io/file/open/96cf98ed-2762-4f6b-9a5b-3eca76c56477.jpg
file_ype:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
ext:
description: File extension.
type: string
example: jpg
name:
description: File name.
type: string
example: image.jpg
accountSecret:
type: object
properties:
userId:
type: string
format: uuid
secret:
type: string
format: uuid
tenantId:
type: integer
format: int64
default: 101
xml:
name: accountSecret
tenantInfo:
type: object
properties:
tenantId:
type: integer
format: int64
example: 2
tenantName:
type: string
example: HRBOX demo
supportEmail:
type: string
example: help@hrbox.io
domain:
type: string
example: demo.hrbox.io
endpoint:
type: string
example: https://demo.hrbox.io/api/v2
authAdditional:
description: Дополнительная авторизация (пин/биометрия) для мобильного приложения
type: boolean
example: true
primaryColor:
type: string
example: "#08D8D2"
brandColor:
type: string
example: "#FF0000"
logoUrl:
type: string
example: https://demo.hrbox.io/file/resize/600x0/f2a84060-d386-4c5f-9290-e3af1ede6334.png
logoSqUrl:
type: string
example: https://demo.hrbox.io/file/resize/60x60/f9b0986b-5bd6-4923-8242-a810a20e7918.png
style:
type: object
properties:
colorPrimary:
description: Основной цвет
type: string
example: "#08D8D2"
colorBrand:
description: Цвет шапки
type: string
example: "#FFFFFF"
colorBrand2:
description: Цвет меню
type: string
example: "#08D8D2"
colorAccent:
description: Акцент
type: string
example: "#FFDD5C"
colorBrandText:
description: Цвет текста шапки
type: string
example: "#151B30"
colorBrand2Text:
description: Цвет текста меню
type: string
example: "#FFFFFF"
colorAccentText:
description: Текст на акценте
type: string
example: "#FFFFFF"
logoOnLoginId:
type: string
example:
logoId:
type: string
example: f2a84060-d386-4c5f-9290-e3af1ede6334.png
logoSquareId:
type: string
example: f9b0986b-5bd6-4923-8242-a810a20e7918.png
imagePlaceholderId:
type: string
example: 61e7ef28-f8ba-4c23-bc7c-80a0a792c10e.png
language:
type: string
example: ru
timezone:
type: string
example: Europe/Moscow
modules:
type: object
properties:
currency:
$ref: '#/components/schemas/tenantInfoModuleCurrency'
userStatus:
$ref: '#/components/schemas/tenantInfoModuleUserStatus'
idea:
$ref: '#/components/schemas/tenantInfoModuleIdea'
shop:
$ref: '#/components/schemas/tenantInfoModuleShop'
xml:
name: tenantInfo
userProfile:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: "Chintan Rana"
first_name:
type: string
default: "Chintan"
last_name:
type: string
default: "Rana"
middle_name:
type: string
default: null
faceUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg"
reg_status_id:
type: integer
default: 3
gender_id:
type: integer
default: 1
country_id:
type: string
default: "ru"
timezone_id:
type: string
default: "Europe/Moscow"
city_id:
type: string
default: "BBDAEADC-FCCA-ABCB-AEFE-FBDCEAFAAEDB"
isBoss:
type: boolean
default: false
is_external:
type: boolean
default: false
birthdayDate:
type: string
default: "29 of May"
cityName:
type: string
default: "Moscow"
region:
type: string
default: "Arizona"
office:
type: string
default: "106a"
description: Office number
employment:
$ref: '#/components/schemas/employment'
employments:
type: array
items:
$ref: '#/components/schemas/employment'
emails:
type: array
items:
$ref: '#/components/schemas/contact'
phones:
type: array
items:
$ref: '#/components/schemas/contact'
messengers:
type: array
items:
$ref: '#/components/schemas/contact'
achievements:
type: array
items:
$ref: '#/components/schemas/achievement'
userDuties:
type: array
items:
$ref: '#/components/schemas/userDuty'
userGroupsVisible:
type: array
items:
$ref: '#/components/schemas/userGroup'
structureItem:
type: object
properties:
type:
type: string
enum:
- department
- user
id:
type: string
format: uuid
name:
type: string
default: "Name of department or user"
isOrganization:
type: boolean
description: Shows is it an organization or department.
isBoss:
type: boolean
default: false
description: For user only
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png"
description: User's face image url
position:
type: string
description: User's employment position
employmentsCount:
type: integer
default: 0
description: Amount of employees in department
empty:
type: boolean
default: false
description: If department is empty
catalogItem:
type: object
properties:
entity:
type: string
description: Tells whether its category or article
enum:
- category
- article
id:
type: string
format: uuid
title:
type: string
url:
type: string
description:
type: string
thumbUrl:
type: string
description: Thumbnail image url
status_id:
type: integer
description: 1 - Active, 2 - Disabled, 3 - Deleted
default: 1
enum:
- 1
- 2
- 3
thumb_style_id:
type: integer
description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image)
default: 1
enum:
- 1
- 2
- 3
tags:
type: array
items:
$ref: '#/components/schemas/tag'
calendarEventType:
type: object
properties:
id:
type: string
example: "ebe2bc69-b451-4006-8020-cc145eafe60c"
name:
type: string
example: "Тренинг"
background_color:
type: string
example: "#A4D4DE"
text_color:
type: string
example: "#000000"
calendarEvent:
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
title:
type: string
description:
type: string
content:
type: object
image_id:
type: string
format: uuid
url:
type: string
entity_id:
type: integer
reference_id:
type: string
format: uuid
start_date_time:
type: string
format: 'date-time'
end_date_time:
type: string
format: 'date-time'
day_duration:
type: integer
is_all_day:
type: boolean
is_recurring:
type: boolean
freq:
type: integer
interval:
type: integer
by_month:
type: integer
by_monthday:
type: array
items:
type: integer
by_day:
type: array
items:
type: integer
visible_to:
type: array
items:
type: string
format: uuid
quantity_place:
type: integer
quantity_available_place:
type: integer
calendar_event_user_count:
type: integer
created_user_id:
type: string
format: uuid
updated_user_id:
type: string
format: uuid
created_at:
type: string
format: 'date-time'
updated_at:
type: string
format: 'date-time'
calendar_event_type_id:
type: integer
create_bid_deadline_at:
type: string
format: 'date-time'
start_date:
type: string
format: date
end_date:
type: string
format: date
start_time:
type: string
end_time:
type: string
start_date_time_localized:
type: string
end_date_time_localized:
type: string
created_at_localized:
type: string
create_bid_deadline_at_localized:
type: string
rec_date:
type: string
format: date
rec_date_formatted:
type: string
send_notification_start:
type: boolean
send_notification_before_start_minutes:
type: array
items:
type: integer
duration_seconds:
type: integer
duration_seconds_formatted:
type: string
duration_seconds_formatted_data:
type: object
properties:
hours:
type: integer
minutes:
type: integer
rrule_string:
type: string
type_name:
type: string
is_started:
type: boolean
is_ended:
type: boolean
is_ended_text:
type: string
is_virtual_recurring:
type: boolean
is_deadline_create_bid:
type: boolean
url_view:
type: string
calendarEventUser:
type: object
properties:
id:
type: string
format: uuid
calendar_event_id:
type: string
format: uuid
calendar_event_parent_id:
type: string
format: uuid
user_id:
type: string
format: uuid
status_id:
type: integer
is_visited:
type: boolean
where_from_type_id:
type: integer
calendar_event_rec_date:
type: string
format: date
status_name:
type: string
is_visited_text:
type: string
where_from_type_name:
type: string
calendarEventBid:
type: object
properties:
id:
type: string
format: uuid
calendar_event_id:
type: string
format: uuid
calendar_event_parent_id:
type: string
format: uuid
calendar_event_bid_status_id:
type: integer
calendar_event_rec_date:
type: string
format: date
user_id:
type: string
format: uuid
status_name:
type: string
user_name:
type: string
article:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
url:
type: string
imageUrl:
type: string
description:
type: string
thumb_style_id:
type: integer
description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image)
default: 1
enum:
- 1
- 2
- 3
post_type_id:
type: integer
description: Post type 2 - only url (redirect to another page), 3 - page with actual content
default: 2
enum:
- 2
- 3
created_at:
type: string
format: datetime
publish_at:
type: string
format: datetime
description: Date and time from when article available to view by users
updated_at:
type: string
format: datetime
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
default: 1
enum:
- 1
- 2
- 3
likesCount:
type: integer
viewsCount:
type: integer
commentsCount:
type: integer
tags:
type: array
items:
$ref: '#/components/schemas/tag'
entityId:
description: Entity ID.
type: number
example: 1
tag:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
timezone:
type: object
properties:
id:
type: string
name:
type: string
contact:
type: object
properties:
value:
type: string
default: "dev@hrbox.io"
description: Email of phone number
type:
type: string
default: "corporate"
enum:
- corporate
- personal
readonly:
type: boolean
default: true
notification:
type: object
properties:
id:
type: string
format: uuid
subject:
type: string
text:
type: string
params:
type: object
properties:
url:
type: string
default: "Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification"
description: Property os optional. Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification
imageUrl:
type: string
default: "Property os optional"
description: Property is optional
notificationTypeId:
type: string
enum:
- user-postcard
- two-factor
- etc.
description: Serverside identifier of notification type. Sme logic can depend on it
created_at:
type: string
format: datetime
seen_at:
type: string
format: datetime
description: if not null - notification was viewed by user
userPostcard:
type: object
properties:
id:
type: string
format: uuid
user_id:
type: string
format: uuid
postcard_id:
type: string
format: uuid
text:
type: string
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
enum:
- 1
- 2
- 3
settings:
type: object
properties:
hide_signature:
type: boolean
description: Is this postcard anonymous
status_view_id:
type: integer
description: 1 - visible to everyone, 2 - visible only to recipient
enum:
- 1
- 2
created_at:
type: string
format: date
senderId:
type: string
format: uuid?
senderName:
type: string
default: "Alex"
senderIconUrl:
type: string
description: Sender user's face icon
imageUrl:
description: Postcard's image
type: string
is_seen:
type: boolean
description: Did user seen this postcard?
userGroup:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Managers
description:
type: string
default: "All the managers"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png"
thumbUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png"
userDuty:
type: object
properties:
id:
type: string
format: uuid
duty_id:
type: string
default: uuid
duty:
type: object
properties:
name:
type: string
achievement:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
default: Best sales of Year
description:
type: string
default: One who sold most this year
imageUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png"
employment:
type: object
properties:
id:
type: string
format: uuid
experience:
type: string
default: 1 year 2 months
position:
type: string
default: Chief Salesman
department:
$ref: '#/components/schemas/departmentLabel'
chiefUser:
$ref: '#/components/schemas/userLabel'
fullEmployment:
type: object
allOf:
- $ref: '#/components/schemas/employment'
- type: object
properties:
is_main:
description: Is main employment
type: boolean
example: true
employment_date:
type: string
format: date
fired_date:
type: string
format: date
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
example: 1
created_at:
type: string
format: date
departmentLabel:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Marketing
departmentPath:
type: string
default: "Company / Sales / Marketing"
userLabel:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Alex
faceUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg"
iconUrl:
type: string
default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg"
device:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
default: Alex's iPhone
model:
type: string
default: iPhone
os:
type: string
default: iOS
osVersion:
type: string
default: 14.0.1
xml:
name: device
profileBrief:
type: object
properties:
userId:
type: string
format: uuid
name:
type: string
position:
type: string
experience:
type: string
departmentName:
type: string
photoUrl:
type: string
faceUrl:
type: string
iconUrl:
type: string
statusText:
type: string
statusTypes:
type: array
items:
$ref: '#/components/schemas/profileStatusType'
xml:
name: profileBrief
profileStatusType:
type: object
properties:
id:
type: string
label:
type: string
enabled:
type: boolean
xml:
name: item
dashboardWidget:
type: object
properties:
ref:
type: string
label:
type: string
url:
type: string
totalCount:
type: integer
format: int64
items:
type: array
items:
$ref: '#/components/schemas/dashboardWidgetItem'
xml:
name: widgetId
dashboardWidgetItem:
type: object
properties:
id:
type: string
format: uuid
itemTitle:
type: string
itemUrl:
type: string
itemImageUrl:
type: string
itemDate:
type: string
format: datetime
itemTip:
type: string
itemEntityId:
type: integer
format: int64
actorId:
type: string
format: uuid
actorName:
type: string
actorIconUrl:
type: string
actionTitle:
type: string
actionStyle:
type: string
description: define color
enum:
- info
- success
- warning
- danger
xml:
name: item
feedback:
type: object
properties:
id:
description: Feedback model ID.
type: string
format: uuid
user_id:
description: User model ID.
type: string
format: uuid
default: null
department_id:
description: Department model ID.
type: string
format: uuid
default: null
score:
description: Feedback score.
type: integer
example: 5
text:
description: Feedback text.
type: string
example: Example text.
is_anonymous:
description: Anonymous feedback.
type: boolean
example: false
default: false
user_name:
description: The user name to which the feedback was left.
type: string
default: ""
department_name:
description: The department name to which the feedback was left.
type: string
default: ""
created_user_name:
description: The name of the user who left the feedback if it was not anonymous.
type: string
moderation:
type: object
properties:
id:
description: Moderation ID.
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
requested_user_id:
description: Requested user ID.
type: string
format: uuid
example: 08d50be6-81ca-436f-9aef-c1a5a74bad36
moderated_user_id:
description: Moderator user ID.
type: string
format: uuid
default: null
example: 1c95f8ec-d971-4554-8b77-d5ab1dd8d650
status_id:
description: >
Moderation status:
* `0` - Wait for moderation (NOT_MODERATED)
* `1` - Moderation accepted (ACCEPT)
* `2` - Moderation rejected (REJECT)
type: integer
enum:
- 0
- 1
- 2
example: 1
reference_id:
description: Reference model ID.
type: string
format: uuid
example: 660519c7-c8a7-4421-a1e2-4eed4074a868
entity_id:
description: >
Entity ID:
* `20` - User
* `118` - Postcard
* `140` - Comment
* `360` - Idea
* `152` - Voting nominee
type: integer
enum:
- 20
- 118
- 140
- 360
- 152
example: 20
type_id:
description: >
Moderation types:
* `USER_AVATAR` - Change user profile photo. Fields - photo_file_id, settings.
* `USER_POSTCARD` - Send postcard. Fields - text, user_id, postcard_id.
* `COMMENT` - Add comment. Fields - message, content_json.
* `IDEA` - Idea suggestion. Fields - idea_purpose_id, department_id, title, description, files.
* `VOTING_NOMINEE` - Image participating in the voting. Fields - file_id, nomination_id, title, description.
# Временно отключено на портале
# * `USER_CABINET` - Change city, cabinet. Fields - city, cabinet.
type: string
enum:
- USER_AVATAR
# - USER_CABINET
- USER_POSTCARD
- COMMENT
- IDEA
- VOTING_NOMINEE
changes:
description: One of moderation types. Values of fields that has been changed.
type: object
oneOf:
# USER_AVATAR
- properties:
photo_file_id:
description: Field "photo_file_id" in User model. File model ID.
type: string
format: uuid
example: 37a57294-489b-4a1b-ac5c-a390de5e388d
settings:
description: Field "settings" in User model.
type: object
properties:
face_coordinates:
description: Face coordinates on the user profile image.
type: object
properties:
h:
description: Cut height in percent.
type: integer
example: 86
w:
description: Cut width in percent.
type: integer
example: 57
x:
description: X-axis offset in percent.
type: integer
example: 42
y:
description: Y-axis offset in percent.
type: integer
example: 10
# USER_CABINET
# - properties:
# cabinet:
# description: User cabinet field.
# type: string
# example: 1a
# USER_POSTCARD
- properties:
text:
description: Postcard text.
type: string
example: Example text.
user_id:
description: User model ID.
type: string
format: uuid
example: 8768c19d-dae7-43f0-8b51-a86705f33a1b
postcard_id:
description: Postcard model ID.
type: string
format: uuid
example: e101d3be-ca63-49e0-9c94-a32fefc20c92
# COMMENT
- properties:
message:
description: Field "message" in Comment model.
type: string
example: Comment text.
content_json:
description: Field "content_json" in Comment model. Array of File models data.
type: array
items:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e
ext:
description: File extension.
type: string
example: jpg
fid:
description: File model ID with extension.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e.jpg
meta:
description: File meta information.
type: object
properties:
width:
description: Image width.
type: integer
example: 1920
height:
description: Image height.
type: integer
example: 1080
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
size:
description: File size in bytes.
type: integer
example: 109531
fileType:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
isCommon:
description: File is common.
type: boolean
example: false
isPublic:
description: File is public.
type: boolean
example: false
mimeType:
description: File MIME-Type.
type: string
example: image/jpeg
loadingState:
description: File loading state.
type: string
example: uploaded
# IDEA
- properties:
idea_purpose_id:
description: Field "idea_purpose_id" in Idea model.
type: string
format: uuid
example: 941a3ba1-3a5c-46b4-a83f-3a9f700925f6
department_id:
description: Department model ID.
type: string
format: uuid
example: e0f5593a-e0c2-44b8-a46e-1b464165f63f
title:
description: Field "title" in Idea model.
type: string
example: Idea title example.
description:
description: Field "description" in Idea model.
type: string
example: Idea description example.
files:
description: Field "files" in Idea model. Array of File models data.
type: array
items:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e
ext:
description: File extension.
type: string
example: jpg
fid:
description: File model ID with extension.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e.jpg
meta:
description: File meta information.
type: object
properties:
width:
description: Image width.
type: integer
example: 1920
height:
description: Image height.
type: integer
example: 1080
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
size:
description: File size in bytes.
type: integer
example: 109531
fileType:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
isCommon:
description: File is common.
type: boolean
example: false
isPublic:
description: File is public.
type: boolean
example: false
mimeType:
description: File MIME-Type.
type: string
example: image/jpeg
loadingState:
description: File loading state.
type: string
example: uploaded
# VOTING_NOMINEE
- properties:
file_id:
description: File model ID.
type: string
format: uuid
example: 1daf3810-9f65-4855-a352-3e5da566c69e
nomination_id:
description: VotingNomination model ID.
type: string
format: uuid
default: null
example: 0023648a-bf4b-4ab6-8376-4e91357e626a
title:
description: Field "title" in VotingNominee model.
type: string
example: Photo title example.
description:
description: Field "description" in VotingNominee model.
type: string
example: Photo description example.
created_at:
description: Moderation creation date.
type: string
format: date
updated_at:
description: Moderation update date.
type: string
format: date
statusName:
description: Status name.
type: string
typeName:
description: Type name.
type: string
formatChanges:
description: Model fields that can be changed. Data formatted for use in view files.
type: object
oneOf:
# USER_AVATAR
- properties:
current_photo_url:
description: User profile photo.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Profile photo
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/faf61bb0-af79-4422-9ebd-da2e92924ce3.jpg
url:
type: string
default: null
current_face_url:
description: User face on profile photo.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Face on profile photo
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/f3217a4b-02fd-400e-82c3-47cc7f36cf5f.jpg
url:
type: string
default: null
photo_file_id:
description: User new profile photo.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: New profile photo
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/37a57294-489b-4a1b-ac5c-a390de5e388d.jpg
url:
type: string
default: null
new_face_url:
description: New user-selected face in profile photo. Returns null because it is under development.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Selected face on photo
value:
description: Field value.
type: string
default: null
example: https://demo.hrbox.io/file/open/faf61bb0-af79-4422-9ebd-da2e92924ce3.jpg
url:
type: string
default: null
settings:
description: Face coordinates on the user profile image.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Settings
value:
description: Field value.
type: object
properties:
face_coordinates:
description: Face coordinates on the user profile image.
type: object
properties:
h:
description: Cut height in percent.
type: integer
example: 86
w:
description: Cut width in percent.
type: integer
example: 57
x:
description: X-axis offset in percent.
type: integer
example: 42
y:
description: Y-axis offset in percent.
type: integer
example: 10
# USER_CABINET
# - properties:
# city_id:
# description: Field "City".
# type: object
# properties:
# type:
# description: Field value type.
# type: string
# enum:
# - string
# - img
# - files
# - html
# example: string
# label:
# description: Field label.
# type: string
# example: City
# value:
# description: Field value.
# type: string
# default: null
# url:
# type: string
# cabinet:
# description: Field "Cabinet".
# type: object
# properties:
# type:
# description: Field value type.
# type: string
# enum:
# - string
# - img
# - files
# - html
# example: string
# label:
# description: Field label.
# type: string
# example: Cabinet
# value:
# description: Field value.
# type: string
# default: null
# example: 1a
# url:
# type: string
# USER_POSTCARD
- properties:
text:
description: Postcard text.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Postcard text
value:
description: Field value.
type: string
default: null
example: Example text.
url:
type: string
user_id:
description: User name.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: User
value:
description: Field value.
type: string
example: FirstName LastName
url:
type: string
postcard_id:
description: Postcard image.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Postcard
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/open/d6f5be76-58fa-4b61-a248-74e10b2b5ed0.jpg
url:
type: string
# COMMENT
- properties:
subject:
description: Comment subject.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Subject
value:
description: Field value.
type: string
example: News title
url:
type: string
example: https://demo.hrbox.io/read/3379b1ac54/news-title
message:
description: Comment message.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Comment
value:
description: Field value.
type: string
example: Comment text.
url:
type: string
content_json:
description: Comment attached files.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: files
label:
description: Field label.
type: string
example: Files
value:
description: Field value.
type: object
properties:
item:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: 3f8d3db4-49da-4880-bfdb-e682f9d4876d
url:
description: File open URL.
type: string
example: https://demo.hrbox.io/file/open/3f8d3db4-49da-4880-bfdb-e682f9d4876d.jpg
file_type:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
ext:
description: File extension.
type: string
example: jpg
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
url:
type: string
# IDEA
- properties:
idea_purpose_id:
description: Idea purpose.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Purpose
value:
description: Field value.
type: string
default: null
example: Example purpose
url:
type: string
department_id:
description: Department.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Department
value:
description: Field value.
type: string
default: null
example: Example department name
url:
type: string
title:
description: Idea title.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Title
value:
description: Field value.
type: string
example: Example idea title
url:
type: string
description:
description: Idea description.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Description
value:
description: Field value.
type: string
example: Example idea description
url:
type: string
files:
description: Idea attached files.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: files
label:
description: Field label.
type: string
example: Files
value:
description: Field value.
type: object
properties:
item:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
url:
description: File open URL.
type: string
example: https://demo.hrbox.io/file/open/a91fe4d9-b486-4e94-9114-18589aad7c7e.jpg
file_type:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
ext:
description: File extension.
type: string
example: jpg
name:
description: File name.
type: string
example: 2023-01-01 01.01.01.jpg
url:
type: string
# VOTING_NOMINEE
- properties:
file_id:
description: URL to file.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: img
label:
description: Field label.
type: string
example: Image
value:
description: Field value.
type: string
example: https://demo.hrbox.io/file/resize/0x300/d56554a9-a97d-47d8-bb16-5647166a66de.jpg
url:
type: string
nomination_id:
description: Voting nomination.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Nomination
value:
description: Field value.
type: string
example: Example nomination name
url:
type: string
title:
description: Idea title.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Title
value:
description: Field value.
type: string
example: Example photo title
url:
type: string
description:
description: Idea description.
type: object
properties:
type:
description: Field value type.
type: string
enum:
- string
- img
- files
- html
example: string
label:
description: Field label.
type: string
example: Description
value:
description: Field value.
type: string
example: Example photo description
url:
type: string
referenceAttributes:
description: Reference model attributes.
type: object
requestedUser:
description: Requested user.
type: object
properties:
id:
description: Requested user ID.
type: string
format: uuid
iconUrl:
description: Requested user ID.
type: string
name:
description: Requested user name.
type: string
moderatedUser:
description: Moderated user.
type: object
properties:
id:
description: Moderated user ID.
type: string
format: uuid
iconUrl:
description: Moderated user ID.
type: string
name:
description: Moderated user name.
type: string
tenantInfoModuleIdea:
description: Настройки модуля идей.
type: object
properties:
isModuleEnabled:
description: Включить сбор идей и запросов.
type: boolean
example: true
isIdeaVotingEnabled:
description: Включить голосование за идею.
type: boolean
example: true
isIdeaUnvoteEnabled:
description: Разрешить отменять голос за идею.
type: boolean
example: true
isIdeaParticipateEnabled:
description: Разрешить присоединяться к реализации идеи.
type: boolean
example: true
isCancelParticipatingEnabled:
description: Разрешить отменять предложение о помощи в реализации идеи.
type: boolean
example: true
isIdeaCommentsEnabled:
description: Разрешить комментировать идеи.
type: boolean
example: true
tenantInfoModuleShop:
description: Настройки модуля корпоративного магазина.
type: object
properties:
isModuleEnabled:
description: Модуль корпоративного магазина вкл/выкл.
type: boolean
example: true
default: false
isZeroCountProductsVisible:
description: Отображать на витрине товары с нулевым количеством.
type: boolean
example: true
default: false
isAllowCustomDeliveryAddress:
description: Разрешить пользователям указывать собственный адрес доставки.
type: boolean
example: true
default: false
ideaStatuses:
description: >
Список статусов идеи:
* `1` - Модерация (STATUS_MODERATION).
* `2` - Отклонена модератором (STATUS_REJECTED_MODERATOR).
* `3` - Голосование (STATUS_VOTING).
* `4` - Отклонена исполнителем (STATUS_REJECTED_MANAGER).
* `5` - Отложена (STATUS_POSTPONED).
* `6` - В работе (STATUS_REALIZATION).
* `7` - Реализована (STATUS_IMPLEMENTED).
type: array
items:
properties:
id:
description: Идентификатор статуса.
type: integer
example: 1
name:
description: Имя статуса.
type: string
example: Модерация
ideaPurposes:
description: Список направлений идеи.
type: array
items:
properties:
id:
description: Идентификатор направления.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Имя направления.
type: string
example: Направление
ideaIndex:
type: object
properties:
id:
description: Идентификатор идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Дата создания идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:25:52
updated_at:
description: Дата изменения идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:31:56
title:
description: Заголовок идеи.
type: string
example: Idea example title
description:
description: Описание идеи.
type: string
example: Idea example description
isEditable:
# Тут описать когда доступно
description: Доступность редактирования идеи для текущего пользователя.
type: boolean
example: true
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
performerUser:
description: Пользователь исполняющий идею.
type: object
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
purpose:
description: Направление идеи.
type: object
properties:
id:
description: Идентификатор направления идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название направления идеи.
type: string
example: Направление 1
department:
description: Подразделение в которое подана идея.
type: object
properties:
id:
description: Идентификатор подразделения.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название подразделения.
type: string
example: Подразделение 1
viewsCount:
description: Количество пользователей просмотревших идею.
type: integer
example: 1
countVoted:
description: Количество пользователей проголосовавших за идею.
type: integer
example: 1
countParticipate:
description: Количество пользователей предложивших помощь в реализации идеи.
type: integer
example: 1
isAllowVoting:
description: Возможность проголосовать за идею для текущего пользователя.
type: boolean
example: true
isAllowParticipate:
description: Возможность предложить помощь в реализации идеи для текущего пользователя.
type: boolean
example: true
isCurrentUserVoted:
description: Текущий пользователь проголосовал за идею.
type: boolean
example: false
isCurrentUserParticipate:
description: Текущий пользователь предложил помощь в реализации идеи.
type: boolean
example: false
entityId:
description: Entity ID.
type: number
example: 1
ideaView:
type: object
properties:
id:
description: Идентификатор идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Дата создания идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:25:52
updated_at:
description: Дата изменения идеи.
type: string
format: 'date-time'
example: 2023-09-21 18:31:56
title:
description: Заголовок идеи.
type: string
example: Idea example title
description:
description: Описание идеи.
type: string
example: Idea example description
isEditable:
# Тут описать когда доступно
description: Доступность редактирования идеи для текущего пользователя.
type: boolean
example: true
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
performerUser:
description: Пользователь исполняющий идею.
type: object
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
purpose:
description: Направление идеи.
type: object
properties:
id:
description: Идентификатор направления идеи.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название направления идеи.
type: string
example: Направление 1
department:
description: Подразделение в которое подана идея.
type: object
properties:
id:
description: Идентификатор подразделения.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
name:
description: Название подразделения.
type: string
example: Подразделение 1
viewsCount:
description: Количество пользователей просмотревших идею.
type: integer
example: 1
countVoted:
description: Количество пользователей проголосовавших за идею.
type: integer
example: 1
countParticipate:
description: Количество пользователей предложивших помощь в реализации идеи.
type: integer
example: 1
usersVoted:
description: Список пользователей проголосовавших за идею.
type: array
items:
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
usersParticipate:
description: Список пользователей предложивших помощь в реализации идеи.
type: array
items:
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
isAllowVoting:
description: Возможность проголосовать за идею для текущего пользователя.
type: boolean
example: true
isAllowParticipate:
description: Возможность предложить помощь в реализации идеи для текущего пользователя.
type: boolean
example: true
isCurrentUserVoted:
description: Текущий пользователь проголосовал за идею.
type: boolean
example: false
isCurrentUserParticipate:
description: Текущий пользователь предложил помощь в реализации идеи.
type: boolean
example: false
files:
$ref: '#/components/schemas/files'
ideaStatusLog:
description: Лог смены статуса идеи.
type: object
properties:
statusLabel:
description: Заголовок статуса идеи (локализовано).
type: string
example: Идея отклонена!
comment:
description: Комментарий к изменению статуса идеи.
type: string
example: Текст комментария
createdUser:
description: Пользователь изменивший статус идеи.
type: object
properties:
id:
description: Идентификатор пользователя.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
iconUrl:
description: Ссылка на изображение лица профиля пользователя.
type: string
example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg
name:
description: Имя пользователя.
type: string
example: Иван Иванов
entityId:
description: Идентификатор сущности.
type: number
example: 360
ideaEdit:
type: object
properties:
title:
description: Заголовок идеи.
type: string
example: Idea example title
description:
description: Описание идеи.
type: string
example: Idea example description
department_id:
description: Идентификатор подразделения.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
idea_purpose_id:
description: Идентификатор направления идеи.
type: string
format: uuid
example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e
files:
description: Идентификаторы файлов.
type: array
items:
type: string
example:
- '53f2d03c-303a-4a3c-b57f-f7fb62fee538'
- '42862a16-affa-4ba5-86c5-61376f46d695'
tenantInfoModuleCurrency:
description: Настройки модуля корпоративной валюты.
type: object
properties:
isModuleEnabled:
description: Модуль корпоративной валюты вкл/выкл.
type: boolean
example: true
default: false
currencyName:
description: Название корпоративной валюты.
type: string
example: HRенотики
currencyCode:
description: Буквенный код валюты.
type: string
example: HRE
isWalletBalanceVisibleInUserProfile:
description: Отображать баланс кошелька в профиле пользователя.
type: boolean
example: true
default: false
isAllowToUseCurrencyInAchievements:
description: Корпоративная валюта в достижениях.
type: boolean
example: false
default: false
tenantInfoModuleUserStatus:
description: Настройки модуля статусов пользователей.
type: object
properties:
isUserStatusEnabled:
description: Модуль статусов пользователей вкл/выкл.
type: boolean
example: true
default: true
checkUserStatus:
description: Спрашивать статус пользователя.
type: boolean
example: true
default: false
modalHeaderText:
description: Текст заголовка модального окна.
type: string
default: Где вы сегодня работаете?
modalBodyText:
description: Текст описания в модальном окне.
type: string
default: Друзья, в текущей ситуации нам особенно важно знать, что с вами все в порядке. Поэтому просим вас каждое утро обновлять свой статус, чтобы мы понимали, где вы работаете.
userStatus:
type: object
properties:
id:
description: Идентификатор статуса.
type: string
format: uuid
example: b726280a-2be6-4e62-ab24-1736389c6474
name:
description: Название статуса.
type: string
example: В отпуске
slug:
description: Уникальный именуемый идентификатор статуса.
type: string
example: vacation
is_custom:
description: Статус создан администратором.
type: boolean
example: false
is_editable:
description: Возможность редактирования статуса.
type: boolean
example: false
is_expire:
description: Статус со сроком действия.
type: boolean
example: false
display_in_modal:
description: Запрашивать статус в модальном окне запроса статуса.
type: boolean
example: false
labelColorHEX:
description: Цвет статуса в HEX кодировке.
type: string
example: '#D90000'
userStatusSetRequestBody:
type: object
properties:
id:
description: Идентификатор статуса.
type: string
format: uuid
example: b726280a-2be6-4e62-ab24-1736389c6474
is_enabled:
description: Состояние статуса.
type: boolean
example: true
expire_at:
description: Срок действия статуса. Обязателен для установки статусов у которых включен срок действия.
type: string
format: date
commentStatuses:
description: >
Comment statuses list:
* `1` - Moderation (STATUS_NEW).
* `2` - Published (STATUS_APPROVED).
* `3` - Rejected by moderator (STATUS_REJECTED).
* `4` - Deleted (STATUS_DELETED).
type: array
items:
$ref: '#/components/schemas/status'
commentIndex:
type: object
properties:
id:
description: Comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
parent_id:
description: Parent comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
reply_id:
description: Reply to comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
entity_id:
description: Entity ID.
type: number
example: 1
reference_id:
description: Reference ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Comment creation date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
updated_at:
description: Comment edit date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
message:
description: Comment text.
type: string
example: Test
files:
$ref: '#/components/schemas/files'
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
referenceName:
description: Reference title or name.
type: string
example: Test reference
referenceUrl:
description: Reference URL.
type: string
example: https://hrenot.hrbox.io/content/idea/view?id=4405d4aa-82ed-44d4-a2b4-5e2ab4f611f1
commentView:
type: object
properties:
id:
description: Comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
parent_id:
description: Parent comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
default: null
reply_id:
description: Reply to comment ID.
type: string
format: uuid
default: null
entity_id:
description: Entity ID.
type: number
example: 1
reference_id:
description: Reference ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
created_at:
description: Comment creation date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
updated_at:
description: Comment edit date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
message:
description: Comment text.
type: string
example: Test
files:
$ref: '#/components/schemas/files'
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
commentGet:
type: object
properties:
entity_id:
description: Requested entity ID.
type: number
example: 1
reference_id:
description: Requested reference ID.
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
data:
type: array
items:
properties:
id:
description: Comment ID.
type: string
format: uuid
example: a91fe4d9-b486-4e94-9114-18589aad7c7e
parent_id:
description: Parent comment ID.
type: string
format: uuid
default: null
reply_id:
description: Reply to comment ID.
type: string
format: uuid
default: null
entity_id:
description: Entity ID.
type: number
example: 1
reference_id:
description: Reference ID.
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
created_at:
description: Comment creation date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
updated_at:
description: Comment edit date.
type: string
format: 'date-time'
example: 2023-01-01 00:00:00
message:
description: Comment text.
type: string
example: Test
replies:
type: array
items:
$ref: '#/components/schemas/commentView'
files:
$ref: '#/components/schemas/files'
status:
$ref: '#/components/schemas/status'
createdUser:
$ref: '#/components/schemas/userInfo'
commentAddRequestBody:
type: object
properties:
entity_id:
description: Entity ID.
# required: true
type: number
example: 1
reference_id:
description: Reference ID.
# required: true
type: string
format: uuid
example: edee4e11-dab5-4aac-93ac-43c379aab6b2
reply_id:
description: Reply to comment ID.
type: string
format: uuid
default: null
message:
description: Comment text.
# required: true
type: string
example: Test
maxLength: 2000
files:
description: Array of file IDs.
type: array
items:
type: string
example:
- '53f2d03c-303a-4a3c-b57f-f7fb62fee538'
- '42862a16-affa-4ba5-86c5-61376f46d695'
commentAddResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
example: Comment added!
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
properties:
isApprovable:
description: If moderation is required, the value will be true.
type: boolean
example: false
comment:
$ref: '#/components/schemas/commentView'
fileIndex:
type: object
properties:
id:
description: File model ID.
type: string
format: uuid
example: e456bfb3-31dc-4c94-81ca-17dc49043a2b
name:
description: File name.
type: string
example: 2023-12-05 15-08-10.png
url:
description: File open URL.
type: string
example: https://demo.hrbox.io/file/open/e456bfb3-31dc-4c94-81ca-17dc49043a2b.jpg
ext:
description: File extension.
type: string
example: png
meta:
description: File meta information.
type: object
default: null
example: {
"width": 1920,
"height": 1080
}
properties:
width:
description: Image width.
type: integer
example: 1920
height:
description: Image height.
type: integer
example: 1080
file_type:
description: File type.
type: string
enum:
- image
- video
- document
- archive
- other
- encrypted
example: image
is_public:
description: File is public.
type: boolean
example: false
mime_type:
description: File MIME-Type.
type: string
example: image/png
size:
description: File size.
type: integer
example: 7894
shortSize:
description: File format size.
type: string
example: 7,894 КБ
categoryRoot:
type: array
items:
description: Categories list.
type: object
properties:
id:
description: Category ID.
type: integer
example: 1
name:
description: Category name (localized).
type: string
example: Category 1
category:
type: object
properties:
id:
description: Category ID.
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
title:
description: Category title.
type: string
example: Category 1
description:
description: Category description.
type: string
example: Description text
status_id:
description: Category status ID.
type: number
example: 1
root_id:
description: Category root ID.
type: number
example: 1
hash_id:
description: Category hash ID.
type: string
example: 6c91d43fd9
thumb_style_id:
description: Category thumb style ID.
type: number
example: 1
content_style_id:
description: Category content style ID.
type: number
example: 1
iconUrl:
description: Category icon URL.
type: string
example: http://hr.lh/img/nophoto.png
thumbUrl:
description: Category thumb URL.
type: string
example: http://hr.lh/img/nophoto.png
imageUrl:
description: Category image URL.
type: string
example: http://hr.lh/img/noarticle.png
wallet:
type: object
properties:
id:
description: Wallet ID.
type: string
format: uuid
example: 485781ba-95a1-4c5c-9210-7a895ac7dc0e
status_id:
description: Wallet status ID.
type: number
example: 1
user_id:
description: User ID.
type: string
format: uuid
example: 070ca51a-2363-419e-bfe0-48fce85acfa5
balance:
description: Wallet balance.
type: number
example: 1
shopProductSortType:
type: array
items:
description: Sort types.
type: object
properties:
id:
description: Sort type ID.
type: string
example: id
name:
description: Sort type name (localized).
type: string
example: Type name
shopProductImages:
description: Дополнительное изображение товара.
type: object
properties:
id:
description: FIle ID.
type: string
format: uuid
example: df7784cc-4d19-4c6c-8c7a-403751fec1b8
url:
description: FIle open URL.
type: string
example: http://hr.lh/file/open/df7784cc-4d19-4c6c-8c7a-403751fec1b8.jpg
shopProductOption:
description: Shop product option.
type: object
properties:
id:
description: Option ID.
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
sort_index:
description: Option sort index.
type: number
example: 0
name:
description: Option name.
type: string
example: Type name
count:
description: Products count.
type: number
example: 1
entityId:
description: Entity ID.
type: number
example: 1
shopProduct:
type: object
properties:
id:
description: Product ID.
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
title:
description: Product title.
type: string
example: Product 1
description:
description: Product description.
type: string
example: Description text
price:
description: Product price.
type: number
example: 1
totalCount:
description: Сумма количества товара во всех опциях товара.
type: number
example: 1
preview:
description: Product preview image.
type: string
example: http://hr.lh/file/resize/1200x1200/158712e1-78ed-4583-b5f1-6a0a083824a6.jpg
images:
description: Дополнительные изображения товара.
type: array
items:
$ref: '#/components/schemas/shopProductImages'
options:
description: Shop product options.
type: array
items:
$ref: '#/components/schemas/shopProductOption'
entityId:
description: Entity ID.
type: number
example: 1
shopProductIndex:
$ref: '#/components/schemas/shopProduct'
shopProductView:
type: object
properties:
id:
description: Product ID.
type: string
format: uuid
example: 76080562-3a5e-4826-8799-7638b775bcd0
title:
description: Product title.
type: string
example: Product 1
description:
description: Product description.
type: string
example: Description text
price:
description: Product price.
type: number
example: 1
totalCount:
description: Сумма количества товара во всех опциях товара.
type: number
example: 1
shopProductOption:
$ref: '#/components/schemas/shopProductOption'
preview:
description: Product preview image.
type: string
example: http://hr.lh/file/resize/1200x1200/158712e1-78ed-4583-b5f1-6a0a083824a6.jpg
images:
description: Дополнительные изображения товара.
type: array
items:
$ref: '#/components/schemas/shopProductImages'
options:
description: Shop product options.
type: array
items:
$ref: '#/components/schemas/shopProductOption'
entityId:
description: Entity ID.
type: number
example: 1
shopOrderDeliveryAddresses:
type: object
properties:
addresses:
description: Array of delivery address strings.
type: array
items:
type: string
example:
- 'Address 1'
- 'Address 2'
shopOrder:
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 0310635d-2c72-4219-9038-bf2ac8f14206
created_at:
description: Creation date.
type: string
format: 'date-time'
example: 2024-01-01 00:00:00
created_user_id:
description: User ID.
type: string
format: uuid
num:
description: Order number.
type: number
example: 1
order_status_id:
description: Order status ID. See /shop/order/statuses list.
type: number
example: 1
delivery_address:
description: Delivery address.
type: string
example: Address 1
default: null
countCartPositions:
description: Count of cart positions.
type: number
example: 1
countCartTotal:
description: Total count of cart items.
type: number
example: 2
sumCart:
description: Total cart sum.
type: number
example: 200
shopCart:
type: array
items:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
status_id:
type: integer
description: 1 - active, 2 - disabled, 3 - deleted
enum:
- 1
- 2
- 3
shop_item_id:
description: Product ID.
type: string
format: uuid
example: 11412fa5-031d-49c8-b7c9-2b5683e54bb8
shop_product_option_id:
description: Product option ID.
type: string
format: uuid
example: dadbf34e-6c16-4bb8-a19a-4932df2ec116
price:
description: Product cost at the time of order creation.
type: number
example: 100
count:
description: Count of product units.
type: number
example: 2
comment:
description: Comment text.
type: string
example: Example text
shopProductIcon:
description: Product icon.
type: string
example: http://hr.lh/file/resize/64x64/158712e1-78ed-4583-b5f1-6a0a083824a6.jpg
shopProductTitle:
description: Product title.
type: string
example: Example text
shopProductOptionName:
description: Product option name.
type: string
example: Example text
entityId:
description: Entity ID.
type: number
example: 1
shopOrderIndex:
$ref: '#/components/schemas/shopOrder'
shopOrderView:
$ref: '#/components/schemas/shopOrder'
shopOrderCheckoutRequestBody:
type: object
properties:
selectedAddress:
description: Адрес доставки. Требуется если tenantInfo.modules.shop.isAllowCustomDeliveryAddress равен true и не указан customAddress.
type: string
example: Address 1
customAddress:
description: Адрес доставки. Требуется если tenantInfo.modules.shop.isAllowCustomDeliveryAddress равен true и не указан selectedAddress.
type: string
default: null
message:
description: Комментарий к заказу.
type: string
maxLength: 512
example: Example text
cart:
description: Корзина товаров.
type: array
items:
type: object
properties:
id:
description: Product option ID.
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
cartCount:
description: Количество единиц текущей позиции товара.
type: number
example: 2
shopOrderCheckoutResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: false
message:
description: Message displayed to user (localized).
type: string
default: null
example: Example text
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
properties:
notFoundProducts:
description: Список идентификаторов товаров которые не были найдены. Возвращается в случае если товар не найден.
type: array
items:
type: string
example:
- 'e25ea810-bbc2-4b1e-84ca-8ed56d4594ec'
- 'ddbbec20-ec4d-42c5-8b11-1bb2d08e6465'
unavailableProducts:
description: Список идентификаторов товаров которых нет в наличии. Возвращается в случае если в корзине присутствуют товары которых больше нет в наличии.
type: array
items:
type: string
example:
- 'e25ea810-bbc2-4b1e-84ca-8ed56d4594ec'
- 'ddbbec20-ec4d-42c5-8b11-1bb2d08e6465'
products:
description: Возвращается в случае если в корзине присутствуют товары которых в наличии меньше чем указано в заказе.
type: array
items:
type: object
properties:
id:
description: Product option ID.
type: string
format: uuid
example: e25ea810-bbc2-4b1e-84ca-8ed56d4594ec
count:
description: Количество товара в наличии.
type: number
example: 1
balance:
description: Текущий баланс кошелька пользователя. Возвращается в случае успешного совершения заказа.
type: number
example: 100
shopOrder:
description: Данные заказа. Возвращается в случае успешного совершения заказа.
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 0310635d-2c72-4219-9038-bf2ac8f14206
created_at:
description: Creation date.
type: string
format: 'date-time'
example: 2024-01-01 00:00:00
num:
description: Order number.
type: number
example: 1
delivery_address:
description: Delivery address.
type: string
example: Address 1
default: null
shopOrderPositionRemoveRequestBody:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
comment:
description: Comment text.
type: string
example: Example text
apiDefaultResponse:
type: object
properties:
success:
description: Result status.
type: boolean
example: true
message:
description: Message displayed to user (localized).
type: string
default: null
errors:
description: Array of validation errors.
type: array
default: null
data:
type: object
default: null
shopOrderPositionRemoveResponse:
$ref: '#/components/schemas/apiDefaultResponse'
shopOrderPositionRestoreRequestBody:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
shopOrderPositionRestoreResponse:
$ref: '#/components/schemas/apiDefaultResponse'
shopOrderPositionChangeCommentRequestBody:
type: object
properties:
id:
description: Cart item ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
comment:
description: Comment text.
type: string
example: Example text
shopOrderPositionChangeCommentResponse:
$ref: '#/components/schemas/apiDefaultResponse'
shopOrderCancelRequestBody:
type: object
properties:
id:
description: Order ID.
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
message:
description: Comment text.
type: string
example: Example text
shopOrderCancelResponse:
$ref: '#/components/schemas/apiDefaultResponse'
mdWidgetUserItem:
type: object
properties:
id:
description: User ID
type: string
format: uuid
example: 195e1707-3f5d-4780-8dc1-b1023e1f974f
itemTitle:
description: User name
type: string
itemUrl:
description: User profile URL
type: string
example: https://hrenot.hrnox.io/core/user/view?id=5bc40c54-da74-4d5b-ac24-123374dc1a5a
itemImageUrl:
description: User avatar URL
type: string
example: https://hrenot.hrnox.io/file/user-face/5bc40c54-da74-4d5b-ac24-123374dc1a5a/300.jpg
itemEntityId:
description: Entity ID
type: number
example: 1
itemTip:
description: User position
type: string
example: CEO
itemDate:
description: Date board item
type: string
format: date
example: 19 july
data:
type: object
properties:
position:
description: User position
type: string
example: CEO
departmentName:
description: User department name
type: string
example: 'New Department'
parameters:
boardDateTypeParam:
in: query
name: type
description: 1 - За день, 2 - За неделю, 3 - За месяц.
required: true
schema:
type: integer
enum: [1, 2, 3]
example: 2
boardDateDayParam:
name: day
in: query
description: Число месяца (обязателен для списка за день)
schema:
type: integer
example: 15
boardDateWeekParam:
name: week
in: query
description: Номер недели в году (обязателен для спика за неделю)
schema:
type: integer
example: 27
boardDateMonthParam:
name: month
in: query
description: Месяц (обязателен для списка по дням и месяцам)
schema:
type: integer
example: 7
boardDateYearParam:
name: year
in: query
description: Год (обязателен всегда)
required: true
schema:
type: integer
example: 2024