Share
Explore

Back-end разработчик — тестовое задание

Работа направляется Симакову Виктору Андреевичу

Описание задания:

Необходимо создать WordPress плагин, который будет выполнять определенный набор функций.

Функциональные требования:

В хук плагина “register_activation_hook” необходимо добавить функцию добавления кастомной таблицы в БД. Наименование таблицы resume_list
Поля таблицы:
0
Column name
Type
1
id
bigint(20)
Auto Increment
2
name
varchar(255)
3
skills
varchar(255)
4
status
varchar(255)
There are no rows in this table
2. Плагин должен регистрировать REST API роуты

Необходимо использовать register_rest_route()

Описание роутов:

роут для приема данных:
namespace: resume/list
route: /setlist
method: POST

callback функция должна принимать POST параметры:

name — string
skills — string
status — string

Если параметры пришли, то их необходимо добавить в нашу таблицу resume_list
Роут должен возвращать объект c параметрами:

status: 200 или 500 (200 если запись в бд прошла, а 500 если была ошибка или с данными что-то не так)
text: описание ошибки или уведомление, что запись прошла успешно.

роут для возврата данных:
namespace: resume/list
route: /getlist
method: POST

callback функция должна принимать POST параметры:

limit — integer, используется для ограничения поиска при SQL запросе
q_name — string, используется для поиска записей в колонке “name”. Метод сравнения LIKE

Если параметры пришли, то их необходимо использовать для запроса к БД и получить записи.
Для запросов к БД используйте функции класса $wpdb.

Полученные из БД записи необходимо вернуть в JSON формате как ответ на запрос данного роута.


Как будет осуществляться проверка тестового задания:
Архив с плагином будет установлен на тестовый сайт. Установка будет осуществляться через стандартный WP интерфейс установки плагинов
С помощью программы postman будут выполнены запросы на роуты, которые создает плагин. Сначала на resume/list/setlist, чтобы добавить новые записи, а после на resume/list/getlist, чтобы просмотреть добавленные записи.


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.