@sargonpiraev/hh-api-client 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +261 -0
- package/build/src/generated/client/client.d.ts +2 -0
- package/build/src/generated/client/client.js +143 -0
- package/build/src/generated/client/index.d.ts +7 -0
- package/build/src/generated/client/index.js +4 -0
- package/build/src/generated/client/types.d.ts +119 -0
- package/build/src/generated/client/types.js +1 -0
- package/build/src/generated/client/utils.d.ts +45 -0
- package/build/src/generated/client/utils.js +284 -0
- package/build/src/generated/client.gen.d.ts +12 -0
- package/build/src/generated/client.gen.js +5 -0
- package/build/src/generated/core/auth.d.ts +18 -0
- package/build/src/generated/core/auth.js +13 -0
- package/build/src/generated/core/bodySerializer.d.ts +17 -0
- package/build/src/generated/core/bodySerializer.js +53 -0
- package/build/src/generated/core/params.d.ts +23 -0
- package/build/src/generated/core/params.js +87 -0
- package/build/src/generated/core/pathSerializer.d.ts +33 -0
- package/build/src/generated/core/pathSerializer.js +113 -0
- package/build/src/generated/core/types.d.ts +73 -0
- package/build/src/generated/core/types.js +1 -0
- package/build/src/generated/index.d.ts +2 -0
- package/build/src/generated/index.js +3 -0
- package/build/src/generated/sdk.gen.d.ts +1177 -0
- package/build/src/generated/sdk.gen.js +3128 -0
- package/build/src/generated/types.gen.d.ts +23437 -0
- package/build/src/generated/types.gen.js +2 -0
- package/build/src/index.d.ts +22 -0
- package/build/src/index.js +37 -0
- package/package.json +54 -0
|
@@ -0,0 +1,3128 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import { urlSearchParamsBodySerializer, formDataBodySerializer } from './client/index.js';
|
|
3
|
+
import { client as _heyApiClient } from './client.gen.js';
|
|
4
|
+
/**
|
|
5
|
+
* Подтвердить телефон кодом
|
|
6
|
+
*/
|
|
7
|
+
export const confirmPhoneInResume = (options) => {
|
|
8
|
+
return (options.client ?? _heyApiClient).post({
|
|
9
|
+
...urlSearchParamsBodySerializer,
|
|
10
|
+
security: [
|
|
11
|
+
{
|
|
12
|
+
scheme: 'bearer',
|
|
13
|
+
type: 'http'
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
url: '/resume_phone_confirm',
|
|
17
|
+
...options,
|
|
18
|
+
headers: {
|
|
19
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
20
|
+
...options.headers
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Предпочтения менеджера
|
|
26
|
+
* Возвращает информацию о предпочтениях менеджера.
|
|
27
|
+
*
|
|
28
|
+
* Проще всего получить URL из поля `manager_settings_url` объекта `manager`
|
|
29
|
+
* в [информации о текущем пользователе](#tag/Informaciya-o-menedzhere/operation/get-current-user-info).
|
|
30
|
+
*
|
|
31
|
+
* Предпочтения менеджера *не влияют* на действия в API по умолчанию. Например, брендированный шаблон оформления
|
|
32
|
+
* (`default_vacancy_branded_template`) не будет применен автоматически при публикации вакансии, если шаблон не был передан.
|
|
33
|
+
* Приложение может использовать эту информацию для того, чтобы реализовать логику предзаполнения полей
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
export const getManagerSettings = (options) => {
|
|
37
|
+
return (options.client ?? _heyApiClient).get({
|
|
38
|
+
security: [
|
|
39
|
+
{
|
|
40
|
+
scheme: 'bearer',
|
|
41
|
+
type: 'http'
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
url: '/employers/{employer_id}/managers/{manager_id}/settings',
|
|
45
|
+
...options
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Дневной лимит просмотра резюме для текущего менеджера
|
|
50
|
+
* Метод доступен менеджеру только для просмотра своего дневного лимита
|
|
51
|
+
*/
|
|
52
|
+
export const getEmployerManagerLimits = (options) => {
|
|
53
|
+
return (options.client ?? _heyApiClient).get({
|
|
54
|
+
security: [
|
|
55
|
+
{
|
|
56
|
+
scheme: 'bearer',
|
|
57
|
+
type: 'http'
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
url: '/employers/{employer_id}/managers/{manager_id}/limits/resume',
|
|
61
|
+
...options
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Список адресов работодателя
|
|
66
|
+
* Возвращает список адресов работодателя. Для компаний с большим количеством адресов, возможна ситуация, когда между созданием адреса и его чтением будет задержка. То есть, только что созданный адрес не будет содержаться в теле ответа
|
|
67
|
+
*/
|
|
68
|
+
export const getEmployerAddresses = (options) => {
|
|
69
|
+
return (options.client ?? _heyApiClient).get({
|
|
70
|
+
security: [
|
|
71
|
+
{
|
|
72
|
+
scheme: 'bearer',
|
|
73
|
+
type: 'http'
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
url: '/employers/{employer_id}/addresses',
|
|
77
|
+
...options
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Список менеджеров работодателя
|
|
82
|
+
*/
|
|
83
|
+
export const getEmployerManagers = (options) => {
|
|
84
|
+
return (options.client ?? _heyApiClient).get({
|
|
85
|
+
security: [
|
|
86
|
+
{
|
|
87
|
+
scheme: 'bearer',
|
|
88
|
+
type: 'http'
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
url: '/employers/{employer_id}/managers',
|
|
92
|
+
...options
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Добавление менеджера
|
|
97
|
+
*/
|
|
98
|
+
export const addEmployerManager = (options) => {
|
|
99
|
+
return (options.client ?? _heyApiClient).post({
|
|
100
|
+
security: [
|
|
101
|
+
{
|
|
102
|
+
scheme: 'bearer',
|
|
103
|
+
type: 'http'
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
url: '/employers/{employer_id}/managers',
|
|
107
|
+
...options,
|
|
108
|
+
headers: {
|
|
109
|
+
'Content-Type': 'application/json',
|
|
110
|
+
...options.headers
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Справочник типов и прав менеджера
|
|
116
|
+
*/
|
|
117
|
+
export const getEmployerManagerTypes = (options) => {
|
|
118
|
+
return (options.client ?? _heyApiClient).get({
|
|
119
|
+
security: [
|
|
120
|
+
{
|
|
121
|
+
scheme: 'bearer',
|
|
122
|
+
type: 'http'
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
url: '/employers/{employer_id}/manager_types',
|
|
126
|
+
...options
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Рабочие аккаунты менеджера
|
|
131
|
+
* Возвращает список рабочих аккаунтов менеджера и информацию об основном и текущем аккаунте.
|
|
132
|
+
*
|
|
133
|
+
* Для работы под определенным аккаунтом необходимо передать значение account_id, полученное из списка, в заголовке:
|
|
134
|
+
*
|
|
135
|
+
* `X-Manager-Account-Id: {account_id}`
|
|
136
|
+
*
|
|
137
|
+
* Использовать данный заголовок можно во всех методах, доступных для работодателей.
|
|
138
|
+
*
|
|
139
|
+
* В заголовке можно передавать account_id основного аккаунта, который также подразумевается по умолчанию, при отсутствии заголовка
|
|
140
|
+
*
|
|
141
|
+
*/
|
|
142
|
+
export const getManagerAccounts = (options) => {
|
|
143
|
+
return (options.client ?? _heyApiClient).get({
|
|
144
|
+
security: [
|
|
145
|
+
{
|
|
146
|
+
scheme: 'bearer',
|
|
147
|
+
type: 'http'
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
url: '/manager_accounts/mine',
|
|
151
|
+
...options
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Получить информацию о телефоне соискателя
|
|
156
|
+
*/
|
|
157
|
+
export const getApplicantPhoneInfo = (options) => {
|
|
158
|
+
return (options.client ?? _heyApiClient).get({
|
|
159
|
+
security: [
|
|
160
|
+
{
|
|
161
|
+
scheme: 'bearer',
|
|
162
|
+
type: 'http'
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
url: '/resume_should_send_sms',
|
|
166
|
+
...options
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Получение адреса
|
|
171
|
+
*/
|
|
172
|
+
export const getAddress = (options) => {
|
|
173
|
+
return (options.client ?? _heyApiClient).get({
|
|
174
|
+
security: [
|
|
175
|
+
{
|
|
176
|
+
scheme: 'bearer',
|
|
177
|
+
type: 'http'
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
url: '/employers/{employer_id}/addresses/{address_id}',
|
|
181
|
+
...options
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Удаление менеджера
|
|
186
|
+
* Удаление менеджера занимает некоторое время. По этой причине, если сразу после успешного удаления менеджера вы запросите, например, список менеджеров, в ответе может вернуться удаленный менеджер
|
|
187
|
+
*/
|
|
188
|
+
export const deleteEmployerManager = (options) => {
|
|
189
|
+
return (options.client ?? _heyApiClient).delete({
|
|
190
|
+
security: [
|
|
191
|
+
{
|
|
192
|
+
scheme: 'bearer',
|
|
193
|
+
type: 'http'
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
url: '/employers/{employer_id}/managers/{manager_id}',
|
|
197
|
+
...options
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Получение информации о менеджере
|
|
202
|
+
*/
|
|
203
|
+
export const getEmployerManager = (options) => {
|
|
204
|
+
return (options.client ?? _heyApiClient).get({
|
|
205
|
+
security: [
|
|
206
|
+
{
|
|
207
|
+
scheme: 'bearer',
|
|
208
|
+
type: 'http'
|
|
209
|
+
}
|
|
210
|
+
],
|
|
211
|
+
url: '/employers/{employer_id}/managers/{manager_id}',
|
|
212
|
+
...options
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Редактирование менеджера
|
|
217
|
+
*/
|
|
218
|
+
export const editEmployerManager = (options) => {
|
|
219
|
+
return (options.client ?? _heyApiClient).put({
|
|
220
|
+
security: [
|
|
221
|
+
{
|
|
222
|
+
scheme: 'bearer',
|
|
223
|
+
type: 'http'
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
url: '/employers/{employer_id}/managers/{manager_id}',
|
|
227
|
+
...options,
|
|
228
|
+
headers: {
|
|
229
|
+
'Content-Type': 'application/json',
|
|
230
|
+
...options.headers
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Отправить код подтверждения для телефона резюме
|
|
236
|
+
*/
|
|
237
|
+
export const sendCodeForVerifyPhoneInResume = (options) => {
|
|
238
|
+
return (options.client ?? _heyApiClient).post({
|
|
239
|
+
...urlSearchParamsBodySerializer,
|
|
240
|
+
security: [
|
|
241
|
+
{
|
|
242
|
+
scheme: 'bearer',
|
|
243
|
+
type: 'http'
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
url: '/resume_phone_generate_code',
|
|
247
|
+
...options,
|
|
248
|
+
headers: {
|
|
249
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
250
|
+
...options.headers
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Инвалидация токена
|
|
256
|
+
* Инвалидация работает только на действующем access-токене.
|
|
257
|
+
* После инвалидации токен нельзя будет запросить с помощью refresh-токена - для работы необходимо будет заново авторизоваться в API
|
|
258
|
+
* Таким образом нельзя инвалидировать токен приложения <a name="invalidate_token"></a>.
|
|
259
|
+
* В случае компрометации токена необходимо инвалидировать скомпрометированный токен и запросить токен заново!
|
|
260
|
+
*
|
|
261
|
+
*/
|
|
262
|
+
export const invalidateToken = (options) => {
|
|
263
|
+
return (options?.client ?? _heyApiClient).delete({
|
|
264
|
+
security: [
|
|
265
|
+
{
|
|
266
|
+
scheme: 'bearer',
|
|
267
|
+
type: 'http'
|
|
268
|
+
}
|
|
269
|
+
],
|
|
270
|
+
url: '/oauth/token',
|
|
271
|
+
...options
|
|
272
|
+
});
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Получение access-токена
|
|
276
|
+
*/
|
|
277
|
+
export const authorize = (options) => {
|
|
278
|
+
return (options.client ?? _heyApiClient).post({
|
|
279
|
+
...urlSearchParamsBodySerializer,
|
|
280
|
+
security: [
|
|
281
|
+
{
|
|
282
|
+
scheme: 'bearer',
|
|
283
|
+
type: 'http'
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
url: '/oauth/token',
|
|
287
|
+
...options,
|
|
288
|
+
headers: {
|
|
289
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
290
|
+
...options.headers
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* Информация о текущем пользователе
|
|
296
|
+
*/
|
|
297
|
+
export const getCurrentUserInfo = (options) => {
|
|
298
|
+
return (options.client ?? _heyApiClient).get({
|
|
299
|
+
security: [
|
|
300
|
+
{
|
|
301
|
+
scheme: 'bearer',
|
|
302
|
+
type: 'http'
|
|
303
|
+
}
|
|
304
|
+
],
|
|
305
|
+
url: '/me',
|
|
306
|
+
...options
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Редактирование информации авторизованного пользователя
|
|
311
|
+
* Редактирование ФИО или изменение флага «ищу работу». Данные можно редактировать только группами
|
|
312
|
+
*/
|
|
313
|
+
export const editCurrentUserInfo = (options) => {
|
|
314
|
+
return (options.client ?? _heyApiClient).post({
|
|
315
|
+
...urlSearchParamsBodySerializer,
|
|
316
|
+
security: [
|
|
317
|
+
{
|
|
318
|
+
scheme: 'bearer',
|
|
319
|
+
type: 'http'
|
|
320
|
+
}
|
|
321
|
+
],
|
|
322
|
+
url: '/me',
|
|
323
|
+
...options,
|
|
324
|
+
headers: {
|
|
325
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
326
|
+
...options.headers
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
};
|
|
330
|
+
/**
|
|
331
|
+
* Список доступных локалей для резюме
|
|
332
|
+
* Возвращает справочник возможных локалей резюме. Подколлекция [справочника локалей](#tag/Obshie-spravochniki/operation/get-locales-for-resume).
|
|
333
|
+
*
|
|
334
|
+
* Изменив локаль, можно, например, создать резюме на английском языке
|
|
335
|
+
*
|
|
336
|
+
*/
|
|
337
|
+
export const getLocalesForResume = (options) => {
|
|
338
|
+
return (options.client ?? _heyApiClient).get({
|
|
339
|
+
security: [
|
|
340
|
+
{
|
|
341
|
+
scheme: 'bearer',
|
|
342
|
+
type: 'http'
|
|
343
|
+
}
|
|
344
|
+
],
|
|
345
|
+
url: '/locales/resume',
|
|
346
|
+
...options
|
|
347
|
+
});
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Список доступных локалей
|
|
351
|
+
* Возвращает список возможных значений (доступных локалей) в поле `id`. Список локалей будет зависеть от указанного сайта (параметр `host`). В любом запросе к API можно указывать параметр `?locale=` для передачи значения локали (языка)
|
|
352
|
+
*
|
|
353
|
+
*/
|
|
354
|
+
export const getLocales = (options) => {
|
|
355
|
+
return (options.client ?? _heyApiClient).get({
|
|
356
|
+
security: [
|
|
357
|
+
{
|
|
358
|
+
scheme: 'bearer',
|
|
359
|
+
type: 'http'
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
url: '/locales',
|
|
363
|
+
...options
|
|
364
|
+
});
|
|
365
|
+
};
|
|
366
|
+
/**
|
|
367
|
+
* Подсказки по должностям резюме
|
|
368
|
+
*/
|
|
369
|
+
export const getPositionsSuggestions = (options) => {
|
|
370
|
+
return (options.client ?? _heyApiClient).get({
|
|
371
|
+
security: [
|
|
372
|
+
{
|
|
373
|
+
scheme: 'bearer',
|
|
374
|
+
type: 'http'
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
url: '/suggests/positions',
|
|
378
|
+
...options
|
|
379
|
+
});
|
|
380
|
+
};
|
|
381
|
+
/**
|
|
382
|
+
* Подсказки по названиям учебных заведений
|
|
383
|
+
* Чтобы узнать список факультетов, обратитесь к [соответствующему методу](#tag/Obshie-spravochniki/operation/get-educational-institutions-dictionary)
|
|
384
|
+
*/
|
|
385
|
+
export const getEducationalInstitutionsSuggests = (options) => {
|
|
386
|
+
return (options.client ?? _heyApiClient).get({
|
|
387
|
+
security: [
|
|
388
|
+
{
|
|
389
|
+
scheme: 'bearer',
|
|
390
|
+
type: 'http'
|
|
391
|
+
}
|
|
392
|
+
],
|
|
393
|
+
url: '/suggests/educational_institutions',
|
|
394
|
+
...options
|
|
395
|
+
});
|
|
396
|
+
};
|
|
397
|
+
/**
|
|
398
|
+
* Подсказки по регионам, являющимися листами в дереве регионов
|
|
399
|
+
* Также доступна загрузка [полного дерева регионов](#tag/Obshie-spravochniki/operation/get-areas) и [части дерева от определенного элемента](#tag/Obshie-spravochniki/operation/get-areas-from-specified)
|
|
400
|
+
*/
|
|
401
|
+
export const getAreaLeavesSuggests = (options) => {
|
|
402
|
+
return (options.client ?? _heyApiClient).get({
|
|
403
|
+
security: [
|
|
404
|
+
{
|
|
405
|
+
scheme: 'bearer',
|
|
406
|
+
type: 'http'
|
|
407
|
+
}
|
|
408
|
+
],
|
|
409
|
+
url: '/suggests/area_leaves',
|
|
410
|
+
...options
|
|
411
|
+
});
|
|
412
|
+
};
|
|
413
|
+
/**
|
|
414
|
+
* Подсказки по ключевым навыкам
|
|
415
|
+
*/
|
|
416
|
+
export const getSkillSetSuggests = (options) => {
|
|
417
|
+
return (options.client ?? _heyApiClient).get({
|
|
418
|
+
security: [
|
|
419
|
+
{
|
|
420
|
+
scheme: 'bearer',
|
|
421
|
+
type: 'http'
|
|
422
|
+
}
|
|
423
|
+
],
|
|
424
|
+
url: '/suggests/skill_set',
|
|
425
|
+
...options
|
|
426
|
+
});
|
|
427
|
+
};
|
|
428
|
+
/**
|
|
429
|
+
* Подсказки по должностям вакансий
|
|
430
|
+
*/
|
|
431
|
+
export const getVacancyPositionsSuggests = (options) => {
|
|
432
|
+
return (options.client ?? _heyApiClient).get({
|
|
433
|
+
security: [
|
|
434
|
+
{
|
|
435
|
+
scheme: 'bearer',
|
|
436
|
+
type: 'http'
|
|
437
|
+
}
|
|
438
|
+
],
|
|
439
|
+
url: '/suggests/vacancy_positions',
|
|
440
|
+
...options
|
|
441
|
+
});
|
|
442
|
+
};
|
|
443
|
+
/**
|
|
444
|
+
* Подсказки по профессиональным ролям
|
|
445
|
+
*/
|
|
446
|
+
export const getProfessionalRolesSuggests = (options) => {
|
|
447
|
+
return (options.client ?? _heyApiClient).get({
|
|
448
|
+
security: [
|
|
449
|
+
{
|
|
450
|
+
scheme: 'bearer',
|
|
451
|
+
type: 'http'
|
|
452
|
+
}
|
|
453
|
+
],
|
|
454
|
+
url: '/suggests/professional_roles',
|
|
455
|
+
...options
|
|
456
|
+
});
|
|
457
|
+
};
|
|
458
|
+
/**
|
|
459
|
+
* Подсказки по ключевым словам поиска резюме
|
|
460
|
+
* Предназначены для использования в поле `text` при [поиске резюме](#tag/Poisk-rezyume/operation/search-for-resumes). Содержит названия должностей, компаний и другие фразы, часто используемые при поиске резюме
|
|
461
|
+
*/
|
|
462
|
+
export const getResumeSearchKeywordsSuggests = (options) => {
|
|
463
|
+
return (options.client ?? _heyApiClient).get({
|
|
464
|
+
security: [
|
|
465
|
+
{
|
|
466
|
+
scheme: 'bearer',
|
|
467
|
+
type: 'http'
|
|
468
|
+
}
|
|
469
|
+
],
|
|
470
|
+
url: '/suggests/resume_search_keyword',
|
|
471
|
+
...options
|
|
472
|
+
});
|
|
473
|
+
};
|
|
474
|
+
/**
|
|
475
|
+
* Подсказки по регионам
|
|
476
|
+
* Также доступна загрузка [полного дерева регионов](#tag/Obshie-spravochniki/operation/get-areas) и [части дерева от определенного элемента](#tag/Obshie-spravochniki/operation/get-areas-from-specified)
|
|
477
|
+
*/
|
|
478
|
+
export const getAreasSuggests = (options) => {
|
|
479
|
+
return (options.client ?? _heyApiClient).get({
|
|
480
|
+
security: [
|
|
481
|
+
{
|
|
482
|
+
scheme: 'bearer',
|
|
483
|
+
type: 'http'
|
|
484
|
+
}
|
|
485
|
+
],
|
|
486
|
+
url: '/suggests/areas',
|
|
487
|
+
...options
|
|
488
|
+
});
|
|
489
|
+
};
|
|
490
|
+
/**
|
|
491
|
+
* Подсказки по ключевым словам поиска вакансий
|
|
492
|
+
* Предназначены для использования в поле `text` при [поиске вакансий](#tag/Poisk-vakansij/operation/get-vacancies). Содержит названия должностей, компаний и другие фразы, часто используемые при поиске вакансий
|
|
493
|
+
*/
|
|
494
|
+
export const getVacancySearchKeywords = (options) => {
|
|
495
|
+
return (options.client ?? _heyApiClient).get({
|
|
496
|
+
security: [
|
|
497
|
+
{
|
|
498
|
+
scheme: 'bearer',
|
|
499
|
+
type: 'http'
|
|
500
|
+
}
|
|
501
|
+
],
|
|
502
|
+
url: '/suggests/vacancy_search_keyword',
|
|
503
|
+
...options
|
|
504
|
+
});
|
|
505
|
+
};
|
|
506
|
+
/**
|
|
507
|
+
* Подсказки по специализациям
|
|
508
|
+
*/
|
|
509
|
+
export const getFieldsOfStudySuggestions = (options) => {
|
|
510
|
+
return (options.client ?? _heyApiClient).get({
|
|
511
|
+
security: [
|
|
512
|
+
{
|
|
513
|
+
scheme: 'bearer',
|
|
514
|
+
type: 'http'
|
|
515
|
+
}
|
|
516
|
+
],
|
|
517
|
+
url: '/suggests/fields_of_study',
|
|
518
|
+
...options
|
|
519
|
+
});
|
|
520
|
+
};
|
|
521
|
+
/**
|
|
522
|
+
* Подсказки по зарегистрированным организациям
|
|
523
|
+
* Данные из этой подсказки можно использовать, например, для выбора компании при заполнении опыта работы [в резюме](#tag/Rezyume.-Sozdanie-i-obnovlenie). Чтобы найти организации, которые могут публиковать вакансии, используйте [поиск](#tag/Rabotodatel/operation/search-employer)
|
|
524
|
+
*/
|
|
525
|
+
export const getRegisteredCompaniesSuggests = (options) => {
|
|
526
|
+
return (options.client ?? _heyApiClient).get({
|
|
527
|
+
security: [
|
|
528
|
+
{
|
|
529
|
+
scheme: 'bearer',
|
|
530
|
+
type: 'http'
|
|
531
|
+
}
|
|
532
|
+
],
|
|
533
|
+
url: '/suggests/companies',
|
|
534
|
+
...options
|
|
535
|
+
});
|
|
536
|
+
};
|
|
537
|
+
/**
|
|
538
|
+
* Получение схемы резюме-профиля соискателя для резюме
|
|
539
|
+
* Возвращает схему резюме-профиля соискателя для построения визарда заполнения / дозаполнения / исправления резюме и профиля
|
|
540
|
+
*
|
|
541
|
+
*/
|
|
542
|
+
export const readResumeProfile = (options) => {
|
|
543
|
+
return (options.client ?? _heyApiClient).get({
|
|
544
|
+
security: [
|
|
545
|
+
{
|
|
546
|
+
scheme: 'bearer',
|
|
547
|
+
type: 'http'
|
|
548
|
+
}
|
|
549
|
+
],
|
|
550
|
+
url: '/resume_profile/{resume_id}',
|
|
551
|
+
...options
|
|
552
|
+
});
|
|
553
|
+
};
|
|
554
|
+
/**
|
|
555
|
+
* Обновление резюме-профиля соискателя
|
|
556
|
+
* Обновляет резюме-профиль и возвращает схему резюме-профиля соискателя для построения визарда заполнения / дозаполнения / исправления резюме и профиля
|
|
557
|
+
*
|
|
558
|
+
*/
|
|
559
|
+
export const updateResumeProfile = (options) => {
|
|
560
|
+
return (options.client ?? _heyApiClient).put({
|
|
561
|
+
security: [
|
|
562
|
+
{
|
|
563
|
+
scheme: 'bearer',
|
|
564
|
+
type: 'http'
|
|
565
|
+
}
|
|
566
|
+
],
|
|
567
|
+
url: '/resume_profile/{resume_id}',
|
|
568
|
+
...options,
|
|
569
|
+
headers: {
|
|
570
|
+
'Content-Type': 'application/json',
|
|
571
|
+
...options.headers
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
};
|
|
575
|
+
/**
|
|
576
|
+
* Создание резюме-профиля соискателя
|
|
577
|
+
* Создаёт резюме-профиль и возвращает схему резюме-профиля соискателя для построения визарда заполнения / дозаполнения / исправления резюме и профиля
|
|
578
|
+
*
|
|
579
|
+
*/
|
|
580
|
+
export const createResumeProfile = (options) => {
|
|
581
|
+
return (options.client ?? _heyApiClient).post({
|
|
582
|
+
security: [
|
|
583
|
+
{
|
|
584
|
+
scheme: 'bearer',
|
|
585
|
+
type: 'http'
|
|
586
|
+
}
|
|
587
|
+
],
|
|
588
|
+
url: '/resume_profile',
|
|
589
|
+
...options,
|
|
590
|
+
headers: {
|
|
591
|
+
'Content-Type': 'application/json',
|
|
592
|
+
...options.headers
|
|
593
|
+
}
|
|
594
|
+
});
|
|
595
|
+
};
|
|
596
|
+
/**
|
|
597
|
+
* Получение cловарей резюме-профиля
|
|
598
|
+
*/
|
|
599
|
+
export const getResumeProfileDictionaries = (options) => {
|
|
600
|
+
return (options.client ?? _heyApiClient).get({
|
|
601
|
+
security: [
|
|
602
|
+
{
|
|
603
|
+
scheme: 'bearer',
|
|
604
|
+
type: 'http'
|
|
605
|
+
}
|
|
606
|
+
],
|
|
607
|
+
url: '/resume_profile/dictionaries',
|
|
608
|
+
...options
|
|
609
|
+
});
|
|
610
|
+
};
|
|
611
|
+
/**
|
|
612
|
+
* Информация по активным услугам API для платных методов
|
|
613
|
+
* Каждая подключенная услуга отображается отдельным объектом в массиве `items`, даже при условии, что подключено несколько услуг одного типа.
|
|
614
|
+
* Если у работодателя нет активных услуг, то в ответе придет пустой массив `items`
|
|
615
|
+
*
|
|
616
|
+
*/
|
|
617
|
+
export const getPayableApiActions = (options) => {
|
|
618
|
+
return (options.client ?? _heyApiClient).get({
|
|
619
|
+
security: [
|
|
620
|
+
{
|
|
621
|
+
scheme: 'bearer',
|
|
622
|
+
type: 'http'
|
|
623
|
+
}
|
|
624
|
+
],
|
|
625
|
+
url: '/employers/{employer_id}/services/payable_api_actions/active',
|
|
626
|
+
...options
|
|
627
|
+
});
|
|
628
|
+
};
|
|
629
|
+
/**
|
|
630
|
+
* Проверка доступа к платным методам
|
|
631
|
+
* Начиная с 16 июля 2018 года, некоторые методы API HH для работодателей стали платными.
|
|
632
|
+
*
|
|
633
|
+
* Такие методы отмечены в [оглавлении GitHub](https://github.com/hhru/api/blob/master/README.md#content) лейблом <img src="http://hhru.github.io/api/badges/emp_paid.png" alt="employer with paid access" />
|
|
634
|
+
*
|
|
635
|
+
* Чтобы приобрести доступ к платным методам, обратитесь к своему персональному менеджеру.
|
|
636
|
+
*
|
|
637
|
+
* > Если вы работаете от имени нескольких учетных записей работодателя, проверьте [информацию о подключенных услугах](#tag/Uslugi-rabotodatelya/operation/get-payable-api-actions) — каждой учетной записи должен быть предоставлен доступ к платным методам API. При отсутствии доступа будет выдана ошибка `403 Forbidden`.
|
|
638
|
+
*
|
|
639
|
+
* Метод возвращает информацию о доступе к группам платных методов. Существующие группы:
|
|
640
|
+
*
|
|
641
|
+
* 1. Наличие доступа к методам резюме:
|
|
642
|
+
* * [Просмотр резюме](#tag/Prosmotr-rezyume/operation/get-resume).
|
|
643
|
+
* * [Работа с откликами](https://github.com/hhru/api/blob/master/docs/employer_negotiations.md).
|
|
644
|
+
* * [Переписка с соискателем](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiation-messages).
|
|
645
|
+
* 2. Наличие доступа к методам поиска вакансий:
|
|
646
|
+
* * [Поиск резюме](#tag/Poisk-rezyume/operation/search-for-resumes).
|
|
647
|
+
* * [Сохраненные поиски резюме](#tag/Sohranennye-poiski-rezyume/operation/get-saved-resume-searches).
|
|
648
|
+
* 3. Наличие доступа к [просмотру резюме](#tag/Prosmotr-rezyume/operation/get-resume), у которого есть отклик или приглашение.
|
|
649
|
+
* 4. Наличие доступа к [просмотру резюме](#tag/Prosmotr-rezyume/operation/get-resume), найденных через [поиск по базе](#tag/Poisk-rezyume/operation/search-for-resumes).
|
|
650
|
+
*
|
|
651
|
+
* **Внимание!** Изменился доступ к контактной информации резюме, подробнее [о новой модели работы с базой резюме](https://github.com/hhru/api/blob/master/docs/payable/resume.md)
|
|
652
|
+
*
|
|
653
|
+
*/
|
|
654
|
+
export const getPayableApiMethodAccess = (options) => {
|
|
655
|
+
return (options.client ?? _heyApiClient).get({
|
|
656
|
+
security: [
|
|
657
|
+
{
|
|
658
|
+
scheme: 'bearer',
|
|
659
|
+
type: 'http'
|
|
660
|
+
}
|
|
661
|
+
],
|
|
662
|
+
url: '/employers/{employer_id}/managers/{manager_id}/method_access',
|
|
663
|
+
...options
|
|
664
|
+
});
|
|
665
|
+
};
|
|
666
|
+
/**
|
|
667
|
+
* Список сохраненных поисков вакансий
|
|
668
|
+
*/
|
|
669
|
+
export const getSavedVacancySearches = (options) => {
|
|
670
|
+
return (options.client ?? _heyApiClient).get({
|
|
671
|
+
security: [
|
|
672
|
+
{
|
|
673
|
+
scheme: 'bearer',
|
|
674
|
+
type: 'http'
|
|
675
|
+
}
|
|
676
|
+
],
|
|
677
|
+
url: '/saved_searches/vacancies',
|
|
678
|
+
...options
|
|
679
|
+
});
|
|
680
|
+
};
|
|
681
|
+
/**
|
|
682
|
+
* Создание нового сохраненного поиска вакансий
|
|
683
|
+
* Некоторые параметры принимают множественные значения: `key=value&key=value`.
|
|
684
|
+
*
|
|
685
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше 2000. Например, возможен запрос `per_page=10&page=199` (выдача с 1991 по 2000 вакансию), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с 2001 до 2010 вакансию)
|
|
686
|
+
*
|
|
687
|
+
*/
|
|
688
|
+
export const createSavedVacancySearch = (options) => {
|
|
689
|
+
return (options.client ?? _heyApiClient).post({
|
|
690
|
+
security: [
|
|
691
|
+
{
|
|
692
|
+
scheme: 'bearer',
|
|
693
|
+
type: 'http'
|
|
694
|
+
}
|
|
695
|
+
],
|
|
696
|
+
url: '/saved_searches/vacancies',
|
|
697
|
+
...options
|
|
698
|
+
});
|
|
699
|
+
};
|
|
700
|
+
/**
|
|
701
|
+
* Посмотревшие вакансию
|
|
702
|
+
* Возвращает список сокращенных резюме соискателей, просмотревших вакансию за последнюю неделю. Список отсортирован по убыванию по дате просмотра. Если у пользователя несколько резюме, то вернется резюме с наиболее поздней датой обновления.
|
|
703
|
+
*
|
|
704
|
+
* В списке `items` не отображаются резюме, которые соискатель удалил или скрыл от работодателя. Но они учитываются при пагинации (`per_page`) и при подсчете найденных резюме (`found`), а в поле `hidden_on_page` показано количество таких пропущенных резюме на странице
|
|
705
|
+
*
|
|
706
|
+
*/
|
|
707
|
+
export const getVacancyVisitors = (options) => {
|
|
708
|
+
return (options.client ?? _heyApiClient).get({
|
|
709
|
+
security: [
|
|
710
|
+
{
|
|
711
|
+
scheme: 'bearer',
|
|
712
|
+
type: 'http'
|
|
713
|
+
}
|
|
714
|
+
],
|
|
715
|
+
url: '/vacancies/{vacancy_id}/visitors',
|
|
716
|
+
...options
|
|
717
|
+
});
|
|
718
|
+
};
|
|
719
|
+
/**
|
|
720
|
+
* Просмотр вакансии
|
|
721
|
+
* Возвращает подробную информацию по указанной вакансии
|
|
722
|
+
*/
|
|
723
|
+
export const getVacancy = (options) => {
|
|
724
|
+
return (options.client ?? _heyApiClient).get({
|
|
725
|
+
security: [
|
|
726
|
+
{
|
|
727
|
+
scheme: 'bearer',
|
|
728
|
+
type: 'http'
|
|
729
|
+
}
|
|
730
|
+
],
|
|
731
|
+
url: '/vacancies/{vacancy_id}',
|
|
732
|
+
...options
|
|
733
|
+
});
|
|
734
|
+
};
|
|
735
|
+
/**
|
|
736
|
+
* Редактирование вакансий
|
|
737
|
+
* Изменяет поля вакансии, передаваемые в теле запроса.
|
|
738
|
+
*
|
|
739
|
+
* Составные поля (например, `salary_range`, `contacts`, `professional_roles`) можно редактировать только целиком, передавая полный объект. Например, для изменения валюты в зарплате, необходимо передавать также и значение зарплаты.
|
|
740
|
+
*
|
|
741
|
+
* Поля `billing_type` и `manager` необходимо передавать в отдельном запросе
|
|
742
|
+
*
|
|
743
|
+
*/
|
|
744
|
+
export const editVacancy = (options) => {
|
|
745
|
+
return (options.client ?? _heyApiClient).put({
|
|
746
|
+
security: [
|
|
747
|
+
{
|
|
748
|
+
scheme: 'bearer',
|
|
749
|
+
type: 'http'
|
|
750
|
+
}
|
|
751
|
+
],
|
|
752
|
+
url: '/vacancies/{vacancy_id}',
|
|
753
|
+
...options,
|
|
754
|
+
headers: {
|
|
755
|
+
'Content-Type': 'application/json',
|
|
756
|
+
...options.headers
|
|
757
|
+
}
|
|
758
|
+
});
|
|
759
|
+
};
|
|
760
|
+
/**
|
|
761
|
+
* Список скрытых вакансий
|
|
762
|
+
* Возвращает [подмножество вакансий](#tag/Vakansii/operation/get-vacancy), скрытых пользователем, а также один дополнительный параметр
|
|
763
|
+
*/
|
|
764
|
+
export const getBlacklistedVacancies = (options) => {
|
|
765
|
+
return (options.client ?? _heyApiClient).get({
|
|
766
|
+
security: [
|
|
767
|
+
{
|
|
768
|
+
scheme: 'bearer',
|
|
769
|
+
type: 'http'
|
|
770
|
+
}
|
|
771
|
+
],
|
|
772
|
+
url: '/vacancies/blacklisted',
|
|
773
|
+
...options
|
|
774
|
+
});
|
|
775
|
+
};
|
|
776
|
+
/**
|
|
777
|
+
* Поиск по вакансиям
|
|
778
|
+
* Возвращает список вакансий, размещенных в сервисе. Список вакансий фильтруется согласно переданным параметрам запроса.
|
|
779
|
+
*
|
|
780
|
+
* Особенности работы метода:
|
|
781
|
+
*
|
|
782
|
+
* * Неизвестные параметры и параметры с ошибкой в названии игнорируются.
|
|
783
|
+
* * Если не передан токен авторизации, то после первого запроса будет предложено пройти капчу.
|
|
784
|
+
* * Список вакансий зависит от типа авторизации пользователя. Например, для соискателей вакансии фильтруются по [списку скрытых вакансий](#tag/Skrytye-vakansii) и [списку скрытых компаний](#tag/Skrytye-rabotodateli).
|
|
785
|
+
* * Список вакансий также зависит от [выбранного сайта](#section/Obshaya-informaciya/Vybor-sajta) (параметр `host`). Однако выбор регионального сайта, например hh.kz, не ограничивает список вакансиями данного региона. Чтобы ограничить список по региону, используйте параметр `area`.
|
|
786
|
+
* * При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше `2000`. Например, возможен запрос `per_page=10&page=199` (выдача с `1991` по `2000` вакансию), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с `2001` по `2010` вакансию)
|
|
787
|
+
*
|
|
788
|
+
*/
|
|
789
|
+
export const getVacancies = (options) => {
|
|
790
|
+
return (options.client ?? _heyApiClient).get({
|
|
791
|
+
security: [
|
|
792
|
+
{
|
|
793
|
+
scheme: 'bearer',
|
|
794
|
+
type: 'http'
|
|
795
|
+
}
|
|
796
|
+
],
|
|
797
|
+
url: '/vacancies',
|
|
798
|
+
...options
|
|
799
|
+
});
|
|
800
|
+
};
|
|
801
|
+
/**
|
|
802
|
+
* Публикация вакансии
|
|
803
|
+
* Создает новую вакансию с полями, передаваемыми в теле запроса.
|
|
804
|
+
*
|
|
805
|
+
* В соответствии с [законом РФ № 1032-1 от 19.04.1991 в ред. от 02.07.2013 г.](https://hh.ru/article/13967) запрещено размещать информацию, ограничивающую права или устанавливающую преимущества для соискателей по полу, возрасту, семейному положению и другим обстоятельствам, не связанным с деловыми качествами работников.
|
|
806
|
+
*
|
|
807
|
+
* Примечания:
|
|
808
|
+
*
|
|
809
|
+
* * При успешной публикации будут списаны соответствующие услуги.
|
|
810
|
+
* * Все вакансии проходят ручную модерацию.
|
|
811
|
+
* * В течение нескольких минут после публикации вакансия станет доступна в поиске.
|
|
812
|
+
*
|
|
813
|
+
* Полезные ссылки:
|
|
814
|
+
*
|
|
815
|
+
* * [Правила размещения вакансий](https://hh.ru/article/341)
|
|
816
|
+
* * [Как составить хорошее описание вакансии](https://hh.ru/article/16239)
|
|
817
|
+
*
|
|
818
|
+
*/
|
|
819
|
+
export const publishVacancy = (options) => {
|
|
820
|
+
return (options.client ?? _heyApiClient).post({
|
|
821
|
+
security: [
|
|
822
|
+
{
|
|
823
|
+
scheme: 'bearer',
|
|
824
|
+
type: 'http'
|
|
825
|
+
}
|
|
826
|
+
],
|
|
827
|
+
url: '/vacancies',
|
|
828
|
+
...options,
|
|
829
|
+
headers: {
|
|
830
|
+
'Content-Type': 'application/json',
|
|
831
|
+
...options.headers
|
|
832
|
+
}
|
|
833
|
+
});
|
|
834
|
+
};
|
|
835
|
+
/**
|
|
836
|
+
* Поиск подходящих вакансий
|
|
837
|
+
* По умолчанию, выдает вакансии, похожие на вакансию.
|
|
838
|
+
*
|
|
839
|
+
* Если запрос идет со страницы вакансии (параметр `hhtmSource` = `vacancy` или `vacancy_search_list` или `vacancy_search_filter`):
|
|
840
|
+
* * когда пользователь авторизован как соискатель, и у него есть резюме — выдает подходящие под последнее резюме пользователя вакансии;
|
|
841
|
+
* * когда у соискателя нет резюме — результаты поиска по заголовку вакансии;
|
|
842
|
+
* * когда пользователь не авторизован — рекомендации для анонимов.
|
|
843
|
+
*
|
|
844
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше `2000`. Например, возможен запрос `per_page=10&page=199` (выдача с `1991` по `2000` вакансию), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с `2001` по `2010` вакансию)
|
|
845
|
+
*
|
|
846
|
+
*/
|
|
847
|
+
export const getVacanciesRelatedToVacancy = (options) => {
|
|
848
|
+
return (options.client ?? _heyApiClient).get({
|
|
849
|
+
security: [
|
|
850
|
+
{
|
|
851
|
+
scheme: 'bearer',
|
|
852
|
+
type: 'http'
|
|
853
|
+
}
|
|
854
|
+
],
|
|
855
|
+
url: '/vacancies/{vacancy_id}/related_vacancies',
|
|
856
|
+
...options
|
|
857
|
+
});
|
|
858
|
+
};
|
|
859
|
+
/**
|
|
860
|
+
* Удаление сохраненного поиска вакансий
|
|
861
|
+
*/
|
|
862
|
+
export const deleteSavedVacancySearch = (options) => {
|
|
863
|
+
return (options.client ?? _heyApiClient).delete({
|
|
864
|
+
security: [
|
|
865
|
+
{
|
|
866
|
+
scheme: 'bearer',
|
|
867
|
+
type: 'http'
|
|
868
|
+
}
|
|
869
|
+
],
|
|
870
|
+
url: '/saved_searches/vacancies/{id}',
|
|
871
|
+
...options
|
|
872
|
+
});
|
|
873
|
+
};
|
|
874
|
+
/**
|
|
875
|
+
* Получение единичного сохраненного поиска вакансий
|
|
876
|
+
*/
|
|
877
|
+
export const getSavedVacancySearch = (options) => {
|
|
878
|
+
return (options.client ?? _heyApiClient).get({
|
|
879
|
+
security: [
|
|
880
|
+
{
|
|
881
|
+
scheme: 'bearer',
|
|
882
|
+
type: 'http'
|
|
883
|
+
}
|
|
884
|
+
],
|
|
885
|
+
url: '/saved_searches/vacancies/{id}',
|
|
886
|
+
...options
|
|
887
|
+
});
|
|
888
|
+
};
|
|
889
|
+
/**
|
|
890
|
+
* Обновление сохраненного поиска вакансий
|
|
891
|
+
* У сохраненного поиска можно изменить имя (`name`) и статус подписки (`subscription`). В одном запросе можно передать только один из параметров
|
|
892
|
+
*/
|
|
893
|
+
export const updateSavedVacancySearch = (options) => {
|
|
894
|
+
return (options.client ?? _heyApiClient).put({
|
|
895
|
+
security: [
|
|
896
|
+
{
|
|
897
|
+
scheme: 'bearer',
|
|
898
|
+
type: 'http'
|
|
899
|
+
}
|
|
900
|
+
],
|
|
901
|
+
url: '/saved_searches/vacancies/{id}',
|
|
902
|
+
...options
|
|
903
|
+
});
|
|
904
|
+
};
|
|
905
|
+
/**
|
|
906
|
+
* Поиск по вакансиям, похожим на вакансию
|
|
907
|
+
* Если не передан токен авторизации, то после первого запроса будет предложено пройти капчу.
|
|
908
|
+
*
|
|
909
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше `2000`. Например, возможен запрос `per_page=10&page=199` (выдача с `1991` по `2000` вакансию), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с `2001` по `2010` вакансию)
|
|
910
|
+
*
|
|
911
|
+
*/
|
|
912
|
+
export const getVacanciesSimilarToVacancy = (options) => {
|
|
913
|
+
return (options.client ?? _heyApiClient).get({
|
|
914
|
+
security: [
|
|
915
|
+
{
|
|
916
|
+
scheme: 'bearer',
|
|
917
|
+
type: 'http'
|
|
918
|
+
}
|
|
919
|
+
],
|
|
920
|
+
url: '/vacancies/{vacancy_id}/similar_vacancies',
|
|
921
|
+
...options
|
|
922
|
+
});
|
|
923
|
+
};
|
|
924
|
+
/**
|
|
925
|
+
* Список улучшений для вакансии
|
|
926
|
+
*/
|
|
927
|
+
export const getVacancyUpgradeList = (options) => {
|
|
928
|
+
return (options.client ?? _heyApiClient).get({
|
|
929
|
+
security: [
|
|
930
|
+
{
|
|
931
|
+
scheme: 'bearer',
|
|
932
|
+
type: 'http'
|
|
933
|
+
}
|
|
934
|
+
],
|
|
935
|
+
url: '/vacancies/{vacancy_id}/upgrades',
|
|
936
|
+
...options
|
|
937
|
+
});
|
|
938
|
+
};
|
|
939
|
+
/**
|
|
940
|
+
* Поиск по вакансиям, похожим на резюме
|
|
941
|
+
* Данные доступны только автору резюме.
|
|
942
|
+
*
|
|
943
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше `2000`. Например, возможен запрос `per_page=10&page=199` (выдача с `1991` по `2000` вакансию), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с `2001` по `2010` вакансию)
|
|
944
|
+
*
|
|
945
|
+
*/
|
|
946
|
+
export const getVacanciesSimilarToResume = (options) => {
|
|
947
|
+
return (options.client ?? _heyApiClient).get({
|
|
948
|
+
security: [
|
|
949
|
+
{
|
|
950
|
+
scheme: 'bearer',
|
|
951
|
+
type: 'http'
|
|
952
|
+
}
|
|
953
|
+
],
|
|
954
|
+
url: '/resumes/{resume_id}/similar_vacancies',
|
|
955
|
+
...options
|
|
956
|
+
});
|
|
957
|
+
};
|
|
958
|
+
/**
|
|
959
|
+
* Список отобранных вакансий
|
|
960
|
+
* Возвращает [подмножество вакансий](#tag/Vakansii/operation/get-vacancy), добавленных пользователем в отобранные, а также ряд дополнительных полей
|
|
961
|
+
*/
|
|
962
|
+
export const getFavoriteVacancies = (options) => {
|
|
963
|
+
return (options.client ?? _heyApiClient).get({
|
|
964
|
+
security: [
|
|
965
|
+
{
|
|
966
|
+
scheme: 'bearer',
|
|
967
|
+
type: 'http'
|
|
968
|
+
}
|
|
969
|
+
],
|
|
970
|
+
url: '/vacancies/favorited',
|
|
971
|
+
...options
|
|
972
|
+
});
|
|
973
|
+
};
|
|
974
|
+
/**
|
|
975
|
+
* Удаление вакансии из списка скрытых
|
|
976
|
+
* Удаляет указанную вакансию из [списка скрытых вакансий](#tag/Skrytye-vakansii/operation/get-blacklisted-vacancies)
|
|
977
|
+
*/
|
|
978
|
+
export const deleteVacancyFromBlacklisted = (options) => {
|
|
979
|
+
return (options.client ?? _heyApiClient).delete({
|
|
980
|
+
security: [
|
|
981
|
+
{
|
|
982
|
+
scheme: 'bearer',
|
|
983
|
+
type: 'http'
|
|
984
|
+
}
|
|
985
|
+
],
|
|
986
|
+
url: '/vacancies/blacklisted/{vacancy_id}',
|
|
987
|
+
...options
|
|
988
|
+
});
|
|
989
|
+
};
|
|
990
|
+
/**
|
|
991
|
+
* Добавление вакансии в список скрытых
|
|
992
|
+
* Добавляет указанную вакансию в [список скрытых вакансий](#tag/Skrytye-vakansii/operation/get-blacklisted-vacancies)
|
|
993
|
+
*/
|
|
994
|
+
export const addVacancyToBlacklisted = (options) => {
|
|
995
|
+
return (options.client ?? _heyApiClient).put({
|
|
996
|
+
security: [
|
|
997
|
+
{
|
|
998
|
+
scheme: 'bearer',
|
|
999
|
+
type: 'http'
|
|
1000
|
+
}
|
|
1001
|
+
],
|
|
1002
|
+
url: '/vacancies/blacklisted/{vacancy_id}',
|
|
1003
|
+
...options
|
|
1004
|
+
});
|
|
1005
|
+
};
|
|
1006
|
+
/**
|
|
1007
|
+
* Просмотр списка опубликованных вакансий
|
|
1008
|
+
* Возвращает список опубликованных вакансий.
|
|
1009
|
+
*
|
|
1010
|
+
* Если передан параметр `resume_id`, то в список попадут только те вакансии, которые подходят для указанного резюме. Кроме того, ответ будет содержать дополнительные поля
|
|
1011
|
+
*
|
|
1012
|
+
*/
|
|
1013
|
+
export const getActiveVacancyList = (options) => {
|
|
1014
|
+
return (options.client ?? _heyApiClient).get({
|
|
1015
|
+
security: [
|
|
1016
|
+
{
|
|
1017
|
+
scheme: 'bearer',
|
|
1018
|
+
type: 'http'
|
|
1019
|
+
}
|
|
1020
|
+
],
|
|
1021
|
+
url: '/employers/{employer_id}/vacancies/active',
|
|
1022
|
+
...options
|
|
1023
|
+
});
|
|
1024
|
+
};
|
|
1025
|
+
/**
|
|
1026
|
+
* Список удаленных вакансий
|
|
1027
|
+
*/
|
|
1028
|
+
export const getHiddenVacancies = (options) => {
|
|
1029
|
+
return (options.client ?? _heyApiClient).get({
|
|
1030
|
+
security: [
|
|
1031
|
+
{
|
|
1032
|
+
scheme: 'bearer',
|
|
1033
|
+
type: 'http'
|
|
1034
|
+
}
|
|
1035
|
+
],
|
|
1036
|
+
url: '/employers/{employer_id}/vacancies/hidden',
|
|
1037
|
+
...options
|
|
1038
|
+
});
|
|
1039
|
+
};
|
|
1040
|
+
/**
|
|
1041
|
+
* Восстановление вакансии из удаленных
|
|
1042
|
+
* Восстановить можно только удаленную из архива вакансию. Вакансия вернется в архив
|
|
1043
|
+
*/
|
|
1044
|
+
export const restoreVacancyFromHidden = (options) => {
|
|
1045
|
+
return (options.client ?? _heyApiClient).delete({
|
|
1046
|
+
security: [
|
|
1047
|
+
{
|
|
1048
|
+
scheme: 'bearer',
|
|
1049
|
+
type: 'http'
|
|
1050
|
+
}
|
|
1051
|
+
],
|
|
1052
|
+
url: '/employers/{employer_id}/vacancies/hidden/{vacancy_id}',
|
|
1053
|
+
...options
|
|
1054
|
+
});
|
|
1055
|
+
};
|
|
1056
|
+
/**
|
|
1057
|
+
* Удаление вакансий
|
|
1058
|
+
* Удалить можно только вакансию из архива
|
|
1059
|
+
*/
|
|
1060
|
+
export const addVacancyToHidden = (options) => {
|
|
1061
|
+
return (options.client ?? _heyApiClient).put({
|
|
1062
|
+
security: [
|
|
1063
|
+
{
|
|
1064
|
+
scheme: 'bearer',
|
|
1065
|
+
type: 'http'
|
|
1066
|
+
}
|
|
1067
|
+
],
|
|
1068
|
+
url: '/employers/{employer_id}/vacancies/hidden/{vacancy_id}',
|
|
1069
|
+
...options
|
|
1070
|
+
});
|
|
1071
|
+
};
|
|
1072
|
+
/**
|
|
1073
|
+
* Условия заполнения полей при добавлении и редактировании вакансий
|
|
1074
|
+
*/
|
|
1075
|
+
export const getVacancyConditions = (options) => {
|
|
1076
|
+
return (options.client ?? _heyApiClient).get({
|
|
1077
|
+
security: [
|
|
1078
|
+
{
|
|
1079
|
+
scheme: 'bearer',
|
|
1080
|
+
type: 'http'
|
|
1081
|
+
}
|
|
1082
|
+
],
|
|
1083
|
+
url: '/vacancy_conditions',
|
|
1084
|
+
...options
|
|
1085
|
+
});
|
|
1086
|
+
};
|
|
1087
|
+
/**
|
|
1088
|
+
* Информация о возможности продления вакансии
|
|
1089
|
+
* Условия продления:
|
|
1090
|
+
*
|
|
1091
|
+
* * Стоимость продления вакансии равна стоимости новой публикации.
|
|
1092
|
+
* * Стандартные вакансии можно продлевать, если с момента предыдущего продления прошло не менее 1 минуты
|
|
1093
|
+
*
|
|
1094
|
+
*/
|
|
1095
|
+
export const getProlongationVacancyInfo = (options) => {
|
|
1096
|
+
return (options.client ?? _heyApiClient).get({
|
|
1097
|
+
security: [
|
|
1098
|
+
{
|
|
1099
|
+
scheme: 'bearer',
|
|
1100
|
+
type: 'http'
|
|
1101
|
+
}
|
|
1102
|
+
],
|
|
1103
|
+
url: '/vacancies/{vacancy_id}/prolongate',
|
|
1104
|
+
...options
|
|
1105
|
+
});
|
|
1106
|
+
};
|
|
1107
|
+
/**
|
|
1108
|
+
* Продление вакансии
|
|
1109
|
+
* Продлевает срок размещения указанной вакансии.
|
|
1110
|
+
*
|
|
1111
|
+
* Условия продления:
|
|
1112
|
+
*
|
|
1113
|
+
* * Стоимость продления вакансии равна стоимости новой публикации.
|
|
1114
|
+
* * Стандартные вакансии можно продлевать, если с момента предыдущего продления прошло не менее 1 минуты
|
|
1115
|
+
*
|
|
1116
|
+
*/
|
|
1117
|
+
export const vacancyProlongation = (options) => {
|
|
1118
|
+
return (options.client ?? _heyApiClient).post({
|
|
1119
|
+
security: [
|
|
1120
|
+
{
|
|
1121
|
+
scheme: 'bearer',
|
|
1122
|
+
type: 'http'
|
|
1123
|
+
}
|
|
1124
|
+
],
|
|
1125
|
+
url: '/vacancies/{vacancy_id}/prolongate',
|
|
1126
|
+
...options
|
|
1127
|
+
});
|
|
1128
|
+
};
|
|
1129
|
+
/**
|
|
1130
|
+
* Архивация вакансии
|
|
1131
|
+
* Переносит вакансию в архив
|
|
1132
|
+
*/
|
|
1133
|
+
export const addVacancyToArchive = (options) => {
|
|
1134
|
+
return (options.client ?? _heyApiClient).put({
|
|
1135
|
+
security: [
|
|
1136
|
+
{
|
|
1137
|
+
scheme: 'bearer',
|
|
1138
|
+
type: 'http'
|
|
1139
|
+
}
|
|
1140
|
+
],
|
|
1141
|
+
url: '/employers/{employer_id}/vacancies/archived/{vacancy_id}',
|
|
1142
|
+
...options
|
|
1143
|
+
});
|
|
1144
|
+
};
|
|
1145
|
+
/**
|
|
1146
|
+
* Просмотр предпочитаемой сортировки откликов
|
|
1147
|
+
*/
|
|
1148
|
+
export const getPrefNegotiationsOrder = (options) => {
|
|
1149
|
+
return (options.client ?? _heyApiClient).get({
|
|
1150
|
+
security: [
|
|
1151
|
+
{
|
|
1152
|
+
scheme: 'bearer',
|
|
1153
|
+
type: 'http'
|
|
1154
|
+
}
|
|
1155
|
+
],
|
|
1156
|
+
url: '/vacancies/{id}/preferred_negotiations_order',
|
|
1157
|
+
...options
|
|
1158
|
+
});
|
|
1159
|
+
};
|
|
1160
|
+
/**
|
|
1161
|
+
* Изменение предпочитаемой сортировки откликов
|
|
1162
|
+
*/
|
|
1163
|
+
export const putPrefNegotiationsOrder = (options) => {
|
|
1164
|
+
return (options.client ?? _heyApiClient).put({
|
|
1165
|
+
...urlSearchParamsBodySerializer,
|
|
1166
|
+
security: [
|
|
1167
|
+
{
|
|
1168
|
+
scheme: 'bearer',
|
|
1169
|
+
type: 'http'
|
|
1170
|
+
}
|
|
1171
|
+
],
|
|
1172
|
+
url: '/vacancies/{id}/preferred_negotiations_order',
|
|
1173
|
+
...options,
|
|
1174
|
+
headers: {
|
|
1175
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
1176
|
+
...options.headers
|
|
1177
|
+
}
|
|
1178
|
+
});
|
|
1179
|
+
};
|
|
1180
|
+
/**
|
|
1181
|
+
* Удаление вакансии из списка отобранных
|
|
1182
|
+
* Удаляет указанную вакансию из [списка отобранных вакансий](#tag/Otobrannye-vakansii/operation/get-favorite-vacancies)
|
|
1183
|
+
*/
|
|
1184
|
+
export const deleteVacancyFromFavorite = (options) => {
|
|
1185
|
+
return (options.client ?? _heyApiClient).delete({
|
|
1186
|
+
security: [
|
|
1187
|
+
{
|
|
1188
|
+
scheme: 'bearer',
|
|
1189
|
+
type: 'http'
|
|
1190
|
+
}
|
|
1191
|
+
],
|
|
1192
|
+
url: '/vacancies/favorited/{vacancy_id}',
|
|
1193
|
+
...options
|
|
1194
|
+
});
|
|
1195
|
+
};
|
|
1196
|
+
/**
|
|
1197
|
+
* Добавление вакансии в список отобранных
|
|
1198
|
+
* Добавляет указанную вакансию в [список отобранных вакансий](#tag/Otobrannye-vakansii/operation/get-favorite-vacancies)
|
|
1199
|
+
*/
|
|
1200
|
+
export const addVacancyToFavorite = (options) => {
|
|
1201
|
+
return (options.client ?? _heyApiClient).put({
|
|
1202
|
+
security: [
|
|
1203
|
+
{
|
|
1204
|
+
scheme: 'bearer',
|
|
1205
|
+
type: 'http'
|
|
1206
|
+
}
|
|
1207
|
+
],
|
|
1208
|
+
url: '/vacancies/favorited/{vacancy_id}',
|
|
1209
|
+
...options
|
|
1210
|
+
});
|
|
1211
|
+
};
|
|
1212
|
+
/**
|
|
1213
|
+
* Варианты публикации вакансий у текущего менеджера
|
|
1214
|
+
* Метод позволяет понять, может ли менеджер публиковать вакансии и какие типы вакансий ему доступны. Возвращает все возможные типы публикации
|
|
1215
|
+
*/
|
|
1216
|
+
export const getAvailableVacancyTypes = (options) => {
|
|
1217
|
+
return (options.client ?? _heyApiClient).get({
|
|
1218
|
+
security: [
|
|
1219
|
+
{
|
|
1220
|
+
scheme: 'bearer',
|
|
1221
|
+
type: 'http'
|
|
1222
|
+
}
|
|
1223
|
+
],
|
|
1224
|
+
url: '/employers/{employer_id}/managers/{manager_id}/vacancies/available_types',
|
|
1225
|
+
...options
|
|
1226
|
+
});
|
|
1227
|
+
};
|
|
1228
|
+
/**
|
|
1229
|
+
* Статистика по вакансии
|
|
1230
|
+
* Возвращает статистику за последние пять дней существования вакансии.
|
|
1231
|
+
*
|
|
1232
|
+
* При этом:
|
|
1233
|
+
*
|
|
1234
|
+
* * Если вакансия создана менее пяти дней назад, то первой датой в ответе будет дата создания вакансии. Для будущих дат в полях `responses` и `views` вернется `null`.
|
|
1235
|
+
* * Если вакансия находится в архиве или удалена, то последней датой будет дата архивации
|
|
1236
|
+
*
|
|
1237
|
+
*/
|
|
1238
|
+
export const getVacancyStats = (options) => {
|
|
1239
|
+
return (options.client ?? _heyApiClient).get({
|
|
1240
|
+
security: [
|
|
1241
|
+
{
|
|
1242
|
+
scheme: 'bearer',
|
|
1243
|
+
type: 'http'
|
|
1244
|
+
}
|
|
1245
|
+
],
|
|
1246
|
+
url: '/vacancies/{vacancy_id}/stats',
|
|
1247
|
+
...options
|
|
1248
|
+
});
|
|
1249
|
+
};
|
|
1250
|
+
/**
|
|
1251
|
+
* Список архивных вакансий
|
|
1252
|
+
*/
|
|
1253
|
+
export const getArchivedVacancies = (options) => {
|
|
1254
|
+
return (options.client ?? _heyApiClient).get({
|
|
1255
|
+
security: [
|
|
1256
|
+
{
|
|
1257
|
+
scheme: 'bearer',
|
|
1258
|
+
type: 'http'
|
|
1259
|
+
}
|
|
1260
|
+
],
|
|
1261
|
+
url: '/employers/{employer_id}/vacancies/archived',
|
|
1262
|
+
...options
|
|
1263
|
+
});
|
|
1264
|
+
};
|
|
1265
|
+
/**
|
|
1266
|
+
* Условия загрузки портфолио
|
|
1267
|
+
*/
|
|
1268
|
+
export const getArtifactsPortfolioConditions = (options) => {
|
|
1269
|
+
return (options.client ?? _heyApiClient).get({
|
|
1270
|
+
security: [
|
|
1271
|
+
{
|
|
1272
|
+
scheme: 'bearer',
|
|
1273
|
+
type: 'http'
|
|
1274
|
+
}
|
|
1275
|
+
],
|
|
1276
|
+
url: '/artifacts/portfolio/conditions',
|
|
1277
|
+
...options
|
|
1278
|
+
});
|
|
1279
|
+
};
|
|
1280
|
+
/**
|
|
1281
|
+
* Удаление артефакта
|
|
1282
|
+
*/
|
|
1283
|
+
export const deleteArtifact = (options) => {
|
|
1284
|
+
return (options.client ?? _heyApiClient).delete({
|
|
1285
|
+
security: [
|
|
1286
|
+
{
|
|
1287
|
+
scheme: 'bearer',
|
|
1288
|
+
type: 'http'
|
|
1289
|
+
}
|
|
1290
|
+
],
|
|
1291
|
+
url: '/artifacts/{id}',
|
|
1292
|
+
...options
|
|
1293
|
+
});
|
|
1294
|
+
};
|
|
1295
|
+
/**
|
|
1296
|
+
* Редактирование артефакта
|
|
1297
|
+
* Метод позволяет отредактировать описание портфолио
|
|
1298
|
+
*/
|
|
1299
|
+
export const editArtifact = (options) => {
|
|
1300
|
+
return (options.client ?? _heyApiClient).put({
|
|
1301
|
+
...formDataBodySerializer,
|
|
1302
|
+
security: [
|
|
1303
|
+
{
|
|
1304
|
+
scheme: 'bearer',
|
|
1305
|
+
type: 'http'
|
|
1306
|
+
}
|
|
1307
|
+
],
|
|
1308
|
+
url: '/artifacts/{id}',
|
|
1309
|
+
...options,
|
|
1310
|
+
headers: {
|
|
1311
|
+
'Content-Type': null,
|
|
1312
|
+
...options.headers
|
|
1313
|
+
}
|
|
1314
|
+
});
|
|
1315
|
+
};
|
|
1316
|
+
/**
|
|
1317
|
+
* Загрузка артефакта
|
|
1318
|
+
* Запрос загружает файл с локальной машины в сервис.
|
|
1319
|
+
*
|
|
1320
|
+
* Ограничения на типы файлов и их размер доступны в [условиях загрузки артефактов](#tag/Rabota-s-artefaktami).
|
|
1321
|
+
*
|
|
1322
|
+
* Для прикрепления загруженных изображений в резюме, необходимо передать `id` артефакта в [соответствующее поле резюме](https://github.com/hhru/api/blob/master/docs/employer_resumes.md#resume-fields). Для удаления артефакта из резюме укажите `null`
|
|
1323
|
+
*
|
|
1324
|
+
*/
|
|
1325
|
+
export const loadArtifact = (options) => {
|
|
1326
|
+
return (options.client ?? _heyApiClient).post({
|
|
1327
|
+
...formDataBodySerializer,
|
|
1328
|
+
security: [
|
|
1329
|
+
{
|
|
1330
|
+
scheme: 'bearer',
|
|
1331
|
+
type: 'http'
|
|
1332
|
+
}
|
|
1333
|
+
],
|
|
1334
|
+
url: '/artifacts',
|
|
1335
|
+
...options,
|
|
1336
|
+
headers: {
|
|
1337
|
+
'Content-Type': null,
|
|
1338
|
+
...options.headers
|
|
1339
|
+
}
|
|
1340
|
+
});
|
|
1341
|
+
};
|
|
1342
|
+
/**
|
|
1343
|
+
* Получение портфолио
|
|
1344
|
+
* Возвращает список ранее загруженных изображений с портфолио. Их можно использовать при создании/редактировании резюме
|
|
1345
|
+
*/
|
|
1346
|
+
export const getArtifactsPortfolio = (options) => {
|
|
1347
|
+
return (options.client ?? _heyApiClient).get({
|
|
1348
|
+
security: [
|
|
1349
|
+
{
|
|
1350
|
+
scheme: 'bearer',
|
|
1351
|
+
type: 'http'
|
|
1352
|
+
}
|
|
1353
|
+
],
|
|
1354
|
+
url: '/artifacts/portfolio',
|
|
1355
|
+
...options
|
|
1356
|
+
});
|
|
1357
|
+
};
|
|
1358
|
+
/**
|
|
1359
|
+
* Условия загрузки фотографий
|
|
1360
|
+
*/
|
|
1361
|
+
export const getArtifactPhotosConditions = (options) => {
|
|
1362
|
+
return (options.client ?? _heyApiClient).get({
|
|
1363
|
+
security: [
|
|
1364
|
+
{
|
|
1365
|
+
scheme: 'bearer',
|
|
1366
|
+
type: 'http'
|
|
1367
|
+
}
|
|
1368
|
+
],
|
|
1369
|
+
url: '/artifacts/photo/conditions',
|
|
1370
|
+
...options
|
|
1371
|
+
});
|
|
1372
|
+
};
|
|
1373
|
+
/**
|
|
1374
|
+
* Получение фотографий
|
|
1375
|
+
* Возвращает список ранее загруженных изображений с фотографиями. Их можно использовать при создании/редактировании резюме
|
|
1376
|
+
*/
|
|
1377
|
+
export const getArtifactPhotos = (options) => {
|
|
1378
|
+
return (options.client ?? _heyApiClient).get({
|
|
1379
|
+
security: [
|
|
1380
|
+
{
|
|
1381
|
+
scheme: 'bearer',
|
|
1382
|
+
type: 'http'
|
|
1383
|
+
}
|
|
1384
|
+
],
|
|
1385
|
+
url: '/artifacts/photo',
|
|
1386
|
+
...options
|
|
1387
|
+
});
|
|
1388
|
+
};
|
|
1389
|
+
/**
|
|
1390
|
+
* Справочники полей
|
|
1391
|
+
* Справочники полей и сущностей, используемых в API. Значения в справочниках могут поменяться в любой момент
|
|
1392
|
+
*/
|
|
1393
|
+
export const getDictionaries = (options) => {
|
|
1394
|
+
return (options.client ?? _heyApiClient).get({
|
|
1395
|
+
security: [
|
|
1396
|
+
{
|
|
1397
|
+
scheme: 'bearer',
|
|
1398
|
+
type: 'http'
|
|
1399
|
+
}
|
|
1400
|
+
],
|
|
1401
|
+
url: '/dictionaries',
|
|
1402
|
+
...options
|
|
1403
|
+
});
|
|
1404
|
+
};
|
|
1405
|
+
/**
|
|
1406
|
+
* Список всех языков
|
|
1407
|
+
*/
|
|
1408
|
+
export const getLanguages = (options) => {
|
|
1409
|
+
return (options.client ?? _heyApiClient).get({
|
|
1410
|
+
security: [
|
|
1411
|
+
{
|
|
1412
|
+
scheme: 'bearer',
|
|
1413
|
+
type: 'http'
|
|
1414
|
+
}
|
|
1415
|
+
],
|
|
1416
|
+
url: '/languages',
|
|
1417
|
+
...options
|
|
1418
|
+
});
|
|
1419
|
+
};
|
|
1420
|
+
/**
|
|
1421
|
+
* Основная информация об учебных заведениях
|
|
1422
|
+
*/
|
|
1423
|
+
export const getEducationalInstitutionsDictionary = (options) => {
|
|
1424
|
+
return (options.client ?? _heyApiClient).get({
|
|
1425
|
+
security: [
|
|
1426
|
+
{
|
|
1427
|
+
scheme: 'bearer',
|
|
1428
|
+
type: 'http'
|
|
1429
|
+
}
|
|
1430
|
+
],
|
|
1431
|
+
url: '/educational_institutions',
|
|
1432
|
+
...options
|
|
1433
|
+
});
|
|
1434
|
+
};
|
|
1435
|
+
/**
|
|
1436
|
+
* Справочник ключевых навыков
|
|
1437
|
+
* Метод возвращает информацию по запрашиваемым ключевым навыкам.
|
|
1438
|
+
*
|
|
1439
|
+
* Значения в справочнике могут поменяться в любой момент
|
|
1440
|
+
*
|
|
1441
|
+
*/
|
|
1442
|
+
export const getSkills = (options) => {
|
|
1443
|
+
return (options.client ?? _heyApiClient).get({
|
|
1444
|
+
security: [
|
|
1445
|
+
{
|
|
1446
|
+
scheme: 'bearer',
|
|
1447
|
+
type: 'http'
|
|
1448
|
+
}
|
|
1449
|
+
],
|
|
1450
|
+
url: '/skills',
|
|
1451
|
+
...options
|
|
1452
|
+
});
|
|
1453
|
+
};
|
|
1454
|
+
/**
|
|
1455
|
+
* Справочник профессиональных ролей
|
|
1456
|
+
* Возвращает профессиональные роли, их категории и другую информацию о профессиональных ролях
|
|
1457
|
+
*
|
|
1458
|
+
*/
|
|
1459
|
+
export const getProfessionalRolesDictionary = (options) => {
|
|
1460
|
+
return (options.client ?? _heyApiClient).get({
|
|
1461
|
+
security: [
|
|
1462
|
+
{
|
|
1463
|
+
scheme: 'bearer',
|
|
1464
|
+
type: 'http'
|
|
1465
|
+
}
|
|
1466
|
+
],
|
|
1467
|
+
url: '/professional_roles',
|
|
1468
|
+
...options
|
|
1469
|
+
});
|
|
1470
|
+
};
|
|
1471
|
+
/**
|
|
1472
|
+
* Список факультетов учебного заведения
|
|
1473
|
+
* Возвращает список факультетов указанного учебного заведения
|
|
1474
|
+
*/
|
|
1475
|
+
export const getFaculties = (options) => {
|
|
1476
|
+
return (options.client ?? _heyApiClient).get({
|
|
1477
|
+
security: [
|
|
1478
|
+
{
|
|
1479
|
+
scheme: 'bearer',
|
|
1480
|
+
type: 'http'
|
|
1481
|
+
}
|
|
1482
|
+
],
|
|
1483
|
+
url: '/educational_institutions/{id}/faculties',
|
|
1484
|
+
...options
|
|
1485
|
+
});
|
|
1486
|
+
};
|
|
1487
|
+
/**
|
|
1488
|
+
* Отрасли компаний
|
|
1489
|
+
* Возвращает двухуровневый справочник всех отраслей
|
|
1490
|
+
*/
|
|
1491
|
+
export const getIndustries = (options) => {
|
|
1492
|
+
return (options.client ?? _heyApiClient).get({
|
|
1493
|
+
security: [
|
|
1494
|
+
{
|
|
1495
|
+
scheme: 'bearer',
|
|
1496
|
+
type: 'http'
|
|
1497
|
+
}
|
|
1498
|
+
],
|
|
1499
|
+
url: '/industries',
|
|
1500
|
+
...options
|
|
1501
|
+
});
|
|
1502
|
+
};
|
|
1503
|
+
/**
|
|
1504
|
+
* Действия по отклику/приглашению коллекции
|
|
1505
|
+
* Запрос изменяет состояние работодательского (`employer_state`) или соискательского (`state`) состояния отклика/приглашения.
|
|
1506
|
+
*
|
|
1507
|
+
* #### Смена работодательского состояния отклика/приглашения
|
|
1508
|
+
*
|
|
1509
|
+
* > Доступные действия для каждого отклика/приглашения перечислены в массиве `employer_states` [списка откликов/приглашений](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiations).
|
|
1510
|
+
*
|
|
1511
|
+
* Чтобы изменить состояние отклика, выполните запрос из параметра `actions[].url` [списка откликов/приглашений](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-collection-negotiations-list) для выбранного действия над откликом.
|
|
1512
|
+
* В запросе необходимо передать аргументы массива `actions[].arguments` в формате `application/x-www-form-urlencoded`.
|
|
1513
|
+
*
|
|
1514
|
+
* Примеры действий:
|
|
1515
|
+
*
|
|
1516
|
+
* * отложить отклик;
|
|
1517
|
+
* * пригласить соискателя на интервью в ответ на отклик;
|
|
1518
|
+
* * отказать соискателю.
|
|
1519
|
+
*
|
|
1520
|
+
* #### Смена соискательского состояния отклика/приглашения
|
|
1521
|
+
*
|
|
1522
|
+
* Изменение соискательского состояния отклика/приглашения влияет на [статистику по работе с откликами](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiations-statistics-employer).
|
|
1523
|
+
*
|
|
1524
|
+
* Условие смены соискательского состояния отклика/приглашения — отправка сообщения соискателю любым из способов:
|
|
1525
|
+
*
|
|
1526
|
+
* - Совершить действие с откликом/приглашением, используя метод `/negotiations/{collection_name}/{nid}`, с сопроводительным сообщением.
|
|
1527
|
+
* - [Отправить сообщение](#tag/Otklikipriglasheniya-rabotodatelya/operation/send-negotiation-message) в отклике. Статус изменится, если перед отправкой использовался метод изменения работодательского статуса без сопроводительного сообщения.
|
|
1528
|
+
*
|
|
1529
|
+
* Соискательский статус в обоих случаях изменится или на приглашение (`invitation`), или на отказ (`discard`)
|
|
1530
|
+
*
|
|
1531
|
+
*/
|
|
1532
|
+
export const changeNegotiationAction = (options) => {
|
|
1533
|
+
return (options.client ?? _heyApiClient).put({
|
|
1534
|
+
security: [
|
|
1535
|
+
{
|
|
1536
|
+
scheme: 'bearer',
|
|
1537
|
+
type: 'http'
|
|
1538
|
+
}
|
|
1539
|
+
],
|
|
1540
|
+
url: '/negotiations/{collection_name}/{nid}',
|
|
1541
|
+
...options
|
|
1542
|
+
});
|
|
1543
|
+
};
|
|
1544
|
+
/**
|
|
1545
|
+
* Список откликов/приглашений
|
|
1546
|
+
* Возвращает список откликов соискателя или список коллекций откликов/приглашений по [вакансии](#tag/Upravlenie-vakansiyami/operation/get-active-vacancy-list) работодателя.
|
|
1547
|
+
*
|
|
1548
|
+
* По умолчанию отклики сортируются по дате последнего обновления — от новых к старым.
|
|
1549
|
+
*
|
|
1550
|
+
* Чтобы получить список активных откликов, передайте в запросе параметр `?status=active`
|
|
1551
|
+
*
|
|
1552
|
+
*/
|
|
1553
|
+
export const getNegotiations = (options) => {
|
|
1554
|
+
return (options.client ?? _heyApiClient).get({
|
|
1555
|
+
security: [
|
|
1556
|
+
{
|
|
1557
|
+
scheme: 'bearer',
|
|
1558
|
+
type: 'http'
|
|
1559
|
+
}
|
|
1560
|
+
],
|
|
1561
|
+
url: '/negotiations',
|
|
1562
|
+
...options
|
|
1563
|
+
});
|
|
1564
|
+
};
|
|
1565
|
+
/**
|
|
1566
|
+
* Отклик на вакансию
|
|
1567
|
+
* Запрос позволяет пользователю откликнуться на вакансию.
|
|
1568
|
+
*
|
|
1569
|
+
* Чтобы узнать, какими резюме возможно откликнуться на конкретную вакансию, воспользуйтесь [списком подходящих резюме](#tag/Rezyume.-Prosmotr-informacii/operation/get-suitable-resumes)
|
|
1570
|
+
*
|
|
1571
|
+
*/
|
|
1572
|
+
export const applyToVacancy = (options) => {
|
|
1573
|
+
return (options.client ?? _heyApiClient).post({
|
|
1574
|
+
...formDataBodySerializer,
|
|
1575
|
+
security: [
|
|
1576
|
+
{
|
|
1577
|
+
scheme: 'bearer',
|
|
1578
|
+
type: 'http'
|
|
1579
|
+
}
|
|
1580
|
+
],
|
|
1581
|
+
url: '/negotiations',
|
|
1582
|
+
...options,
|
|
1583
|
+
headers: {
|
|
1584
|
+
'Content-Type': null,
|
|
1585
|
+
...options.headers
|
|
1586
|
+
}
|
|
1587
|
+
});
|
|
1588
|
+
};
|
|
1589
|
+
/**
|
|
1590
|
+
* Статистика откликов для менеджера
|
|
1591
|
+
* Запрос выводит статистику по работе с откликами для вакансий менеджера за период (30 дней). Статистика менеджера доступна самому менеджеру, а также менеджерам с [типом](#tag/Menedzhery-rabotodatelya/operation/get-employer-manager-types) `main_contact_person`.
|
|
1592
|
+
*
|
|
1593
|
+
* Дополнительно рассчитывается [индекс вежливости](https://hh.ru/article/23734) менеджера по всем вакансиям
|
|
1594
|
+
*
|
|
1595
|
+
*/
|
|
1596
|
+
export const getNegotiationsStatisticsManager = (options) => {
|
|
1597
|
+
return (options.client ?? _heyApiClient).get({
|
|
1598
|
+
security: [
|
|
1599
|
+
{
|
|
1600
|
+
scheme: 'bearer',
|
|
1601
|
+
type: 'http'
|
|
1602
|
+
}
|
|
1603
|
+
],
|
|
1604
|
+
url: '/employers/{employer_id}/managers/{manager_id}/negotiations_statistics',
|
|
1605
|
+
...options
|
|
1606
|
+
});
|
|
1607
|
+
};
|
|
1608
|
+
/**
|
|
1609
|
+
* Список активных откликов
|
|
1610
|
+
* Возвращает список активных откликов соискателя.
|
|
1611
|
+
*
|
|
1612
|
+
* Запрос является устаревшим и поддерживается для обратной совместимости. Вместо него используйте [запрос списка откликов](#tag/Perepiska-(otklikipriglasheniya)-dlya-soiskatelya/operation/get-negotiations) с параметром `?status=active`
|
|
1613
|
+
*
|
|
1614
|
+
* @deprecated
|
|
1615
|
+
*/
|
|
1616
|
+
export const getActiveNegotiations = (options) => {
|
|
1617
|
+
return (options.client ?? _heyApiClient).get({
|
|
1618
|
+
security: [
|
|
1619
|
+
{
|
|
1620
|
+
scheme: 'bearer',
|
|
1621
|
+
type: 'http'
|
|
1622
|
+
}
|
|
1623
|
+
],
|
|
1624
|
+
url: '/negotiations/active',
|
|
1625
|
+
...options
|
|
1626
|
+
});
|
|
1627
|
+
};
|
|
1628
|
+
/**
|
|
1629
|
+
* Список шаблонов ответов для отклика/приглашения
|
|
1630
|
+
* Метод требует наличия [платного доступа для работодателя](#operation/get-payable-api-method-access).
|
|
1631
|
+
*
|
|
1632
|
+
* Возвращает список шаблонов ответов для отклика/приглашения или резюме. Может использоваться в отправляемых соискателю приглашениях на вакансию или [действиях по откликам/приглашениям](#tag/Otklikipriglasheniya-rabotodatelya/operation/put-negotiations-collection-to-next-state).
|
|
1633
|
+
*
|
|
1634
|
+
* > Количество доступных шаблонов будет зависеть от конкретного отклика/приглашения или вакансии и их статусов.
|
|
1635
|
+
*
|
|
1636
|
+
* Рекомендуется использовать URL из поля `templates.url` в [списке откликов/приглашений](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiations). Примеры:
|
|
1637
|
+
*
|
|
1638
|
+
* ```
|
|
1639
|
+
* GET /message_templates/{template}?topic_id={topic_id}
|
|
1640
|
+
* GET /message_templates/{template}?vacancy_id={vacancy_id}&resume_id={resume_id}
|
|
1641
|
+
* ```
|
|
1642
|
+
*
|
|
1643
|
+
*/
|
|
1644
|
+
export const getNegotiationMessageTemplates = (options) => {
|
|
1645
|
+
return (options.client ?? _heyApiClient).get({
|
|
1646
|
+
security: [
|
|
1647
|
+
{
|
|
1648
|
+
scheme: 'bearer',
|
|
1649
|
+
type: 'http'
|
|
1650
|
+
}
|
|
1651
|
+
],
|
|
1652
|
+
url: '/message_templates/{template}',
|
|
1653
|
+
...options
|
|
1654
|
+
});
|
|
1655
|
+
};
|
|
1656
|
+
/**
|
|
1657
|
+
* Список откликов/приглашений коллекции
|
|
1658
|
+
* Возвращает список откликов/приглашений для заданной коллекции. URL для запроса необходимо брать из поля `collections[].url` [списка коллекций](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiations).
|
|
1659
|
+
*
|
|
1660
|
+
* > Вместо `response` необходимо указывать параметр `{collection_name}` — название коллекции. Возможные значения указаны в поле `collections[].id` [списка коллекций](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiations).
|
|
1661
|
+
*
|
|
1662
|
+
* В ответе будет только основная информация о резюме. Чтобы получить дополнительную информацию, например, контактный телефон, необходимо [запросить полное резюме](#tag/Upravlenie-vakansiyami/operation/get-vacancy).
|
|
1663
|
+
*
|
|
1664
|
+
* Некоторые параметры запроса могут принимать множественные значения: `key=value&key=value`. Если параметр может принимать несколько значений, об этом явно указано в его описании. Неизвестные параметры и параметры с ошибкой в названии игнорируются.
|
|
1665
|
+
*
|
|
1666
|
+
* > Коллекция `phone_calls` принимает только параметры `vacancy_id`, `order_by`, `page` и `per_page`
|
|
1667
|
+
*
|
|
1668
|
+
*/
|
|
1669
|
+
export const getCollectionNegotiationsList = (options) => {
|
|
1670
|
+
return (options.client ?? _heyApiClient).get({
|
|
1671
|
+
security: [
|
|
1672
|
+
{
|
|
1673
|
+
scheme: 'bearer',
|
|
1674
|
+
type: 'http'
|
|
1675
|
+
}
|
|
1676
|
+
],
|
|
1677
|
+
url: '/negotiations/response',
|
|
1678
|
+
...options
|
|
1679
|
+
});
|
|
1680
|
+
};
|
|
1681
|
+
/**
|
|
1682
|
+
* Пригласить соискателя на вакансию
|
|
1683
|
+
* Запрос формирует приглашение на вакансию для соискателя по инициативе работодателя.
|
|
1684
|
+
*
|
|
1685
|
+
* > Вместо `phone_interview` необходимо сформировать запрос из параметра `negotiations_actions[].url` [списка подходящих вакансий к резюме](#tag/Upravlenie-vakansiyami/operation/get-active-vacancy-list), передав аргументы из массива `negotiations_actions[].arguments`.
|
|
1686
|
+
*
|
|
1687
|
+
* Пример запроса:
|
|
1688
|
+
*
|
|
1689
|
+
* ```
|
|
1690
|
+
* POST /negotiations/phone_interview?resume_id=123456&vacancy_id=654321&message=new_msg
|
|
1691
|
+
* ```
|
|
1692
|
+
*
|
|
1693
|
+
*/
|
|
1694
|
+
export const inviteApplicantToVacancy = (options) => {
|
|
1695
|
+
return (options.client ?? _heyApiClient).post({
|
|
1696
|
+
...urlSearchParamsBodySerializer,
|
|
1697
|
+
security: [
|
|
1698
|
+
{
|
|
1699
|
+
scheme: 'bearer',
|
|
1700
|
+
type: 'http'
|
|
1701
|
+
}
|
|
1702
|
+
],
|
|
1703
|
+
url: '/negotiations/phone_interview',
|
|
1704
|
+
...options,
|
|
1705
|
+
headers: {
|
|
1706
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
1707
|
+
...options.headers
|
|
1708
|
+
}
|
|
1709
|
+
});
|
|
1710
|
+
};
|
|
1711
|
+
/**
|
|
1712
|
+
* Получить результаты тестов, прикрепленных к вакансии
|
|
1713
|
+
* Запрос возвращает информацию о пройденных тестах откликнувшегося соискателя
|
|
1714
|
+
*/
|
|
1715
|
+
export const getNegotiationTestResults = (options) => {
|
|
1716
|
+
return (options.client ?? _heyApiClient).get({
|
|
1717
|
+
security: [
|
|
1718
|
+
{
|
|
1719
|
+
scheme: 'bearer',
|
|
1720
|
+
type: 'http'
|
|
1721
|
+
}
|
|
1722
|
+
],
|
|
1723
|
+
url: '/negotiations/{nid}/test/solution',
|
|
1724
|
+
...options
|
|
1725
|
+
});
|
|
1726
|
+
};
|
|
1727
|
+
/**
|
|
1728
|
+
* Редактирование сообщения в отклике
|
|
1729
|
+
* На данный момент доступно редактирование только сообщения при отклике.
|
|
1730
|
+
*
|
|
1731
|
+
* Текст сообщения можно редактировать после отправки при соблюдении следующих условий:
|
|
1732
|
+
* - сообщение еще не прочитано другой стороной;
|
|
1733
|
+
* - вакансия, на которую отправлялся отклик, должна быть активна (не в архиве);
|
|
1734
|
+
* - резюме из отклика не должно быть скрыто или удалено.
|
|
1735
|
+
*
|
|
1736
|
+
* Условия могут измениться.
|
|
1737
|
+
*
|
|
1738
|
+
* У каждого сообщения в [списке сообщений в отклике](https://github.com/hhru/api/blob/master/docs/negotiations.md#%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-%D0%B2-%D0%BE%D1%82%D0%BA%D0%BB%D0%B8%D0%BA%D0%B5) в поле `editable` указана возможность редактирования
|
|
1739
|
+
*
|
|
1740
|
+
*/
|
|
1741
|
+
export const editNegotiationMessage = (options) => {
|
|
1742
|
+
return (options.client ?? _heyApiClient).put({
|
|
1743
|
+
security: [
|
|
1744
|
+
{
|
|
1745
|
+
scheme: 'bearer',
|
|
1746
|
+
type: 'http'
|
|
1747
|
+
}
|
|
1748
|
+
],
|
|
1749
|
+
url: '/negotiations/{nid}/messages/{mid}',
|
|
1750
|
+
...options
|
|
1751
|
+
});
|
|
1752
|
+
};
|
|
1753
|
+
/**
|
|
1754
|
+
* Отметить отклики прочитанными
|
|
1755
|
+
*/
|
|
1756
|
+
export const postNegotiationsTopicsRead = (options) => {
|
|
1757
|
+
return (options.client ?? _heyApiClient).post({
|
|
1758
|
+
...urlSearchParamsBodySerializer,
|
|
1759
|
+
security: [
|
|
1760
|
+
{
|
|
1761
|
+
scheme: 'bearer',
|
|
1762
|
+
type: 'http'
|
|
1763
|
+
}
|
|
1764
|
+
],
|
|
1765
|
+
url: '/negotiations/read',
|
|
1766
|
+
...options,
|
|
1767
|
+
headers: {
|
|
1768
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
1769
|
+
...options.headers
|
|
1770
|
+
}
|
|
1771
|
+
});
|
|
1772
|
+
};
|
|
1773
|
+
/**
|
|
1774
|
+
* Скрыть отклик
|
|
1775
|
+
*/
|
|
1776
|
+
export const hideActiveResponse = (options) => {
|
|
1777
|
+
return (options.client ?? _heyApiClient).delete({
|
|
1778
|
+
security: [
|
|
1779
|
+
{
|
|
1780
|
+
scheme: 'bearer',
|
|
1781
|
+
type: 'http'
|
|
1782
|
+
}
|
|
1783
|
+
],
|
|
1784
|
+
url: '/negotiations/active/{nid}',
|
|
1785
|
+
...options
|
|
1786
|
+
});
|
|
1787
|
+
};
|
|
1788
|
+
/**
|
|
1789
|
+
* Просмотр отклика/приглашения
|
|
1790
|
+
* Запрос возвращает информацию об отклике/приглашении по его ID.
|
|
1791
|
+
*
|
|
1792
|
+
* Работодатель может получить URL для запроса из [списка откликов/приглашений](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-collection-negotiations-list) (поле `items[].url`).
|
|
1793
|
+
*
|
|
1794
|
+
* > !! Обратите внимание, что методы для работы с сообщениями в рамках отклика/приглашения от имени [соискателя](#tag/Perepiska-(otklikipriglasheniya)-dlya-soiskatelya/operation/get-negotiation-messages) и [менеджера работодателя](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiation-messages) устарели, и новые возможности [чатов](https://feedback.hh.ru/knowledge-base/article/1290) в них не будут поддерживаться
|
|
1795
|
+
*
|
|
1796
|
+
*/
|
|
1797
|
+
export const getNegotiationItem = (options) => {
|
|
1798
|
+
return (options.client ?? _heyApiClient).get({
|
|
1799
|
+
security: [
|
|
1800
|
+
{
|
|
1801
|
+
scheme: 'bearer',
|
|
1802
|
+
type: 'http'
|
|
1803
|
+
}
|
|
1804
|
+
],
|
|
1805
|
+
url: '/negotiations/{id}',
|
|
1806
|
+
...options
|
|
1807
|
+
});
|
|
1808
|
+
};
|
|
1809
|
+
/**
|
|
1810
|
+
* Действия по откликам/приглашениям
|
|
1811
|
+
* Работодатель может изменять состояние (state) отклика для соискателя, чтобы повысить качество обратной связи и упростить работу со статистикой откликов.
|
|
1812
|
+
*
|
|
1813
|
+
* Если работодатель, используя данный метод, отправляет соискателю сообщение об изменении состояния отклика/приглашения (поле `message` в теле запроса), это приведет также к изменению соискательского состояния отклика/приглашения.
|
|
1814
|
+
*
|
|
1815
|
+
* Обязательность аргументов в теле запроса отличается для разных откликов/приглашений. Проверить, является ли аргумент обязательным можно в поле `actions.arguments`, которое возвращается для каждого отклика в [списке откликов/приглашений](https://github.com/hhru/api/blob/master/docs/employer_negotiations.md#действия-по-откликуприглашению-actions)
|
|
1816
|
+
*
|
|
1817
|
+
*/
|
|
1818
|
+
export const putNegotiationsCollectionToNextState = (options) => {
|
|
1819
|
+
return (options.client ?? _heyApiClient).put({
|
|
1820
|
+
...urlSearchParamsBodySerializer,
|
|
1821
|
+
security: [
|
|
1822
|
+
{
|
|
1823
|
+
scheme: 'bearer',
|
|
1824
|
+
type: 'http'
|
|
1825
|
+
}
|
|
1826
|
+
],
|
|
1827
|
+
url: '/negotiations/{id}',
|
|
1828
|
+
...options,
|
|
1829
|
+
headers: {
|
|
1830
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
1831
|
+
...options.headers
|
|
1832
|
+
}
|
|
1833
|
+
});
|
|
1834
|
+
};
|
|
1835
|
+
/**
|
|
1836
|
+
* Статистика откликов для компании
|
|
1837
|
+
* Запрос выводит статистику по работе с откликами для вакансий компании за период (30 дней).
|
|
1838
|
+
*
|
|
1839
|
+
* Дополнительно рассчитывается [индекс вежливости](https://hh.ru/article/23734) компании по всем вакансиям
|
|
1840
|
+
*
|
|
1841
|
+
*/
|
|
1842
|
+
export const getNegotiationsStatisticsEmployer = (options) => {
|
|
1843
|
+
return (options.client ?? _heyApiClient).get({
|
|
1844
|
+
security: [
|
|
1845
|
+
{
|
|
1846
|
+
scheme: 'bearer',
|
|
1847
|
+
type: 'http'
|
|
1848
|
+
}
|
|
1849
|
+
],
|
|
1850
|
+
url: '/employers/{employer_id}/negotiations_statistics',
|
|
1851
|
+
...options
|
|
1852
|
+
});
|
|
1853
|
+
};
|
|
1854
|
+
/**
|
|
1855
|
+
* Просмотр списка сообщений в отклике/приглашении
|
|
1856
|
+
* Запрос возвращает список всех сообщений выбранного отклика/приглашения. Работодатель может посмотреть список по URL, указанному в поле `messages` [списка откликов/приглашений](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiations) или в [отдельном отклике](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiation-item).
|
|
1857
|
+
*
|
|
1858
|
+
* Типы сообщений:
|
|
1859
|
+
*
|
|
1860
|
+
* * сопроводительное письмо соискателя;
|
|
1861
|
+
* * сопроводительное письмо работодателя при смене статуса отклика;
|
|
1862
|
+
* * свободная переписка между соискателем и работодателем.
|
|
1863
|
+
*
|
|
1864
|
+
* ‼️ Обратите внимание, что методы для работы с сообщениями в рамках отклика/приглашения от имени [соискателя](#tag/Perepiska-(otklikipriglasheniya)-dlya-soiskatelya/operation/get-negotiation-messages) и
|
|
1865
|
+
* [менеджера работодателя](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiation-messages) устарели, и новые возможности [чатов](https://feedback.hh.ru/knowledge-base/article/1290) в них не будут поддерживаться.
|
|
1866
|
+
* В связи с этим переписка может некорректно отображаться
|
|
1867
|
+
*
|
|
1868
|
+
*/
|
|
1869
|
+
export const getNegotiationMessages = (options) => {
|
|
1870
|
+
return (options.client ?? _heyApiClient).get({
|
|
1871
|
+
security: [
|
|
1872
|
+
{
|
|
1873
|
+
scheme: 'bearer',
|
|
1874
|
+
type: 'http'
|
|
1875
|
+
}
|
|
1876
|
+
],
|
|
1877
|
+
url: '/negotiations/{nid}/messages',
|
|
1878
|
+
...options
|
|
1879
|
+
});
|
|
1880
|
+
};
|
|
1881
|
+
/**
|
|
1882
|
+
* Отправка нового сообщения
|
|
1883
|
+
* Запрос отправляет новое сообщение в рамках переписки.
|
|
1884
|
+
*
|
|
1885
|
+
* Отправить новое сообщение можно, если:
|
|
1886
|
+
*
|
|
1887
|
+
* * Работодатель пригласил соискателя на вакансию.
|
|
1888
|
+
* * Соискатель оставил отклик на вакансию.
|
|
1889
|
+
*
|
|
1890
|
+
* Если вакансия была отправлена в архив или соискатель удалил резюме, переписка будет недоступна. Работодатель также может вручную отключить переписку для вакансии.
|
|
1891
|
+
*
|
|
1892
|
+
* ‼️ Обратите внимание, что методы для работы с сообщениями в рамках отклика/приглашения от имени [соискателя](#tag/Perepiska-(otklikipriglasheniya)-dlya-soiskatelya/operation/get-negotiation-messages) и
|
|
1893
|
+
* [менеджера работодателя](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiation-messages) устарели, и новые возможности [чатов](https://feedback.hh.ru/knowledge-base/article/1290) в них не будут поддерживаться.
|
|
1894
|
+
* В связи с этим переписка может некорректно отображаться
|
|
1895
|
+
*
|
|
1896
|
+
*/
|
|
1897
|
+
export const sendNegotiationMessage = (options) => {
|
|
1898
|
+
return (options.client ?? _heyApiClient).post({
|
|
1899
|
+
...urlSearchParamsBodySerializer,
|
|
1900
|
+
security: [
|
|
1901
|
+
{
|
|
1902
|
+
scheme: 'bearer',
|
|
1903
|
+
type: 'http'
|
|
1904
|
+
}
|
|
1905
|
+
],
|
|
1906
|
+
url: '/negotiations/{nid}/messages',
|
|
1907
|
+
...options,
|
|
1908
|
+
headers: {
|
|
1909
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
1910
|
+
...options.headers
|
|
1911
|
+
}
|
|
1912
|
+
});
|
|
1913
|
+
};
|
|
1914
|
+
/**
|
|
1915
|
+
* Удаление черновика вакансии
|
|
1916
|
+
*/
|
|
1917
|
+
export const deleteVacancyDraft = (options) => {
|
|
1918
|
+
return (options.client ?? _heyApiClient).delete({
|
|
1919
|
+
security: [
|
|
1920
|
+
{
|
|
1921
|
+
scheme: 'bearer',
|
|
1922
|
+
type: 'http'
|
|
1923
|
+
}
|
|
1924
|
+
],
|
|
1925
|
+
url: '/vacancies/drafts/{draft_id}',
|
|
1926
|
+
...options
|
|
1927
|
+
});
|
|
1928
|
+
};
|
|
1929
|
+
/**
|
|
1930
|
+
* Получение черновика вакансии
|
|
1931
|
+
*/
|
|
1932
|
+
export const getVacancyDraft = (options) => {
|
|
1933
|
+
return (options.client ?? _heyApiClient).get({
|
|
1934
|
+
security: [
|
|
1935
|
+
{
|
|
1936
|
+
scheme: 'bearer',
|
|
1937
|
+
type: 'http'
|
|
1938
|
+
}
|
|
1939
|
+
],
|
|
1940
|
+
url: '/vacancies/drafts/{draft_id}',
|
|
1941
|
+
...options
|
|
1942
|
+
});
|
|
1943
|
+
};
|
|
1944
|
+
/**
|
|
1945
|
+
* Изменение черновика вакансии
|
|
1946
|
+
*/
|
|
1947
|
+
export const changeVacancyDraft = (options) => {
|
|
1948
|
+
return (options.client ?? _heyApiClient).put({
|
|
1949
|
+
security: [
|
|
1950
|
+
{
|
|
1951
|
+
scheme: 'bearer',
|
|
1952
|
+
type: 'http'
|
|
1953
|
+
}
|
|
1954
|
+
],
|
|
1955
|
+
url: '/vacancies/drafts/{draft_id}',
|
|
1956
|
+
...options,
|
|
1957
|
+
headers: {
|
|
1958
|
+
'Content-Type': 'application/json',
|
|
1959
|
+
...options.headers
|
|
1960
|
+
}
|
|
1961
|
+
});
|
|
1962
|
+
};
|
|
1963
|
+
/**
|
|
1964
|
+
* Публикация вакансии на основе черновика
|
|
1965
|
+
*/
|
|
1966
|
+
export const publishVacancyFromDraft = (options) => {
|
|
1967
|
+
return (options.client ?? _heyApiClient).post({
|
|
1968
|
+
security: [
|
|
1969
|
+
{
|
|
1970
|
+
scheme: 'bearer',
|
|
1971
|
+
type: 'http'
|
|
1972
|
+
}
|
|
1973
|
+
],
|
|
1974
|
+
url: '/vacancies/drafts/{draft_id}/publish',
|
|
1975
|
+
...options
|
|
1976
|
+
});
|
|
1977
|
+
};
|
|
1978
|
+
/**
|
|
1979
|
+
* Проверка наличия дубликатов вакансии
|
|
1980
|
+
*/
|
|
1981
|
+
export const searchForVacancyDraftDuplicates = (options) => {
|
|
1982
|
+
return (options.client ?? _heyApiClient).get({
|
|
1983
|
+
security: [
|
|
1984
|
+
{
|
|
1985
|
+
scheme: 'bearer',
|
|
1986
|
+
type: 'http'
|
|
1987
|
+
}
|
|
1988
|
+
],
|
|
1989
|
+
url: '/vacancies/drafts/{draft_id}/duplicates',
|
|
1990
|
+
...options
|
|
1991
|
+
});
|
|
1992
|
+
};
|
|
1993
|
+
/**
|
|
1994
|
+
* Получение списка черновиков вакансий
|
|
1995
|
+
*/
|
|
1996
|
+
export const getVacancyDraftList = (options) => {
|
|
1997
|
+
return (options.client ?? _heyApiClient).get({
|
|
1998
|
+
security: [
|
|
1999
|
+
{
|
|
2000
|
+
scheme: 'bearer',
|
|
2001
|
+
type: 'http'
|
|
2002
|
+
}
|
|
2003
|
+
],
|
|
2004
|
+
url: '/vacancies/drafts',
|
|
2005
|
+
...options
|
|
2006
|
+
});
|
|
2007
|
+
};
|
|
2008
|
+
/**
|
|
2009
|
+
* Создание черновика вакансии
|
|
2010
|
+
*/
|
|
2011
|
+
export const createVacancyDraft = (options) => {
|
|
2012
|
+
return (options.client ?? _heyApiClient).post({
|
|
2013
|
+
security: [
|
|
2014
|
+
{
|
|
2015
|
+
scheme: 'bearer',
|
|
2016
|
+
type: 'http'
|
|
2017
|
+
}
|
|
2018
|
+
],
|
|
2019
|
+
url: '/vacancies/drafts',
|
|
2020
|
+
...options,
|
|
2021
|
+
headers: {
|
|
2022
|
+
'Content-Type': 'application/json',
|
|
2023
|
+
...options.headers
|
|
2024
|
+
}
|
|
2025
|
+
});
|
|
2026
|
+
};
|
|
2027
|
+
/**
|
|
2028
|
+
* Отмена автопубликации вакансии
|
|
2029
|
+
*/
|
|
2030
|
+
export const disableAutomaticVacancyPublication = (options) => {
|
|
2031
|
+
return (options.client ?? _heyApiClient).delete({
|
|
2032
|
+
security: [
|
|
2033
|
+
{
|
|
2034
|
+
scheme: 'bearer',
|
|
2035
|
+
type: 'http'
|
|
2036
|
+
}
|
|
2037
|
+
],
|
|
2038
|
+
url: '/vacancies/auto_publication',
|
|
2039
|
+
...options
|
|
2040
|
+
});
|
|
2041
|
+
};
|
|
2042
|
+
/**
|
|
2043
|
+
* Удалить подписку на уведомление
|
|
2044
|
+
*/
|
|
2045
|
+
export const cancelWebhookSubscription = (options) => {
|
|
2046
|
+
return (options.client ?? _heyApiClient).delete({
|
|
2047
|
+
security: [
|
|
2048
|
+
{
|
|
2049
|
+
scheme: 'bearer',
|
|
2050
|
+
type: 'http'
|
|
2051
|
+
}
|
|
2052
|
+
],
|
|
2053
|
+
url: '/webhook/subscriptions/{subscription_id}',
|
|
2054
|
+
...options
|
|
2055
|
+
});
|
|
2056
|
+
};
|
|
2057
|
+
/**
|
|
2058
|
+
* Изменить подписку на уведомления
|
|
2059
|
+
* Обновить можно как каждое поле по отдельности (в таком случае нужно отправить только обновляемое поле), так и несколько полей одновременно. Для обновления `actions` нужно передать полный список типов событий, по которым будут формироваться уведомления. Переданные типы событий не добавляются к типам событий, на которые пользователь уже подписан.
|
|
2060
|
+
* Пустой список `actions` передать нельзя
|
|
2061
|
+
*
|
|
2062
|
+
*/
|
|
2063
|
+
export const changeWebhookSubscription = (options) => {
|
|
2064
|
+
return (options.client ?? _heyApiClient).put({
|
|
2065
|
+
security: [
|
|
2066
|
+
{
|
|
2067
|
+
scheme: 'bearer',
|
|
2068
|
+
type: 'http'
|
|
2069
|
+
}
|
|
2070
|
+
],
|
|
2071
|
+
url: '/webhook/subscriptions/{subscription_id}',
|
|
2072
|
+
...options,
|
|
2073
|
+
headers: {
|
|
2074
|
+
'Content-Type': 'application/json',
|
|
2075
|
+
...options.headers
|
|
2076
|
+
}
|
|
2077
|
+
});
|
|
2078
|
+
};
|
|
2079
|
+
/**
|
|
2080
|
+
* Получить список уведомлений, на которые подписан пользователь
|
|
2081
|
+
*/
|
|
2082
|
+
export const getWebhookSubscriptions = (options) => {
|
|
2083
|
+
return (options.client ?? _heyApiClient).get({
|
|
2084
|
+
security: [
|
|
2085
|
+
{
|
|
2086
|
+
scheme: 'bearer',
|
|
2087
|
+
type: 'http'
|
|
2088
|
+
}
|
|
2089
|
+
],
|
|
2090
|
+
url: '/webhook/subscriptions',
|
|
2091
|
+
...options
|
|
2092
|
+
});
|
|
2093
|
+
};
|
|
2094
|
+
/**
|
|
2095
|
+
* Подписаться на уведомления
|
|
2096
|
+
* В рамках одного приложения пользователь может получать уведомления только на 1 url:
|
|
2097
|
+
* нельзя подписаться разными действиями на разные урлы.
|
|
2098
|
+
* После наступления события будет отправлен POST-запрос на указанный URL c json телом (**см. раздел "Callbacks"**).
|
|
2099
|
+
*
|
|
2100
|
+
* В ответ на POST-запрос ожидается ответ с кодом `2хх Success`, если сообщение принято, или `409 Conflict`, если пришел дубликат.
|
|
2101
|
+
* Для определения дубликатов нужно использовать id из запроса - уникальный идентификатор для пары "пользователь + приложение" в рамках одного типа события в подписке.
|
|
2102
|
+
*
|
|
2103
|
+
* Дубликаты возможны, если:
|
|
2104
|
+
* * url, на который отправлялся колбэк, не ответил в течение 2 секунд;
|
|
2105
|
+
* * сервер не смог установить соединение с url, на который необходимо отправить колбэк;
|
|
2106
|
+
* * url ответил неожиданным кодом (отличным от `2xx Success` или `409 Conflict`)
|
|
2107
|
+
*
|
|
2108
|
+
* В этих случаях сервер планирует повторную отправку колбэка, с постепенно увеличивающимся промежутком между переотправками.
|
|
2109
|
+
*
|
|
2110
|
+
* Если в рамках одной подписки ожидаемые ответы не поступают долгое время,
|
|
2111
|
+
* на почту разработчика приложения будет отправлено уведомительное письмо, подписка попадает в очередь на блокировку, а отправки прекращаются.
|
|
2112
|
+
*
|
|
2113
|
+
* Если до блокировки приложения в рамках подписки url ответит ожидаемым кодом в установленный таймаут, подписка исключается из очереди на блокировку.
|
|
2114
|
+
*
|
|
2115
|
+
* При удалении приложения владельцем или отзыве пользователем доступа у приложения все подписки на уведомления удаляются.
|
|
2116
|
+
* После восстановления доступа необходимо оформить новую подписку.
|
|
2117
|
+
*
|
|
2118
|
+
* Вебхуки не являются средствами гарантированной доставки. Мы отправляем все сообщения, но не гарантируем, что адресат их получит
|
|
2119
|
+
*
|
|
2120
|
+
* Структура и содержимое колбэков описаны в разделе [callbacks](#callbacks)
|
|
2121
|
+
*
|
|
2122
|
+
*/
|
|
2123
|
+
export const postWebhookSubscription = (options) => {
|
|
2124
|
+
return (options.client ?? _heyApiClient).post({
|
|
2125
|
+
security: [
|
|
2126
|
+
{
|
|
2127
|
+
scheme: 'bearer',
|
|
2128
|
+
type: 'http'
|
|
2129
|
+
}
|
|
2130
|
+
],
|
|
2131
|
+
url: '/webhook/subscriptions',
|
|
2132
|
+
...options,
|
|
2133
|
+
headers: {
|
|
2134
|
+
'Content-Type': 'application/json',
|
|
2135
|
+
...options.headers
|
|
2136
|
+
}
|
|
2137
|
+
});
|
|
2138
|
+
};
|
|
2139
|
+
/**
|
|
2140
|
+
* Справочник тестов работодателя
|
|
2141
|
+
* Возвращает список сохраненных тестов работодателя
|
|
2142
|
+
*/
|
|
2143
|
+
export const getTestsDictionary = (options) => {
|
|
2144
|
+
return (options.client ?? _heyApiClient).get({
|
|
2145
|
+
security: [
|
|
2146
|
+
{
|
|
2147
|
+
scheme: 'bearer',
|
|
2148
|
+
type: 'http'
|
|
2149
|
+
}
|
|
2150
|
+
],
|
|
2151
|
+
url: '/employers/{employer_id}/tests',
|
|
2152
|
+
...options
|
|
2153
|
+
});
|
|
2154
|
+
};
|
|
2155
|
+
/**
|
|
2156
|
+
* Список регионов, в которых есть активные вакансии
|
|
2157
|
+
* Возвращает список регионов, в которых на данный момент есть активные вакансии от указанного работодателя.
|
|
2158
|
+
*
|
|
2159
|
+
* Значения в справочнике могут поменяться в любой момент
|
|
2160
|
+
*
|
|
2161
|
+
*/
|
|
2162
|
+
export const getEmployerVacancyAreas = (options) => {
|
|
2163
|
+
return (options.client ?? _heyApiClient).get({
|
|
2164
|
+
security: [
|
|
2165
|
+
{
|
|
2166
|
+
scheme: 'bearer',
|
|
2167
|
+
type: 'http'
|
|
2168
|
+
}
|
|
2169
|
+
],
|
|
2170
|
+
url: '/employers/{employer_id}/vacancy_areas/active',
|
|
2171
|
+
...options
|
|
2172
|
+
});
|
|
2173
|
+
};
|
|
2174
|
+
/**
|
|
2175
|
+
* Информация о работодателе
|
|
2176
|
+
* Возвращает данные о работодателе со ссылкой на выдачу вакансий этого работодателя
|
|
2177
|
+
*/
|
|
2178
|
+
export const getEmployerInfo = (options) => {
|
|
2179
|
+
return (options.client ?? _heyApiClient).get({
|
|
2180
|
+
security: [
|
|
2181
|
+
{
|
|
2182
|
+
scheme: 'bearer',
|
|
2183
|
+
type: 'http'
|
|
2184
|
+
}
|
|
2185
|
+
],
|
|
2186
|
+
url: '/employers/{employer_id}',
|
|
2187
|
+
...options
|
|
2188
|
+
});
|
|
2189
|
+
};
|
|
2190
|
+
/**
|
|
2191
|
+
* Удаление работодателя из списка скрытых
|
|
2192
|
+
* Удаляет указанного работодателя из [списка скрытых работодателей](#tag/Skrytye-vakansii/operation/get-blacklisted-vacancies)
|
|
2193
|
+
*/
|
|
2194
|
+
export const deleteEmployerFromBlacklisted = (options) => {
|
|
2195
|
+
return (options.client ?? _heyApiClient).delete({
|
|
2196
|
+
security: [
|
|
2197
|
+
{
|
|
2198
|
+
scheme: 'bearer',
|
|
2199
|
+
type: 'http'
|
|
2200
|
+
}
|
|
2201
|
+
],
|
|
2202
|
+
url: '/employers/blacklisted/{employer_id}',
|
|
2203
|
+
...options
|
|
2204
|
+
});
|
|
2205
|
+
};
|
|
2206
|
+
/**
|
|
2207
|
+
* Добавление работодателя в список скрытых
|
|
2208
|
+
* Добавляет указанного работодателя в [список скрытых работодателей](#tag/Skrytye-vakansii/operation/get-blacklisted-vacancies)
|
|
2209
|
+
*/
|
|
2210
|
+
export const addEmployerToBlacklisted = (options) => {
|
|
2211
|
+
return (options.client ?? _heyApiClient).put({
|
|
2212
|
+
security: [
|
|
2213
|
+
{
|
|
2214
|
+
scheme: 'bearer',
|
|
2215
|
+
type: 'http'
|
|
2216
|
+
}
|
|
2217
|
+
],
|
|
2218
|
+
url: '/employers/blacklisted/{employer_id}',
|
|
2219
|
+
...options
|
|
2220
|
+
});
|
|
2221
|
+
};
|
|
2222
|
+
/**
|
|
2223
|
+
* Поиск работодателя
|
|
2224
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше `5000`. Например, возможен запрос `per_page=10&page=499` (выдача с `4991` по `5000` работодателя), но запрос с `per_page=10&page=500` вернёт ошибку (выдача с `5001` до `5010` работодателя)
|
|
2225
|
+
*/
|
|
2226
|
+
export const searchEmployer = (options) => {
|
|
2227
|
+
return (options.client ?? _heyApiClient).get({
|
|
2228
|
+
security: [
|
|
2229
|
+
{
|
|
2230
|
+
scheme: 'bearer',
|
|
2231
|
+
type: 'http'
|
|
2232
|
+
}
|
|
2233
|
+
],
|
|
2234
|
+
url: '/employers',
|
|
2235
|
+
...options
|
|
2236
|
+
});
|
|
2237
|
+
};
|
|
2238
|
+
/**
|
|
2239
|
+
* Справочник департаментов работодателя
|
|
2240
|
+
* Возвращает список департаментов работодателя.
|
|
2241
|
+
*
|
|
2242
|
+
* Значения в справочнике могут поменяться в любой момент
|
|
2243
|
+
*
|
|
2244
|
+
*/
|
|
2245
|
+
export const getEmployerDepartments = (options) => {
|
|
2246
|
+
return (options.client ?? _heyApiClient).get({
|
|
2247
|
+
security: [
|
|
2248
|
+
{
|
|
2249
|
+
scheme: 'bearer',
|
|
2250
|
+
type: 'http'
|
|
2251
|
+
}
|
|
2252
|
+
],
|
|
2253
|
+
url: '/employers/{employer_id}/departments',
|
|
2254
|
+
...options
|
|
2255
|
+
});
|
|
2256
|
+
};
|
|
2257
|
+
/**
|
|
2258
|
+
* Список доступных бренд шаблонов вакансий работодателя
|
|
2259
|
+
* Внимание! Значения в справочниках могут поменяться в любой момент. Не нужно завязываться на них.
|
|
2260
|
+
*
|
|
2261
|
+
* Использование брендированных шаблонов вакансии доступно работодателям, оплатившим и активировавшим соответствующую
|
|
2262
|
+
* услугу. Подробнее на сайте [hh.ru](https://hh.ru/article/brand)
|
|
2263
|
+
*
|
|
2264
|
+
*/
|
|
2265
|
+
export const getVacancyBrandedTemplatesList = (options) => {
|
|
2266
|
+
return (options.client ?? _heyApiClient).get({
|
|
2267
|
+
security: [
|
|
2268
|
+
{
|
|
2269
|
+
scheme: 'bearer',
|
|
2270
|
+
type: 'http'
|
|
2271
|
+
}
|
|
2272
|
+
],
|
|
2273
|
+
url: '/employers/{employer_id}/vacancy_branded_templates',
|
|
2274
|
+
...options
|
|
2275
|
+
});
|
|
2276
|
+
};
|
|
2277
|
+
/**
|
|
2278
|
+
* Список скрытых работодателей
|
|
2279
|
+
* Возвращает [подмножество работодателей](#tag/Rabotodatel/operation/search-employer), скрытых пользователем, а также один дополнительный параметр
|
|
2280
|
+
*/
|
|
2281
|
+
export const getBlacklistedEmployers = (options) => {
|
|
2282
|
+
return (options.client ?? _heyApiClient).get({
|
|
2283
|
+
security: [
|
|
2284
|
+
{
|
|
2285
|
+
scheme: 'bearer',
|
|
2286
|
+
type: 'http'
|
|
2287
|
+
}
|
|
2288
|
+
],
|
|
2289
|
+
url: '/employers/blacklisted',
|
|
2290
|
+
...options
|
|
2291
|
+
});
|
|
2292
|
+
};
|
|
2293
|
+
/**
|
|
2294
|
+
* Список районов во всех городах
|
|
2295
|
+
*/
|
|
2296
|
+
export const getAllDistricts = (options) => {
|
|
2297
|
+
return (options.client ?? _heyApiClient).get({
|
|
2298
|
+
security: [
|
|
2299
|
+
{
|
|
2300
|
+
scheme: 'bearer',
|
|
2301
|
+
type: 'http'
|
|
2302
|
+
}
|
|
2303
|
+
],
|
|
2304
|
+
url: '/districts',
|
|
2305
|
+
...options
|
|
2306
|
+
});
|
|
2307
|
+
};
|
|
2308
|
+
/**
|
|
2309
|
+
* Оценка заработной платы без прогноза
|
|
2310
|
+
* Возвращает статистику зарплат в соответствии с указанными параметрами запроса. Пользователь должен иметь доступ к платным отчетам [банка зарплат](https://salary.hh.ru/).
|
|
2311
|
+
*
|
|
2312
|
+
* Как это работает:
|
|
2313
|
+
*
|
|
2314
|
+
* * Основным источником данных для статистики служит информация о зарплатах, предоставляемая участниками проекта [Банк данных заработных плат](https://salary.hh.ru/promo).
|
|
2315
|
+
* * Все анкеты участников проходят проверку модераторами. Если заявленная участником зарплата сильно отличается от средней по рынку, она не будет включена в банк данных.
|
|
2316
|
+
* * Если в банке недостаточно данных для построения статистики по запросу, сервис использует следующие приемы:
|
|
2317
|
+
*
|
|
2318
|
+
* * Объединяет сведения из нескольких отраслей, если недостаточно данных по запрошенной отрасли.
|
|
2319
|
+
* * Объединяет сведения из нескольких близких специализаций, если недостаточно данных по запрошенной специализации.
|
|
2320
|
+
* * Объединяет сведения из нескольких городов, если недостаточно данных по запрошенному городу.
|
|
2321
|
+
* * Использует сведения по запрошенным специализациям из другого региона, если недостаточно данных по запрошенному региону. При этом вычисляется поправочный коэффициент, который отражает разницу в зарплатах между регионами.
|
|
2322
|
+
*
|
|
2323
|
+
* Если эти приемы не позволяют получить достаточную выборку, сервис может использовать информацию о зарплатах из вакансий и резюме. Такая информация не проходит предварительную модерацию и считается менее надежной, поэтому используется только в крайнем случае. Чтобы использовать эту функцию, передайте в запросе параметр `extend_sources=true`
|
|
2324
|
+
*
|
|
2325
|
+
*/
|
|
2326
|
+
export const getSalaryEvaluation = (options) => {
|
|
2327
|
+
return (options.client ?? _heyApiClient).get({
|
|
2328
|
+
security: [
|
|
2329
|
+
{
|
|
2330
|
+
scheme: 'bearer',
|
|
2331
|
+
type: 'http'
|
|
2332
|
+
}
|
|
2333
|
+
],
|
|
2334
|
+
url: '/salary_statistics/paid/salary_evaluation/{area_id}',
|
|
2335
|
+
...options
|
|
2336
|
+
});
|
|
2337
|
+
};
|
|
2338
|
+
/**
|
|
2339
|
+
* Список станций метро во всех городах
|
|
2340
|
+
*/
|
|
2341
|
+
export const getMetroStations = (options) => {
|
|
2342
|
+
return (options.client ?? _heyApiClient).get({
|
|
2343
|
+
security: [
|
|
2344
|
+
{
|
|
2345
|
+
scheme: 'bearer',
|
|
2346
|
+
type: 'http'
|
|
2347
|
+
}
|
|
2348
|
+
],
|
|
2349
|
+
url: '/metro',
|
|
2350
|
+
...options
|
|
2351
|
+
});
|
|
2352
|
+
};
|
|
2353
|
+
/**
|
|
2354
|
+
* Список станций метро в указанном городе
|
|
2355
|
+
*/
|
|
2356
|
+
export const getMetroStationsInCity = (options) => {
|
|
2357
|
+
return (options.client ?? _heyApiClient).get({
|
|
2358
|
+
security: [
|
|
2359
|
+
{
|
|
2360
|
+
scheme: 'bearer',
|
|
2361
|
+
type: 'http'
|
|
2362
|
+
}
|
|
2363
|
+
],
|
|
2364
|
+
url: '/metro/{city_id}',
|
|
2365
|
+
...options
|
|
2366
|
+
});
|
|
2367
|
+
};
|
|
2368
|
+
/**
|
|
2369
|
+
* Передача сохраненного поиска резюме другому менеджеру
|
|
2370
|
+
*/
|
|
2371
|
+
export const moveSavedResumeSearch = (options) => {
|
|
2372
|
+
return (options.client ?? _heyApiClient).put({
|
|
2373
|
+
security: [
|
|
2374
|
+
{
|
|
2375
|
+
scheme: 'bearer',
|
|
2376
|
+
type: 'http'
|
|
2377
|
+
}
|
|
2378
|
+
],
|
|
2379
|
+
url: '/saved_searches/resumes/{saved_search_id}/managers/{manager_id}',
|
|
2380
|
+
...options
|
|
2381
|
+
});
|
|
2382
|
+
};
|
|
2383
|
+
/**
|
|
2384
|
+
* Резюме, сгруппированные по возможности отклика на данную вакансию
|
|
2385
|
+
* Возвращает резюме пользователя, сгруппированные в четыре списка в зависимости от возможности отклика на указанную вакансию
|
|
2386
|
+
*/
|
|
2387
|
+
export const getResumesByStatus = (options) => {
|
|
2388
|
+
return (options.client ?? _heyApiClient).get({
|
|
2389
|
+
security: [
|
|
2390
|
+
{
|
|
2391
|
+
scheme: 'bearer',
|
|
2392
|
+
type: 'http'
|
|
2393
|
+
}
|
|
2394
|
+
],
|
|
2395
|
+
url: '/vacancies/{vacancy_id}/resumes_by_status',
|
|
2396
|
+
...options
|
|
2397
|
+
});
|
|
2398
|
+
};
|
|
2399
|
+
/**
|
|
2400
|
+
* Статус резюме и готовность к публикации
|
|
2401
|
+
* Возвращает информацию о статусе резюме, готовности резюме к публикации, а также замечания модератора по выбранному резюме
|
|
2402
|
+
*
|
|
2403
|
+
*/
|
|
2404
|
+
export const getResumeStatus = (options) => {
|
|
2405
|
+
return (options.client ?? _heyApiClient).get({
|
|
2406
|
+
security: [
|
|
2407
|
+
{
|
|
2408
|
+
scheme: 'bearer',
|
|
2409
|
+
type: 'http'
|
|
2410
|
+
}
|
|
2411
|
+
],
|
|
2412
|
+
url: '/resumes/{resume_id}/status',
|
|
2413
|
+
...options
|
|
2414
|
+
});
|
|
2415
|
+
};
|
|
2416
|
+
/**
|
|
2417
|
+
* История откликов/приглашений по резюме
|
|
2418
|
+
* Возвращает последние действия с указанным резюме, ограниченные 30-ю вакансиями данного работодателя, и 10-ю изменениями состояний откликов/приглашений по каждой из этих вакансий.
|
|
2419
|
+
*
|
|
2420
|
+
* Метод требует наличия [платного доступа для работодателя](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access)
|
|
2421
|
+
*
|
|
2422
|
+
*/
|
|
2423
|
+
export const getResumeNegotiationsHistory = (options) => {
|
|
2424
|
+
return (options.client ?? _heyApiClient).get({
|
|
2425
|
+
security: [
|
|
2426
|
+
{
|
|
2427
|
+
scheme: 'bearer',
|
|
2428
|
+
type: 'http'
|
|
2429
|
+
}
|
|
2430
|
+
],
|
|
2431
|
+
url: '/resumes/{resume_id}/negotiations_history',
|
|
2432
|
+
...options
|
|
2433
|
+
});
|
|
2434
|
+
};
|
|
2435
|
+
/**
|
|
2436
|
+
* Удаление сохраненного поиска резюме
|
|
2437
|
+
*/
|
|
2438
|
+
export const deleteSavedResumeSearch = (options) => {
|
|
2439
|
+
return (options.client ?? _heyApiClient).delete({
|
|
2440
|
+
security: [
|
|
2441
|
+
{
|
|
2442
|
+
scheme: 'bearer',
|
|
2443
|
+
type: 'http'
|
|
2444
|
+
}
|
|
2445
|
+
],
|
|
2446
|
+
url: '/saved_searches/resumes/{id}',
|
|
2447
|
+
...options
|
|
2448
|
+
});
|
|
2449
|
+
};
|
|
2450
|
+
/**
|
|
2451
|
+
* Получение единичного сохраненного поиска резюме
|
|
2452
|
+
* Внимание: счетчик `new_items.count` обновляется раз в час. Из-за этого реальное количество новых найденных резюме
|
|
2453
|
+
* может расходиться со значением этого счетчика
|
|
2454
|
+
*
|
|
2455
|
+
*/
|
|
2456
|
+
export const getSavedResumeSearch = (options) => {
|
|
2457
|
+
return (options.client ?? _heyApiClient).get({
|
|
2458
|
+
security: [
|
|
2459
|
+
{
|
|
2460
|
+
scheme: 'bearer',
|
|
2461
|
+
type: 'http'
|
|
2462
|
+
}
|
|
2463
|
+
],
|
|
2464
|
+
url: '/saved_searches/resumes/{id}',
|
|
2465
|
+
...options
|
|
2466
|
+
});
|
|
2467
|
+
};
|
|
2468
|
+
/**
|
|
2469
|
+
* Обновление сохраненного поиска резюме
|
|
2470
|
+
* У сохраненного поиска можно изменить имя (`name`) и статус подписки (`subscription`). В одном запросе можно передать только один из параметров
|
|
2471
|
+
*/
|
|
2472
|
+
export const updateSavedResumeSearch = (options) => {
|
|
2473
|
+
return (options.client ?? _heyApiClient).put({
|
|
2474
|
+
security: [
|
|
2475
|
+
{
|
|
2476
|
+
scheme: 'bearer',
|
|
2477
|
+
type: 'http'
|
|
2478
|
+
}
|
|
2479
|
+
],
|
|
2480
|
+
url: '/saved_searches/resumes/{id}',
|
|
2481
|
+
...options
|
|
2482
|
+
});
|
|
2483
|
+
};
|
|
2484
|
+
/**
|
|
2485
|
+
* Поиск резюме
|
|
2486
|
+
* Возвращает результаты поиска резюме.
|
|
2487
|
+
*
|
|
2488
|
+
* Требуется наличие [платного доступа](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access).
|
|
2489
|
+
*
|
|
2490
|
+
* Некоторые параметры запроса могут принимать множественные значения: `key=value&key=value`. Если параметр может принимать несколько значений, об этом явно указано в его описании. Неизвестные параметры и параметры с ошибкой в названии игнорируются.
|
|
2491
|
+
*
|
|
2492
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше 2000. Например, возможен запрос `per_page=10&page=199` (выдача с 1991 по 2000 резюме), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с 2001 до 2010 резюме).
|
|
2493
|
+
*
|
|
2494
|
+
* Возвращаемые результаты группируются по соискателю: один и тот же соискатель не может вернуться в выборке несколько раз. Если у соискателя есть несколько резюме, которые подходят под запрос, то только одно из его резюме вернется в качестве элемента в массиве items
|
|
2495
|
+
*
|
|
2496
|
+
*/
|
|
2497
|
+
export const searchForResumes = (options) => {
|
|
2498
|
+
return (options.client ?? _heyApiClient).get({
|
|
2499
|
+
security: [
|
|
2500
|
+
{
|
|
2501
|
+
scheme: 'bearer',
|
|
2502
|
+
type: 'http'
|
|
2503
|
+
}
|
|
2504
|
+
],
|
|
2505
|
+
url: '/resumes',
|
|
2506
|
+
...options
|
|
2507
|
+
});
|
|
2508
|
+
};
|
|
2509
|
+
/**
|
|
2510
|
+
* Создание резюме
|
|
2511
|
+
* Запрос является устаревшим и поддерживается для обратной совместимости. Вместо него используйте [запрос создания резюме-профиля.](#tag/Rezyume-profil-soiskatelya/operation/create-resume-profile)
|
|
2512
|
+
*
|
|
2513
|
+
* Создает резюме с полями, переданными в теле запроса.
|
|
2514
|
+
*
|
|
2515
|
+
* Если передан параметр `source_resume_id`, новое резюме будет склонировано из указанного. Склонировать можно только собственное резюме
|
|
2516
|
+
*
|
|
2517
|
+
* @deprecated
|
|
2518
|
+
*/
|
|
2519
|
+
export const createResume = (options) => {
|
|
2520
|
+
return (options.client ?? _heyApiClient).post({
|
|
2521
|
+
security: [
|
|
2522
|
+
{
|
|
2523
|
+
scheme: 'bearer',
|
|
2524
|
+
type: 'http'
|
|
2525
|
+
}
|
|
2526
|
+
],
|
|
2527
|
+
url: '/resumes',
|
|
2528
|
+
...options,
|
|
2529
|
+
headers: {
|
|
2530
|
+
'Content-Type': 'application/json',
|
|
2531
|
+
...options.headers
|
|
2532
|
+
}
|
|
2533
|
+
});
|
|
2534
|
+
};
|
|
2535
|
+
/**
|
|
2536
|
+
* Список резюме авторизованного пользователя
|
|
2537
|
+
*/
|
|
2538
|
+
export const getMineResumes = (options) => {
|
|
2539
|
+
return (options.client ?? _heyApiClient).get({
|
|
2540
|
+
security: [
|
|
2541
|
+
{
|
|
2542
|
+
scheme: 'bearer',
|
|
2543
|
+
type: 'http'
|
|
2544
|
+
}
|
|
2545
|
+
],
|
|
2546
|
+
url: '/resumes/mine',
|
|
2547
|
+
...options
|
|
2548
|
+
});
|
|
2549
|
+
};
|
|
2550
|
+
/**
|
|
2551
|
+
* Публикация резюме
|
|
2552
|
+
* При первой публикации резюме оно становится доступно для использования. При повторной публикации происходит обновление даты резюме.
|
|
2553
|
+
*
|
|
2554
|
+
* Повторная публикация означает обновление даты резюме. Ключ `next_publish_at` у [резюме](#tag/Rezyume.-Prosmotr-informacii/operation/get-mine-resumes) указывает время, когда можно обновить резюме
|
|
2555
|
+
*
|
|
2556
|
+
*/
|
|
2557
|
+
export const publishResume = (options) => {
|
|
2558
|
+
return (options.client ?? _heyApiClient).post({
|
|
2559
|
+
security: [
|
|
2560
|
+
{
|
|
2561
|
+
scheme: 'bearer',
|
|
2562
|
+
type: 'http'
|
|
2563
|
+
}
|
|
2564
|
+
],
|
|
2565
|
+
url: '/resumes/{resume_id}/publish',
|
|
2566
|
+
...options
|
|
2567
|
+
});
|
|
2568
|
+
};
|
|
2569
|
+
/**
|
|
2570
|
+
* Условия заполнения полей нового резюме
|
|
2571
|
+
* Возвращает список требований для полей при заполнении нового резюме
|
|
2572
|
+
*/
|
|
2573
|
+
export const getNewResumeConditions = (options) => {
|
|
2574
|
+
return (options.client ?? _heyApiClient).get({
|
|
2575
|
+
security: [
|
|
2576
|
+
{
|
|
2577
|
+
scheme: 'bearer',
|
|
2578
|
+
type: 'http'
|
|
2579
|
+
}
|
|
2580
|
+
],
|
|
2581
|
+
url: '/resume_conditions',
|
|
2582
|
+
...options
|
|
2583
|
+
});
|
|
2584
|
+
};
|
|
2585
|
+
/**
|
|
2586
|
+
* Список подходящих для отклика резюме
|
|
2587
|
+
* Возвращает список сокращенных представлений резюме соискателя, которыми он может откликнуться на указанную вакансию.
|
|
2588
|
+
*
|
|
2589
|
+
* В качестве альтернативы данному методу можно использовать метод [resumes_by_status](#tag/Rezyume.-Prosmotr-informacii/operation/get-resumes-by-status)
|
|
2590
|
+
*
|
|
2591
|
+
*/
|
|
2592
|
+
export const getSuitableResumes = (options) => {
|
|
2593
|
+
return (options.client ?? _heyApiClient).get({
|
|
2594
|
+
security: [
|
|
2595
|
+
{
|
|
2596
|
+
scheme: 'bearer',
|
|
2597
|
+
type: 'http'
|
|
2598
|
+
}
|
|
2599
|
+
],
|
|
2600
|
+
url: '/vacancies/{vacancy_id}/suitable_resumes',
|
|
2601
|
+
...options
|
|
2602
|
+
});
|
|
2603
|
+
};
|
|
2604
|
+
/**
|
|
2605
|
+
* Условия заполнения полей существующего резюме
|
|
2606
|
+
* Возвращает список требований для полей при заполнении указанного резюме
|
|
2607
|
+
*/
|
|
2608
|
+
export const getResumeConditions = (options) => {
|
|
2609
|
+
return (options.client ?? _heyApiClient).get({
|
|
2610
|
+
security: [
|
|
2611
|
+
{
|
|
2612
|
+
scheme: 'bearer',
|
|
2613
|
+
type: 'http'
|
|
2614
|
+
}
|
|
2615
|
+
],
|
|
2616
|
+
url: '/resumes/{resume_id}/conditions',
|
|
2617
|
+
...options
|
|
2618
|
+
});
|
|
2619
|
+
};
|
|
2620
|
+
/**
|
|
2621
|
+
* История просмотра резюме
|
|
2622
|
+
* Возвращает историю просмотров резюме.
|
|
2623
|
+
*
|
|
2624
|
+
* Этот запрос обнуляет счетчик новых просмотров (поле `new_views`), который возвращается в запросах на просмотр [конкретного резюме](#tag/Prosmotr-rezyume/operation/get-resume) и [списка резюме](#tag/Rezyume.-Prosmotr-informacii/operation/get-mine-resumes)
|
|
2625
|
+
*
|
|
2626
|
+
*/
|
|
2627
|
+
export const getResumeViewHistory = (options) => {
|
|
2628
|
+
return (options.client ?? _heyApiClient).get({
|
|
2629
|
+
security: [
|
|
2630
|
+
{
|
|
2631
|
+
scheme: 'bearer',
|
|
2632
|
+
type: 'http'
|
|
2633
|
+
}
|
|
2634
|
+
],
|
|
2635
|
+
url: '/resumes/{resume_id}/views',
|
|
2636
|
+
...options
|
|
2637
|
+
});
|
|
2638
|
+
};
|
|
2639
|
+
/**
|
|
2640
|
+
* Удаление резюме
|
|
2641
|
+
* Резюме удаляется без возможности восстановления. Все связанные с ним отклики исчезают
|
|
2642
|
+
*/
|
|
2643
|
+
export const deleteResume = (options) => {
|
|
2644
|
+
return (options.client ?? _heyApiClient).delete({
|
|
2645
|
+
security: [
|
|
2646
|
+
{
|
|
2647
|
+
scheme: 'bearer',
|
|
2648
|
+
type: 'http'
|
|
2649
|
+
}
|
|
2650
|
+
],
|
|
2651
|
+
url: '/resumes/{resume_id}',
|
|
2652
|
+
...options
|
|
2653
|
+
});
|
|
2654
|
+
};
|
|
2655
|
+
/**
|
|
2656
|
+
* Просмотр резюме
|
|
2657
|
+
* Возвращает информацию об указанном резюме.
|
|
2658
|
+
*
|
|
2659
|
+
* Особенности работы метода при запросе от работодателя:
|
|
2660
|
+
*
|
|
2661
|
+
* * Требуется наличие [платного доступа](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access).
|
|
2662
|
+
* * При просмотре резюме с контактами действуют [специальные правила](https://github.com/hhru/api/blob/master/docs/payable/resume.md#просмотр-резюме-с-контактами).
|
|
2663
|
+
* * Если просмотр полных данных по резюме недоступен при текущей авторизации, в некоторых полях вернется `null`, а поле `can_view_full_info` будет иметь значение `false`.
|
|
2664
|
+
* * Если у работодателя есть отклик/приглашение на это резюме, отклик будет считаться просмотренным (только в том случае, если передан query-параметр topic_id с соответствующим идентификатором отклика)
|
|
2665
|
+
*
|
|
2666
|
+
*/
|
|
2667
|
+
export const getResume = (options) => {
|
|
2668
|
+
return (options.client ?? _heyApiClient).get({
|
|
2669
|
+
security: [
|
|
2670
|
+
{
|
|
2671
|
+
scheme: 'bearer',
|
|
2672
|
+
type: 'http'
|
|
2673
|
+
}
|
|
2674
|
+
],
|
|
2675
|
+
url: '/resumes/{resume_id}',
|
|
2676
|
+
...options
|
|
2677
|
+
});
|
|
2678
|
+
};
|
|
2679
|
+
/**
|
|
2680
|
+
* Обновление резюме
|
|
2681
|
+
* Запрос является устаревшим и поддерживается для обратной совместимости. Вместо него используйте [запрос изменения резюме-профиля.](#tag/Rezyume-profil-soiskatelya/operation/update-resume-profile).
|
|
2682
|
+
*
|
|
2683
|
+
* Обновляет переданные в теле запроса поля указанного резюме.
|
|
2684
|
+
*
|
|
2685
|
+
* Любой упомянутый в теле запроса массив полностью переопределит существующий. Чтобы добавить к существующему массиву новый элемент, перечислите также в запросе все элементы существующего массива. Так, в приведенном примере запроса к ранее указанному русскому языку добавляется английский.
|
|
2686
|
+
*
|
|
2687
|
+
* Дополнительные правила заполнения резюме:
|
|
2688
|
+
*
|
|
2689
|
+
* * У соискателя не может быть несколько резюме с одинаковым `title`.
|
|
2690
|
+
* * Специализации должны быть из одной профессиональной области.
|
|
2691
|
+
* * Город проживания должен быть одним из элементов справочника `/areas`, и у этого элемента не должно быть потомков. Например, нельзя указать город проживания «Россия».
|
|
2692
|
+
* * Ближайшая станция метро должна находиться в городе проживания.
|
|
2693
|
+
* * Для специализаций из профессиональной области «Начало карьеры, студенты» (`id=15`) можно не указывать опыт работы и навыки. Для остальных профессиональных областей данные поля должны содержать хотя бы по одной записи
|
|
2694
|
+
*
|
|
2695
|
+
* @deprecated
|
|
2696
|
+
*/
|
|
2697
|
+
export const editResume = (options) => {
|
|
2698
|
+
return (options.client ?? _heyApiClient).put({
|
|
2699
|
+
security: [
|
|
2700
|
+
{
|
|
2701
|
+
scheme: 'bearer',
|
|
2702
|
+
type: 'http'
|
|
2703
|
+
}
|
|
2704
|
+
],
|
|
2705
|
+
url: '/resumes/{resume_id}',
|
|
2706
|
+
...options,
|
|
2707
|
+
headers: {
|
|
2708
|
+
'Content-Type': 'application/json',
|
|
2709
|
+
...options.headers
|
|
2710
|
+
}
|
|
2711
|
+
});
|
|
2712
|
+
};
|
|
2713
|
+
/**
|
|
2714
|
+
* Проверка возможности создания резюме
|
|
2715
|
+
*/
|
|
2716
|
+
export const getResumeCreationAvailability = (options) => {
|
|
2717
|
+
return (options.client ?? _heyApiClient).get({
|
|
2718
|
+
security: [
|
|
2719
|
+
{
|
|
2720
|
+
scheme: 'bearer',
|
|
2721
|
+
type: 'http'
|
|
2722
|
+
}
|
|
2723
|
+
],
|
|
2724
|
+
url: '/resumes/creation_availability',
|
|
2725
|
+
...options
|
|
2726
|
+
});
|
|
2727
|
+
};
|
|
2728
|
+
/**
|
|
2729
|
+
* Список сохраненных поисков резюме
|
|
2730
|
+
*/
|
|
2731
|
+
export const getSavedResumeSearches = (options) => {
|
|
2732
|
+
return (options.client ?? _heyApiClient).get({
|
|
2733
|
+
security: [
|
|
2734
|
+
{
|
|
2735
|
+
scheme: 'bearer',
|
|
2736
|
+
type: 'http'
|
|
2737
|
+
}
|
|
2738
|
+
],
|
|
2739
|
+
url: '/saved_searches/resumes',
|
|
2740
|
+
...options
|
|
2741
|
+
});
|
|
2742
|
+
};
|
|
2743
|
+
/**
|
|
2744
|
+
* Создание нового сохраненного поиска резюме
|
|
2745
|
+
* Некоторые параметры принимают множественные значения: `key=value&key=value`.
|
|
2746
|
+
*
|
|
2747
|
+
* При указании параметров пагинации (`page`, `per_page`) работает ограничение: глубина возвращаемых результатов не может быть больше 2000. Например, возможен запрос `per_page=10&page=199` (выдача с 1991 по 2000 вакансию), но запрос с `per_page=10&page=200` вернёт ошибку (выдача с 2001 до 2010 вакансию)
|
|
2748
|
+
*
|
|
2749
|
+
*/
|
|
2750
|
+
export const createSavedResumeSearch = (options) => {
|
|
2751
|
+
return (options.client ?? _heyApiClient).post({
|
|
2752
|
+
security: [
|
|
2753
|
+
{
|
|
2754
|
+
scheme: 'bearer',
|
|
2755
|
+
type: 'http'
|
|
2756
|
+
}
|
|
2757
|
+
],
|
|
2758
|
+
url: '/saved_searches/resumes',
|
|
2759
|
+
...options
|
|
2760
|
+
});
|
|
2761
|
+
};
|
|
2762
|
+
/**
|
|
2763
|
+
* Получение списка типов видимости резюме
|
|
2764
|
+
* Некоторые типы видимости, например `whitelist` и `blacklist`, подразумевают наличие списка работодателей, для которых резюме должно быть видимо или скрыто. См. [управление списками видимости резюме](#tag/Rezyume.-Spiski-vidimosti)
|
|
2765
|
+
*/
|
|
2766
|
+
export const getResumeAccessTypes = (options) => {
|
|
2767
|
+
return (options.client ?? _heyApiClient).get({
|
|
2768
|
+
security: [
|
|
2769
|
+
{
|
|
2770
|
+
scheme: 'bearer',
|
|
2771
|
+
type: 'http'
|
|
2772
|
+
}
|
|
2773
|
+
],
|
|
2774
|
+
url: '/resumes/{resume_id}/access_types',
|
|
2775
|
+
...options
|
|
2776
|
+
});
|
|
2777
|
+
};
|
|
2778
|
+
/**
|
|
2779
|
+
* Удаление комментария
|
|
2780
|
+
* Метод требует наличия [платного доступа для работодателя](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access).
|
|
2781
|
+
*
|
|
2782
|
+
* Удалить комментарий может только его автор
|
|
2783
|
+
*
|
|
2784
|
+
*/
|
|
2785
|
+
export const deleteApplicantComment = (options) => {
|
|
2786
|
+
return (options.client ?? _heyApiClient).delete({
|
|
2787
|
+
security: [
|
|
2788
|
+
{
|
|
2789
|
+
scheme: 'bearer',
|
|
2790
|
+
type: 'http'
|
|
2791
|
+
}
|
|
2792
|
+
],
|
|
2793
|
+
url: '/applicant_comments/{applicant_id}/{comment_id}',
|
|
2794
|
+
...options
|
|
2795
|
+
});
|
|
2796
|
+
};
|
|
2797
|
+
/**
|
|
2798
|
+
* Обновление комментария
|
|
2799
|
+
* Метод требует наличия [платного доступа для работодателя](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access).
|
|
2800
|
+
*
|
|
2801
|
+
* Автор комментария может изменить его текст и тип доступа. Если параметр не передан, то его значение останется прежним
|
|
2802
|
+
*
|
|
2803
|
+
*/
|
|
2804
|
+
export const updateApplicantComment = (options) => {
|
|
2805
|
+
return (options.client ?? _heyApiClient).put({
|
|
2806
|
+
...urlSearchParamsBodySerializer,
|
|
2807
|
+
security: [
|
|
2808
|
+
{
|
|
2809
|
+
scheme: 'bearer',
|
|
2810
|
+
type: 'http'
|
|
2811
|
+
}
|
|
2812
|
+
],
|
|
2813
|
+
url: '/applicant_comments/{applicant_id}/{comment_id}',
|
|
2814
|
+
...options,
|
|
2815
|
+
headers: {
|
|
2816
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
2817
|
+
...options.headers
|
|
2818
|
+
}
|
|
2819
|
+
});
|
|
2820
|
+
};
|
|
2821
|
+
/**
|
|
2822
|
+
* Получение списка комментариев
|
|
2823
|
+
* Метод требует наличия [платного доступа для работодателя](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access).
|
|
2824
|
+
*
|
|
2825
|
+
* Список будет содержать комментарии текущего пользователя, а также комментарии других менеджеров компании, если они открыли доступ к ним при публикации
|
|
2826
|
+
*
|
|
2827
|
+
*/
|
|
2828
|
+
export const getApplicantCommentsList = (options) => {
|
|
2829
|
+
return (options.client ?? _heyApiClient).get({
|
|
2830
|
+
security: [
|
|
2831
|
+
{
|
|
2832
|
+
scheme: 'bearer',
|
|
2833
|
+
type: 'http'
|
|
2834
|
+
}
|
|
2835
|
+
],
|
|
2836
|
+
url: '/applicant_comments/{applicant_id}',
|
|
2837
|
+
...options
|
|
2838
|
+
});
|
|
2839
|
+
};
|
|
2840
|
+
/**
|
|
2841
|
+
* Добавление комментария
|
|
2842
|
+
* Метод требует наличия [платного доступа для работодателя](#tag/Uslugi-rabotodatelya/operation/get-payable-api-method-access)
|
|
2843
|
+
*/
|
|
2844
|
+
export const addApplicantComment = (options) => {
|
|
2845
|
+
return (options.client ?? _heyApiClient).post({
|
|
2846
|
+
...urlSearchParamsBodySerializer,
|
|
2847
|
+
security: [
|
|
2848
|
+
{
|
|
2849
|
+
scheme: 'bearer',
|
|
2850
|
+
type: 'http'
|
|
2851
|
+
}
|
|
2852
|
+
],
|
|
2853
|
+
url: '/applicant_comments/{applicant_id}',
|
|
2854
|
+
...options,
|
|
2855
|
+
headers: {
|
|
2856
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
2857
|
+
...options.headers
|
|
2858
|
+
}
|
|
2859
|
+
});
|
|
2860
|
+
};
|
|
2861
|
+
/**
|
|
2862
|
+
* Изменение шаблона ответа соискателю
|
|
2863
|
+
* Изменение шаблона ответа для [переписки](https://github.com/hhru/api/blob/master/docs/employer_negotiations.md)
|
|
2864
|
+
*
|
|
2865
|
+
*/
|
|
2866
|
+
export const putMailTemplatesItem = (options) => {
|
|
2867
|
+
return (options.client ?? _heyApiClient).put({
|
|
2868
|
+
security: [
|
|
2869
|
+
{
|
|
2870
|
+
scheme: 'bearer',
|
|
2871
|
+
type: 'http'
|
|
2872
|
+
}
|
|
2873
|
+
],
|
|
2874
|
+
url: '/employers/{employer_id}/mail_templates/{template_id}',
|
|
2875
|
+
...options,
|
|
2876
|
+
headers: {
|
|
2877
|
+
'Content-Type': 'application/json',
|
|
2878
|
+
...options.headers
|
|
2879
|
+
}
|
|
2880
|
+
});
|
|
2881
|
+
};
|
|
2882
|
+
/**
|
|
2883
|
+
* Список доступных шаблонов ответов соискателю
|
|
2884
|
+
* Возвращает список возможных значений шаблонов ответов для [переписки](https://github.com/hhru/api/blob/master/docs/employer_negotiations.md)
|
|
2885
|
+
*
|
|
2886
|
+
*/
|
|
2887
|
+
export const getMailTemplates = (options) => {
|
|
2888
|
+
return (options.client ?? _heyApiClient).get({
|
|
2889
|
+
security: [
|
|
2890
|
+
{
|
|
2891
|
+
scheme: 'bearer',
|
|
2892
|
+
type: 'http'
|
|
2893
|
+
}
|
|
2894
|
+
],
|
|
2895
|
+
url: '/employers/{employer_id}/mail_templates',
|
|
2896
|
+
...options
|
|
2897
|
+
});
|
|
2898
|
+
};
|
|
2899
|
+
/**
|
|
2900
|
+
* Получение информации о статистике рекламных кампаний в Clickme
|
|
2901
|
+
* Получение информации о статистике рекламных кампаний в Clickme
|
|
2902
|
+
*/
|
|
2903
|
+
export const getClickmeStatistics = (options) => {
|
|
2904
|
+
return (options.client ?? _heyApiClient).get({
|
|
2905
|
+
security: [
|
|
2906
|
+
{
|
|
2907
|
+
scheme: 'bearer',
|
|
2908
|
+
type: 'http'
|
|
2909
|
+
}
|
|
2910
|
+
],
|
|
2911
|
+
url: '/clickme/statistics',
|
|
2912
|
+
...options
|
|
2913
|
+
});
|
|
2914
|
+
};
|
|
2915
|
+
/**
|
|
2916
|
+
* Справочник стран
|
|
2917
|
+
* Возвращает подмножество регионов, являющихся странами
|
|
2918
|
+
*/
|
|
2919
|
+
export const getCountries = (options) => {
|
|
2920
|
+
return (options.client ?? _heyApiClient).get({
|
|
2921
|
+
security: [
|
|
2922
|
+
{
|
|
2923
|
+
scheme: 'bearer',
|
|
2924
|
+
type: 'http'
|
|
2925
|
+
}
|
|
2926
|
+
],
|
|
2927
|
+
url: '/areas/countries',
|
|
2928
|
+
...options
|
|
2929
|
+
});
|
|
2930
|
+
};
|
|
2931
|
+
/**
|
|
2932
|
+
* Дерево всех регионов
|
|
2933
|
+
* Возвращает древовидный список всех регионов.
|
|
2934
|
+
*
|
|
2935
|
+
* Значения в справочнике могут поменяться в любой момент
|
|
2936
|
+
*
|
|
2937
|
+
*/
|
|
2938
|
+
export const getAreas = (options) => {
|
|
2939
|
+
return (options.client ?? _heyApiClient).get({
|
|
2940
|
+
security: [
|
|
2941
|
+
{
|
|
2942
|
+
scheme: 'bearer',
|
|
2943
|
+
type: 'http'
|
|
2944
|
+
}
|
|
2945
|
+
],
|
|
2946
|
+
url: '/areas',
|
|
2947
|
+
...options
|
|
2948
|
+
});
|
|
2949
|
+
};
|
|
2950
|
+
/**
|
|
2951
|
+
* Справочник регионов, начиная с указанного
|
|
2952
|
+
* Возвращает древовидный список регионов, начиная с указанного.
|
|
2953
|
+
*
|
|
2954
|
+
* Значения в справочнике могут поменяться в любой момент
|
|
2955
|
+
*
|
|
2956
|
+
*/
|
|
2957
|
+
export const getAreasFromSpecified = (options) => {
|
|
2958
|
+
return (options.client ?? _heyApiClient).get({
|
|
2959
|
+
security: [
|
|
2960
|
+
{
|
|
2961
|
+
scheme: 'bearer',
|
|
2962
|
+
type: 'http'
|
|
2963
|
+
}
|
|
2964
|
+
],
|
|
2965
|
+
url: '/areas/{area_id}',
|
|
2966
|
+
...options
|
|
2967
|
+
});
|
|
2968
|
+
};
|
|
2969
|
+
/**
|
|
2970
|
+
* Уровни компетенций
|
|
2971
|
+
* Возвращает список уровней компетенций
|
|
2972
|
+
*/
|
|
2973
|
+
export const getSalaryEmployeeLevels = (options) => {
|
|
2974
|
+
return (options.client ?? _heyApiClient).get({
|
|
2975
|
+
security: [
|
|
2976
|
+
{
|
|
2977
|
+
scheme: 'bearer',
|
|
2978
|
+
type: 'http'
|
|
2979
|
+
}
|
|
2980
|
+
],
|
|
2981
|
+
url: '/salary_statistics/dictionaries/employee_levels',
|
|
2982
|
+
...options
|
|
2983
|
+
});
|
|
2984
|
+
};
|
|
2985
|
+
/**
|
|
2986
|
+
* Регионы и города
|
|
2987
|
+
* Возвращает список регионов, областей и городов
|
|
2988
|
+
*/
|
|
2989
|
+
export const getSalarySalaryAreas = (options) => {
|
|
2990
|
+
return (options.client ?? _heyApiClient).get({
|
|
2991
|
+
security: [
|
|
2992
|
+
{
|
|
2993
|
+
scheme: 'bearer',
|
|
2994
|
+
type: 'http'
|
|
2995
|
+
}
|
|
2996
|
+
],
|
|
2997
|
+
url: '/salary_statistics/dictionaries/salary_areas',
|
|
2998
|
+
...options
|
|
2999
|
+
});
|
|
3000
|
+
};
|
|
3001
|
+
/**
|
|
3002
|
+
* Профобласти и специализации
|
|
3003
|
+
* Возвращает список профобластей и специализаций
|
|
3004
|
+
*/
|
|
3005
|
+
export const getSalaryProfessionalAreas = (options) => {
|
|
3006
|
+
return (options.client ?? _heyApiClient).get({
|
|
3007
|
+
security: [
|
|
3008
|
+
{
|
|
3009
|
+
scheme: 'bearer',
|
|
3010
|
+
type: 'http'
|
|
3011
|
+
}
|
|
3012
|
+
],
|
|
3013
|
+
url: '/salary_statistics/dictionaries/professional_areas',
|
|
3014
|
+
...options
|
|
3015
|
+
});
|
|
3016
|
+
};
|
|
3017
|
+
/**
|
|
3018
|
+
* Отрасли и сферы деятельности
|
|
3019
|
+
* Возвращает двухуровневый список отраслей и сфер деятельности
|
|
3020
|
+
*/
|
|
3021
|
+
export const getSalaryIndustries = (options) => {
|
|
3022
|
+
return (options.client ?? _heyApiClient).get({
|
|
3023
|
+
security: [
|
|
3024
|
+
{
|
|
3025
|
+
scheme: 'bearer',
|
|
3026
|
+
type: 'http'
|
|
3027
|
+
}
|
|
3028
|
+
],
|
|
3029
|
+
url: '/salary_statistics/dictionaries/salary_industries',
|
|
3030
|
+
...options
|
|
3031
|
+
});
|
|
3032
|
+
};
|
|
3033
|
+
/**
|
|
3034
|
+
* Поиск работодателей для добавления в список видимости
|
|
3035
|
+
* Возвращает результаты поиска работодателей
|
|
3036
|
+
*/
|
|
3037
|
+
export const getResumeVisibilityEmployersList = (options) => {
|
|
3038
|
+
return (options.client ?? _heyApiClient).get({
|
|
3039
|
+
security: [
|
|
3040
|
+
{
|
|
3041
|
+
scheme: 'bearer',
|
|
3042
|
+
type: 'http'
|
|
3043
|
+
}
|
|
3044
|
+
],
|
|
3045
|
+
url: '/resumes/{resume_id}/{list_type}/search',
|
|
3046
|
+
...options
|
|
3047
|
+
});
|
|
3048
|
+
};
|
|
3049
|
+
/**
|
|
3050
|
+
* Очистка списка видимости
|
|
3051
|
+
*/
|
|
3052
|
+
export const deleteResumeVisibilityList = (options) => {
|
|
3053
|
+
return (options.client ?? _heyApiClient).delete({
|
|
3054
|
+
security: [
|
|
3055
|
+
{
|
|
3056
|
+
scheme: 'bearer',
|
|
3057
|
+
type: 'http'
|
|
3058
|
+
}
|
|
3059
|
+
],
|
|
3060
|
+
url: '/resumes/{resume_id}/{list_type}',
|
|
3061
|
+
...options
|
|
3062
|
+
});
|
|
3063
|
+
};
|
|
3064
|
+
/**
|
|
3065
|
+
* Получение списка видимости резюме
|
|
3066
|
+
* Возвращает список работодателей, для которых резюме должно быть видимо или скрыто
|
|
3067
|
+
*
|
|
3068
|
+
*/
|
|
3069
|
+
export const getResumeVisibilityList = (options) => {
|
|
3070
|
+
return (options.client ?? _heyApiClient).get({
|
|
3071
|
+
security: [
|
|
3072
|
+
{
|
|
3073
|
+
scheme: 'bearer',
|
|
3074
|
+
type: 'http'
|
|
3075
|
+
}
|
|
3076
|
+
],
|
|
3077
|
+
url: '/resumes/{resume_id}/{list_type}',
|
|
3078
|
+
...options
|
|
3079
|
+
});
|
|
3080
|
+
};
|
|
3081
|
+
/**
|
|
3082
|
+
* Добавление работодателей в список видимости
|
|
3083
|
+
* Добавляет указанных работодателей в список видимости указанного типа.
|
|
3084
|
+
*
|
|
3085
|
+
* За один запрос можно добавить не больше 100 компаний.
|
|
3086
|
+
*
|
|
3087
|
+
* Добавление в список идемпотентно, то есть добавление работодателей, уже присутствующих в списке, игнорируется и не приводит к дублированию записей.
|
|
3088
|
+
*
|
|
3089
|
+
* Можно добавить в список заблокированного работодателя
|
|
3090
|
+
*
|
|
3091
|
+
*/
|
|
3092
|
+
export const addResumeVisibilityList = (options) => {
|
|
3093
|
+
return (options.client ?? _heyApiClient).post({
|
|
3094
|
+
security: [
|
|
3095
|
+
{
|
|
3096
|
+
scheme: 'bearer',
|
|
3097
|
+
type: 'http'
|
|
3098
|
+
}
|
|
3099
|
+
],
|
|
3100
|
+
url: '/resumes/{resume_id}/{list_type}',
|
|
3101
|
+
...options,
|
|
3102
|
+
headers: {
|
|
3103
|
+
'Content-Type': 'application/json',
|
|
3104
|
+
...options.headers
|
|
3105
|
+
}
|
|
3106
|
+
});
|
|
3107
|
+
};
|
|
3108
|
+
/**
|
|
3109
|
+
* Удаление работодателя из списка видимости
|
|
3110
|
+
* Удаление из списка идемпотентно, то есть удаление отсутствующих в списке или несуществующих работодателей игнорируется и не приводит к ошибкам.
|
|
3111
|
+
*
|
|
3112
|
+
* Можно удалить из списка заблокированного работодателя.
|
|
3113
|
+
*
|
|
3114
|
+
* За один запрос можно удалить не более 100 компаний
|
|
3115
|
+
*
|
|
3116
|
+
*/
|
|
3117
|
+
export const deleteEmployerFromResumeVisibilityList = (options) => {
|
|
3118
|
+
return (options.client ?? _heyApiClient).delete({
|
|
3119
|
+
security: [
|
|
3120
|
+
{
|
|
3121
|
+
scheme: 'bearer',
|
|
3122
|
+
type: 'http'
|
|
3123
|
+
}
|
|
3124
|
+
],
|
|
3125
|
+
url: '/resumes/{resume_id}/{list_type}/employer',
|
|
3126
|
+
...options
|
|
3127
|
+
});
|
|
3128
|
+
};
|