/starpets

Primary LanguageTypeScript

Установка

  1. Установите и поднимите Postgresql
  2. В psql, создайте пользователя indicozy с паролем asdfasd. Либо, поменяйте логин и пароль под себя:
CREATE USER indicozy WITH PASSWORD 'asdfasd';
  1. Создайте базу данных starpets_dev с кодированием UTF-8 и назначте indicozy его владельцем:
CREATE DATABASE "starpets_dev"
WITH OWNER "indicozy"
ENCODING 'UTF8'
LC_COLLATE = 'en_US.UTF-8'
LC_CTYPE = 'en_US.UTF-8';
  1. переименуйте .env.example на .env
  2. Установить все пакеты используя pnpm:
pnpm i

После установки build приложения должен автоматически появиться в папке dist.

Запуск в режиме разработки

pnpm dev

Компиляция и старт

pnpm build && pnpm start

Ньюансы

На данный момент sequelize переписывает typescript, поэтому в контроллере юзера приходится делать проверку типов на рантайме. Также пришлось использовать ts-ignore для обхода проблем от sequelize.

API

Добавить пользователя с балансом:

POST http://localhost:3000/api/users/create
{
  "balance": 10
}

Получить информацию о пользователе:

GET http://localhost:3000/api/users/:userId

Снять средства от пользователя:

POST http://localhost:3000/api/users/:userId/credit
{
  "amount": 10
}