swagger: '2.0'
info:
description: |
HRBox mobile app API
Since HRBOX is multitenant 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 provice 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 folowing 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
version: 2.0.0
title: HRbox Mobile API
contact:
email: yuriy@hrbox.io
# host: api.hrbox.io
# basePath: /api/v2
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: 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
# schemes:
# - http
paths:
/mobile/bind/{id}/{token}:
post:
tags:
- mobile
summary: Bind device by token. This URL will be taken by parsing QR code
operationId: mobileBind
consumes:
- application/json
produces:
- application/json
parameters:
- name: id
in: path
description: ID
required: true
type: string
- name: token
in: path
description: ID
required: true
type: string
- in: body
name: body
description: Device info
required: true
schema:
type: object
properties:
device:
$ref: '#/definitions/device'
responses:
200:
description: successful operation
schema:
type: object
properties:
accountSecret:
$ref: '#/definitions/accountSecret'
tenantInfo:
$ref: '#/definitions/tenantInfo'
400:
description: Invalid input
403:
description: Invalid id or token
/mobile/request-two-factor:
post:
tags:
- mobile
summary: Запросить код двухфакторной аутентификации. Код будет выслан если она включена.
operationId: mobileRequestTwoFactor
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Email Password and Device info. Also Code if 2FAuth enabled
required: true
schema:
type: object
properties:
email:
type: string
format: email
password:
type: string
format: password
responses:
200:
description: Если Двухфакторная аутентификация включена и код был выслан то в ответе будет codeRequired = true иначе codeRequired=false
schema:
type: object
properties:
codeRequired:
type: boolean
tenantInfo:
$ref: '#/definitions/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 emial and password
operationId: mobileManualBind
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Email Password and Device info. Also Code if 2FAuth enabled
required: true
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: '#/definitions/device'
responses:
200:
description: successful operation
schema:
type: object
properties:
accountSecret:
$ref: '#/definitions/accountSecret'
tenantInfo:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: secret, userId and deviceId
required: true
schema:
type: object
properties:
secret:
type: string
format: email
userId:
type: string
deviceId:
type: string
responses:
200:
description: successful authorization
schema:
type: object
properties:
sessionId:
type: string
sessionSecret:
type: string
tenantInfo:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
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
schema:
type: object
properties:
token:
type: string
provider:
type: string
default: firebase
deviceId:
type: string
responses:
200:
description: push token successfully saved
schema:
type: object
properties:
sucess:
type: boolean
default: true
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/mobile/unbind:
post:
tags:
- mobile
summary: Unbind device by deviceId
operationId: mobileUnbind
consumes:
- application/json
produces:
- application/json
parameters:
- name: deviceId
in: query
description: ID
required: true
type: string
responses:
200:
description: successful operation
schema:
type: object
properties:
tenantInfo:
$ref: '#/definitions/tenantInfo'
400:
description: Invalid input
403:
description: Invalid Email or Password
500:
description: Server Error
/user/profile:
get:
tags:
- user
summary: Get User's profile info
operationId: userProfile
consumes:
- application/json
produces:
- application/json
parameters:
- name: id
in: query
description: User ID
required: true
type: string
responses:
200:
description: User profile data
schema:
$ref: '#/definitions/userProfile'
400:
description: Invalid input (malformed id)
401:
description: Unathorized request
403:
description: Unathorized request
404:
description: User not found
500:
description: Server Error
/account/status-text:
post:
tags:
- account
summary: Set user's status text
operationId: accountStatusText
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: user's status text
required: true
schema:
type: object
properties:
activeTypes:
type: string
responses:
200:
description: status text saved
schema:
type: object
properties:
activeTypes:
type: string
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/account/status-active-types:
post:
tags:
- account
summary: Set user's active statuses
operationId: accountStatusActiveTypes
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: user's active statuses
required: true
schema:
type: object
properties:
activeTypes:
type: array
items:
type: string
responses:
200:
description: user's active statuses saved
schema:
type: object
properties:
statusTypes:
type: array
items:
type: string
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/notifications/pushes:
get:
tags:
- notifications
summary: Push notifications index. Infinite scroll done by paginating with {page} parameter
operationId: notificationPushes
consumes:
- application/json
produces:
- application/json
parameters:
- name: per-page
in: query
description: How many items return in one page
type: integer
default: 10
- name: page
in: query
description: Current page
type: integer
default: 1
responses:
200:
description: Returns array of push notifications and pagination related data
schema:
type: object
properties:
_meta:
$ref: '#/definitions/meta'
data:
type: array
items:
$ref: '#/definitions/notification'
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/notifications/mark-seen:
post:
tags:
- notifications
summary: Mark notification as seen
operationId: notificationMarkSeen
consumes:
- application/json
produces:
- application/json
parameters:
- in: query
name: notificationId
description: notificationId
required: true
type: string
format: uuid
responses:
200:
description: Notification marked as seen
schema:
type: object
properties:
badge:
type: number
description: unseen notification count
date:
type: string
format: date
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/notifications/mark-seen-all:
post:
tags:
- notifications
summary: Mark all notifications as seen
operationId: notificationMarkSeenAll
consumes:
- application/json
produces:
- application/json
responses:
200:
description: All marked as seen
schema:
type: object
properties:
badge:
type: number
description: unseen notification count
date:
type: string
format: date
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/department/tree-node:
get:
tags:
- department
summary: Get departments inner struture
operationId: departmentTreeNode
consumes:
- application/json
produces:
- application/json
parameters:
- name: id
in: query
description: Parent department ID
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. [employemntsCount], [empty] - are "department" only properties.
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: '#/definitions/structureItem'
400:
description: Invalid input (malformed id)
401:
description: Unathorized request
403:
description: Unathorized request
404:
description: Department not found
500:
description: Server Error
#["office"]
/department/search:
get:
tags:
- department
summary: Search Org Structure for matching users and departments
operationId: departmentSearch
consumes:
- application/json
produces:
- application/json
parameters:
- name: q
in: query
description: Search query string
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. [employemntsCount], [empty] - are "department" only properties.
schema:
type: object
properties:
q:
type: string
default: "Search query string"
items:
type: array
items:
$ref: '#/definitions/structureItem'
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/postcard/user-view:
get:
tags:
- postcard
summary: Details about postcard sent to user
operationId: postcardUserView
consumes:
- application/json
produces:
- application/json
parameters:
- name: id
in: query
description: UserPostcard item ID
required: true
type: string
responses:
200:
description: Postcard details
schema:
$ref: '#/definitions/userPostcard'
400:
description: Invalid input (malformed id)
401:
description: Unathorized request
403:
description: Unathorized 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
consumes:
- application/json
produces:
- application/json
parameters:
- name: per-page
in: query
description: How many items return in one page
type: integer
default: 10
- name: page
in: query
description: Current page
type: integer
default: 1
responses:
200:
description: Returns array of news and pagination related data
schema:
type: object
properties:
_meta:
$ref: '#/definitions/meta'
data:
type: array
items:
$ref: '#/definitions/article'
401:
description: Unathorized request
403:
description: Unathorized 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
consumes:
- application/json
produces:
- application/json
parameters:
- name: id
in: query
description: ID of category
type: string
- name: q
in: query
description: Search query string
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
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: '#/definitions/catalogItem'
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized 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
consumes:
- application/json
produces:
- application/json
parameters:
- name: widgets
in: query
description: names of required widgets separated with comma. For example - widgets=myLms,mySurvey,myAchievements,myTeam,myFavorites,myPostcards
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. For example - info=profileBrief,notificationsBadge. notificationsBadge - Current notification bell badge value. profileBrief - Current user brief info
type: string
enum:
- profileBrief
- notificationsBadge
responses:
200:
description: Rreturns all the dashboard data about requested widgets. In responce object only requested info/widgets keys will be presented. If widget is not available for current user, this widget will not exists in responce of will be null
schema:
type: object
properties:
profileBrief:
$ref: '#/definitions/profileBrief'
description: Current user brief info
notificationsBadge:
type: integer
default: 0
description: Current notification bell badge value
widgets:
type: object
properties:
myLms:
description: User feed - Assigned test and courses
$ref: '#/definitions/dashboardWidget'
mySurvey:
description: User feed - Assigned surveys
$ref: '#/definitions/dashboardWidget'
myAchievements:
description: User feed - Assigned achievements
$ref: '#/definitions/dashboardWidget'
myTeam:
description: User feed - Teammates of current user
$ref: '#/definitions/dashboardWidget'
myFavorites:
description: User feed - Favorites (in development, not used)
$ref: '#/definitions/dashboardWidget'
myPostcards:
description: User feed - Recevied postcards
$ref: '#/definitions/dashboardWidget'
updNews:
description: Company feed - New news
$ref: '#/definitions/dashboardWidget'
updVoting:
description: Company feed - New contests
$ref: '#/definitions/dashboardWidget'
updIdeas:
description: Company feed - New ideas
$ref: '#/definitions/dashboardWidget'
updAchievements:
description: Company feed - New achievements achieved by users
$ref: '#/definitions/dashboardWidget'
updBirthday:
description: Company feed - Users that have birthday today
$ref: '#/definitions/dashboardWidget'
updNewbies:
description: Company feed - Recently employed employees
$ref: '#/definitions/dashboardWidget'
updBooks:
description: Company feed - New books in library
$ref: '#/definitions/dashboardWidget'
400:
description: Invalid input
401:
description: Unathorized request
403:
description: Unathorized request
500:
description: Server Error
/feedback/add:
post:
tags:
- feedback
operationId: actionAdd
summary: Creates a feedback about a department or user.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: userId - User ID from which the feedback will be created.
type - Entity type (department, user).
id - Entity id.
score - Feedback score from 1 to 5.
text - Feedback text.
isAnonymous - Anonymous feedback.
required: true
schema:
type: object
properties:
userId:
type: string
description: User ID from which the feedback will be created.
example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d
required: false
type:
type: string
description: Entity type.
enum: [ department, user ]
example: department
required: true
id:
type: string
description: Entity id.
example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d
required: true
score:
type: number
description: Feedback score.
minimum: 1
maximum: 5
example: 5
required: true
text:
type: string
description: Feedback text.
example: Example text.
required: true
isAnonymous:
type: boolean
description: Anonymous feedback.
example: true
default: false
required: false
responses:
200:
description: Returns the success status and data of the generated feedback.
schema:
type: object
properties:
success:
type: boolean
feedback:
type: object
properties:
id:
description: Feedback model ID.
type: string
example: 77a14e58-7de2-4f50-bd1c-d2904f2a7b79
user_id:
description: User model ID.
type: string
example: null
department_id:
description: Department model ID.
type: string
example: f1e2972e-4655-4f93-bb54-733df3ddbc83
score:
description: Feedback score.
type: number
example: 5
text:
description: Feedback text.
type: string
example: Example text.
is_anonymous:
description: Anonymous feedback.
type: boolean
example: false
user_name:
description: The user name to which the feedback was left.
type: string
example: ""
department_name:
description: The department name to which the feedback was left.
type: string
example: "Fast food department"
created_user_name:
description: The user name of the person who left the feedback.
type: string
example: "Colonel Sanders"
400:
description: Bad Request. Returns a message with the error details.
401:
description: Unathorized request.
403:
description: Forbidden.
404:
description: Not found. Returns a message with the error details.
500:
description: Server Error.
definitions:
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:
endpoint:
type: string
default: https://demo.hrbox.io/api/v2
tenantId:
type: integer
format: int64
default: 101
tenantName:
type: string
default: Demo Company
domain:
type: string
default: demo.hrbox.io
brandColor:
type: string
default: #FF0000
logoUrl:
type: string
default: https://demo.hrbox.io/logo.png
logoSqUrl:
type: string
default: https://demo.hrbox.io/logo-sq.png
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
bithdayDate:
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: '#/definitions/employment'
emails:
type: array
items:
$ref: '#/definitions/contact'
phones:
type: array
items:
$ref: '#/definitions/contact'
messengers:
type: array
items:
$ref: '#/definitions/contact'
achievements:
type: array
items:
$ref: '#/definitions/achievement'
userGroupsVisible:
type: array
items:
$ref: '#/definitions/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"
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 uamge 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 - disabledy, 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: '#/definitions/tag'
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 - disabledy, 3 - deleted
default: 1
enum:
- 1
- 2
- 3
likesCount:
type: integer
viewsCount:
type: integer
commentsCount:
type: integer
tags:
type: array
items:
$ref: '#/definitions/tag'
tag:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
meta:
type: object
properties:
totalCount:
type: integer
default: 0
description: Total items count in database
pageCount:
type: integer
default: 1
description: How much pages there are with current perPage value
currentPage:
type: integer
default: 1
description: Current page number
perPage:
type: integer
default: 10
description: How much items per page
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 iamge
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"
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: '#/definitions/departmentLabel'
chiefUser:
$ref: '#/definitions/userLabel'
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: '#/definitions/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: '#/definitions/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
# Added by API Auto Mocking Plugin
# host: api.hrbox.io
# basePath: /api/v2
schemes:
- https
# Added by API Auto Mocking Plugin
host: virtserver.swaggerhub.com
basePath: /hrbox.io/Mobile/2.0.0