Список кандидатов
GraphQL запросы на примере работы со списком кандидатов.
Получение списка кандидатов
Для того чтобы получить список кандидатов, необходимо выполнить следующий graphql запрос к persons:
- graphql
- cURL
query PersonsList {
persons {
items {
id
age
firstName
middleName
lastName
birthDay
area {
name
}
source {
name
}
photos {
items {
url
}
}
contacts {
items {
type
value
}
}
resumes {
items {
... on ResumeItem {
name
source {
type
}
}
}
}
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"query PersonsList {\\n persons {\\n items {\\n id\\n age\\n firstName\\n middleName\\n lastName\\n birthDay\\n area {\\n name\\n }\\n source {\\n name\\n }\\n photos {\\n items {\\n url\\n }\\n }\\n contacts {\\n items {\\n type\\n value\\n }\\n }\\n resumes {\\n items {\\n ... on ResumeItem {\\n name\\n source {\\n type\\n }\\n }\\n }\\n }\\n }\\n }\\n}\"}"
PersonItem - список доступных полей кандидата
Результат запроса
{
"data": {
"persons": {
"items": [
{
"id": 1,
"age": 26,
"firstName": "Cергей",
"middleName": "Викторович",
"lastName": "Гончаров",
"birthDay": 862876800000,
"area": {
"name": "Москва"
},
"source": {
"name": "Отклик hh"
},
"photos": {
"items": [
{
"url": "/ats/person/photo/xyz"
},
{
"url": "/ats/person/photo/abcdef"
}
]
},
"contacts": {
"items": [
{
"type": "cell",
"value": "+7 812 458-45-45"
},
{
"type": "email",
"value": "feedback@talantix.ru"
}
]
},
"resumes": {
"items": [
{
"name": "Резюме hh",
"source": {
"type": "hh"
}
}
]
}
},
{
"id": 2,
"age": 25,
"firstName": "Иван",
"middleName": "Викторович",
"lastName": "Гончаров",
"birthDay": 891561600000,
"area": {
"name": "Минск"
},
"source": {
"name": "Отклик hh"
},
"photos": null,
"contacts": {
"items": [
{
"type": "cell",
"value": "+7 812 458-45-45"
},
{
"type": "email",
"value": "talantix@talantix.ru"
}
]
},
"resumes": {
"items": [
{
"name": "Резюме hh",
"source": {
"type": "hh"
}
}
]
}
}
]
}
}
}
Фильтрация списка кандидатов
Для фильтрации кандидатов по различным полям используется аргумент filter
в запросе persons.
Для фильтрации кандидатов с возрастом от 18
до 30
лет необходимо выполнить запрос:
- graphql
- cURL
query PersonsListFilter {
persons(filter: {ageFrom: 18, ageTo: 30}) {
items {
age
firstName
lastName
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"query PersonsListFilter {\\n persons(filter: {ageFrom: 18, ageTo: 30}) {\\n items {\\n age\\n firstName\\n lastName\\n }\\n }\\n}\"}"
PersonFilterInput - подробное описание аргумента filter
Результат запроса
{
"data": {
"persons": {
"items": [
{
"age": 25,
"firstName": "Cергей",
"lastName": "Смирнов"
},
{
"age": 29,
"firstName": "Анрей",
"lastName": "Кузнецов"
}
]
}
}
}
Поиск по списку кандидатов
Для полнотекстового поиска используется аргумент filter
с параметром search
и searchFrom
.
Для поиска кандидатов по номеру телефона, необходимо выполнить следующий graphql запрос:
- graphql
- cURL
query PersonsListSearch {
persons(filter: {search: "+7 812 458-45-45", searchFrom: CONTACTS}) {
items {
firstName
lastName
contacts {
items {
type
value
}
}
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"query PersonsListSearch {\\n persons(filter: {search: \\\"+7 812 458-45-45\\\", searchFrom: CONTACTS}) {\\n items {\\n firstName\\n lastName\\n contacts {\\n items {\\n type\\n value\\n }\\n }\\n }\\n }\\n}\"}"
searchFrom - список доступных значений searchFrom
.
search - подробное описание параметра search
.
Результат запроса
{
"data": {
"persons": {
"items": [
{
"firstName": "Олег",
"lastName": "Кузнецов",
"contacts": {
"items": [
{
"type": "cell",
"value": "7 812 458-45-45"
},
{
"type": "email",
"value": "email@email.ru"
}
]
}
},
{
"firstName": "Cергей",
"lastName": "Кузнецов",
"contacts": {
"items": [
{
"type": "cell",
"value": "7 812 458-45-45"
}
]
}
}
]
}
}
}
Пагинация списка кандидатов
Чтобы запросить следующую страницу по списку, нужно использовать курсор для аргумента after
в запросе persons.
Для этого необходимо выполнить graphql запрос:
- graphql
- cURL
query PersonListPagination {
persons(after: "123456789|2") {
pageInfo {
hasNextPage
endCursor
}
items {
firstName
lastName
}
}
}
curl https://api.talantix.ru/graphql \
-X POST \
-H "Content-Type: application/json" \
-H "User-Agent: api-doc-agent" \
-H "Authorization: Bearer <your access token>" \
-d "{\"query\":\"query PersonListPagination {\\n persons(after: \\\"123456789|2\\\") {\\n pageInfo {\\n hasNextPage\\n endCursor\\n }\\n items {\\n firstName\\n lastName\\n }\\n }\\n}\"}"
Пагинация - подробное описание работы пагинации
Результат запроса
{
"data": {
"persons": {
"pageInfo": {
"endCursor": "123456789|68",
"hasNextPage": true
},
"items": [
{
"firstName": "Олег",
"lastName": "Кузнецов"
},
{
"firstName": "Cергей",
"lastName": "Кузнецов"
}
]
}
}
}