Найти в Дзене

Планировщик. Часть 4. Категории (backend)

В этой статье я опишу то как я реализовала все необходимое для отображения, добавления и удаления категорий.

Это продолжение истории о создании проекта планировщик, предыдущие части: часть 1, часть 2, часть 3

Для проекта я выбрала БД Postgre, чтобы подключаться и получать данные из таблиц я использовала библиотеку pg. А также библиотеку node-pg-migrate для миграций - чтобы одной командой поддерживать актуальное состояние БД.

db
db

Все запросы к базе данных происходят через единую точку входа - db/index.ts.

db/index.ts
db/index.ts

Все запросы выполняются через метод query. Метод select будет возвращать массив строк. Также есть утил

Порядок создания новой сущности следующий: создать миграцию; описать модель category; сделать сервис, реализующий работу с БД; сделать класс resolver, который будет обрабатывать query/mutation запросы и вызывать соответсвующие методы в сервисе.

Для хранения категорий пока достаточно следующих полей: id, title, created. В поле created будет хранится дата создания, пока не уверена что оно нужно, но решила все таки сделать, возможно нужна будет информаци о том когда была создана категория.

Миграция для создания таблицы category
Миграция для создания таблицы category
Модель  Category
Модель  Category

Сервис для категорий реализует 3 метода - получение всех категорий, создание категории, удаление категории. В дальнейшем нужно будет сделать редактирование, но это буду делать позже.

Сервис для категорий
Сервис для категорий
category resolver
category resolver

В итоге мы получаем один запрос и 2 мутации. И теперь с помощью graphiql можно проверить что получилось.

Список категорий
Список категорий
Создание категории
Создание категории
Удаление категории
Удаление категории

Продолжение следует...