Skip to content

Commit 6528032

Browse files
refactor(infrastructure): разделил спецификацию по модулям, обновил сериалайзер ответа
1 parent d057756 commit 6528032

File tree

56 files changed

+3384
-1333
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+3384
-1333
lines changed

.github/workflows/check-code-quality.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ jobs:
1414
- name: Setup docker env
1515
run: ./setup_envs.bash setup-envs && cat .env
1616

17+
- name: Validate commit message
18+
run: ./docker/bin/check_commit_message.bash
19+
1720
- name: Cache Composer packages
1821
id: composer-cache
1922
uses: actions/cache@v3
@@ -42,7 +45,7 @@ jobs:
4245
run: make check-openapi-diff
4346

4447
- name: Check OpenApi schema
45-
run: docker run --rm -v ${PWD}/backend:/app stoplight/spectral lint /app/src-dev/openapi.yaml -F warn --ruleset=/app/src-dev/.spectral.yaml
48+
run: docker run --rm -v ${PWD}/backend:/app stoplight/spectral lint /app/src-dev/OpenApi/openapi.yaml -F warn --ruleset=/app/src-dev/OpenApi/.spectral.yaml
4649

4750
- name: Run functional tests with code coverage
4851
run: make test-coverage

Makefile

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,14 @@ init: # Запуск проекта и установка зависимосте
1010
make setup-transports
1111

1212
build: # Сборка образов и установка зависимостей
13-
make setup-env
1413
docker compose build
1514
make composer-install
1615
make up
1716

1817
up: # Запуск контейнеров
19-
make setup-env
2018
docker compose up -d --force-recreate --remove-orphans
2119

2220
down: # Остановка контейнеров
23-
make setup-env
2421
docker compose down --remove-orphans
2522

2623
update: # Обновление зависимостей
@@ -36,20 +33,18 @@ db-migration-prev: # Откатить последнюю миграцию
3633
docker compose run --rm backend-cli bin/console doctrine:migrations:migrate prev
3734

3835
db-validate: # Проверка валидности схемы БД
39-
docker compose run --rm backend-cli bash -c "bin/console doctrine:schema:validate --skip-sync && bin/console doctrine:migrations:up-to-date && ! bin/console doctrine:migrations:diff"
36+
docker compose run --rm backend bin/console doctrine:schema:validate
4037

4138
setup-transports: # Настройка очередей
4239
docker compose run --rm backend-cli bin/console messenger:setup-transports
4340

4441
run-backend: # Выполнение команды на бэкенде, пример: make run-backend echo "hello"
45-
make setup-env
4642
@docker compose run --rm backend-cli $(Arguments)
4743

4844
logs: # Просмотр логов сервиса, пример: make logs backend
49-
make setup-env
5045
@docker compose logs $(Arguments)
5146

52-
check: composer-check-all cache-clear lint test check-openapi-diff check-openapi-schema db-validate # Проверка кода
47+
check: cache-clear composer-check-all db-validate lint check-openapi-diff check-openapi-schema test # Проверка кода
5348

5449
fix: fixer-fix rector-fix # Запуск правок кода
5550

@@ -115,7 +110,6 @@ deptrac-check-unassigned: # Покрытие кода с deptrac
115110
docker compose run --rm backend-cli vendor/bin/deptrac debug:unassigned --config-file=src-dev/deptrac.yaml | tee /dev/stderr | grep 'There are no unassigned tokens'
116111

117112
test-install: # Подготовка тестового окружения
118-
make init
119113
@for i in 1 2 3 4 ; do \
120114
docker compose exec pgsql dropdb -f --if-exists db_name_test$$i; \
121115
docker compose exec pgsql createdb -O postgres db_name_test$$i; \
@@ -133,25 +127,26 @@ test-coverage: # Запуск тестов с покрытием кода
133127
docker compose run --rm backend-cli bash -c 'APP_ENV=test vendor/bin/paratest --configuration=src-dev/phpunit.xml --processes=4 --coverage-text'
134128

135129
test-verbose: # Запуск тестов с детальным описанием
136-
make setup-env
137130
docker compose run --rm backend-cli bin/console --env=test cache:clear
138131
docker compose run --rm backend-cli bash -c 'APP_ENV=test vendor/bin/paratest --configuration=src-dev/phpunit.xml -p4 --testdox'
139132

140133
test-single: # Запуск одного теста, пример: make test-single class=TaskCommentBodyTest
141-
make setup-env
142134
docker compose run --rm backend-cli bin/console --env=test cache:clear
143135
@docker compose run --rm backend-cli bash -c "APP_ENV=test vendor/bin/phpunit --configuration=src-dev/phpunit.xml --filter=$(class)"
144136

145137
check-openapi-diff: # Валидация соответствия роутов и схемы openapi
146-
docker compose run --rm backend-cli bin/console app:openapi-routes-diff ./src-dev/openapi.yaml
138+
docker compose run --rm backend-cli bin/console app:openapi-routes-diff ./src-dev/OpenApi/openapi.yaml
147139

148140
check-openapi-schema: spectral # Валидация openapi.yaml
149141

150142
spectral: # Валидация openapi.yaml с помощью spectral
151-
docker run --rm -it -v ${PWD}/backend:/app stoplight/spectral:latest lint /app/src-dev/openapi.yaml -F warn --ruleset=/app/src-dev/.spectral.yaml
143+
docker run --rm -it -v ${PWD}/backend:/app stoplight/spectral:latest lint /app/src-dev/OpenApi/openapi.yaml -F warn --ruleset=/app/src-dev/OpenApi/.spectral.yaml
152144

153145
deprecations-check: # Проверка на устаревший функционал
154146
docker compose run --rm backend-cli bin/console debug:container --deprecations
155147

148+
generate-openapi: # Сборка файла спецификации OpenAPI
149+
docker compose run --rm backend-cli bin/console app:generate-openapi
150+
156151
help: # Справка по командам
157152
@grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | sort | while read -r l; do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; done

backend/migrations/Version20220603114543.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public function getDescription(): string
1616
return 'Проверка базы данных';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
2221
$this->addSql("SELECT '1';");

backend/migrations/Version20240719151750.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ public function getDescription(): string
1616
return 'Пользователь и токен авторизации';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
22-
// this up() migration is auto-generated, please modify it to your needs
2321
$this->addSql('CREATE TABLE "user" (id UUID NOT NULL, user_role VARCHAR(255) NOT NULL, is_confirmed BOOLEAN NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, user_email_value VARCHAR(255) NOT NULL, confirm_token_value UUID NOT NULL, user_password_value VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
2422
$this->addSql('CREATE UNIQUE INDEX UNIQ_8D93D649B6244599 ON "user" (confirm_token_value)');
2523
$this->addSql('CREATE TABLE user_token (id UUID NOT NULL, user_id UUID NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, PRIMARY KEY(id))');
@@ -29,7 +27,6 @@ public function up(Schema $schema): void
2927
#[Override]
3028
public function down(Schema $schema): void
3129
{
32-
// this down() migration is auto-generated, please modify it to your needs
3330
$this->addSql('DROP TABLE "user"');
3431
$this->addSql('DROP TABLE user_token');
3532
}

backend/migrations/Version20240719151819.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,15 @@ public function getDescription(): string
1616
return 'Восстановление пароля';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
22-
// this up() migration is auto-generated, please modify it to your needs
2321
$this->addSql('CREATE TABLE recovery_token (id UUID NOT NULL, user_id UUID NOT NULL, token UUID NOT NULL, PRIMARY KEY(id))');
2422
$this->addSql('CREATE INDEX ix_recovery_token_user_id ON recovery_token (user_id)');
2523
}
2624

2725
#[Override]
2826
public function down(Schema $schema): void
2927
{
30-
// this down() migration is auto-generated, please modify it to your needs
3128
$this->addSql('DROP TABLE recovery_token');
3229
}
3330
}

backend/migrations/Version20240719151844.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,15 @@ public function getDescription(): string
1616
return 'Профиль';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
22-
// this up() migration is auto-generated, please modify it to your needs
2321
$this->addSql('CREATE TABLE profile (id UUID NOT NULL, user_id UUID NOT NULL, name VARCHAR(255) NOT NULL, phone_value VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
2422
$this->addSql('CREATE INDEX ix_profile_user_id ON profile (user_id)');
2523
}
2624

2725
#[Override]
2826
public function down(Schema $schema): void
2927
{
30-
// this down() migration is auto-generated, please modify it to your needs
3128
$this->addSql('DROP TABLE profile');
3229
}
3330
}

backend/migrations/Version20240719151911.php

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,51 +17,48 @@ public function getDescription(): string
1717
return 'Настройки';
1818
}
1919

20-
#[Override]
2120
public function up(Schema $schema): void
2221
{
23-
// this up() migration is auto-generated, please modify it to your needs
2422
$this->addSql('CREATE TABLE setting (id UUID NOT NULL, value VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL, is_public BOOLEAN NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
2523
$this->addSql('CREATE UNIQUE INDEX UNIQ_9F74B8988CDE5729 ON setting (type)');
2624

2725
$this->addSql(
28-
"INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
29-
VALUES (gen_random_uuid(), :setting_type, :setting_value, true, now(), now());",
26+
'INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
27+
VALUES (gen_random_uuid(), :setting_type, :setting_value, true, now(), now());',
3028
[
3129
'setting_type' => SettingType::SITE_NAME->value,
32-
'setting_value' => 'symfony-starter-kit'
33-
]
30+
'setting_value' => 'symfony-starter-kit',
31+
],
3432
);
3533
$this->addSql(
36-
"INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
37-
VALUES (gen_random_uuid(), :setting_type, :setting_value, false, now(), now());",
34+
'INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
35+
VALUES (gen_random_uuid(), :setting_type, :setting_value, false, now(), now());',
3836
[
3937
'setting_type' => SettingType::PHONE->value,
40-
'setting_value' => '71234567890'
41-
]
38+
'setting_value' => '71234567890',
39+
],
4240
);
4341
$this->addSql(
44-
"INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
45-
VALUES (gen_random_uuid(), :setting_type, :setting_value, false, now(), now());",
42+
'INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
43+
VALUES (gen_random_uuid(), :setting_type, :setting_value, false, now(), now());',
4644
[
4745
'setting_type' => SettingType::EMAIL_SITE->value,
48-
'setting_value' => 'info@symfonystarterkit.ru'
49-
]
46+
'setting_value' => 'info@symfonystarterkit.ru',
47+
],
5048
);
5149
$this->addSql(
52-
"INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
53-
VALUES (gen_random_uuid(), :setting_type, :setting_value, false, now(), now());",
50+
'INSERT INTO setting (id, type, value, is_public, created_at, updated_at)
51+
VALUES (gen_random_uuid(), :setting_type, :setting_value, false, now(), now());',
5452
[
5553
'setting_type' => SettingType::EMAIL_FROM->value,
56-
'setting_value' => 'support@symfonystarterkit.ru'
57-
]
54+
'setting_value' => 'support@symfonystarterkit.ru',
55+
],
5856
);
5957
}
6058

6159
#[Override]
6260
public function down(Schema $schema): void
6361
{
64-
// this down() migration is auto-generated, please modify it to your needs
6562
$this->addSql('DROP TABLE setting');
6663
}
6764
}

backend/migrations/Version20240719151932.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,14 @@ public function getDescription(): string
1616
return 'Статьи';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
22-
// this up() migration is auto-generated, please modify it to your needs
2321
$this->addSql('CREATE TABLE article (id UUID NOT NULL, title VARCHAR(255) NOT NULL, alias VARCHAR(255) NOT NULL, body TEXT NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
2422
}
2523

2624
#[Override]
2725
public function down(Schema $schema): void
2826
{
29-
// this down() migration is auto-generated, please modify it to your needs
3027
$this->addSql('DROP TABLE article');
3128
}
3229
}

backend/migrations/Version20240719151955.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ public function getDescription(): string
1616
return 'Задачи';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
22-
// this up() migration is auto-generated, please modify it to your needs
2321
$this->addSql('CREATE TABLE task (id UUID NOT NULL, user_id UUID NOT NULL, is_completed BOOLEAN NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, completed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, task_name_value VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
2422
$this->addSql('CREATE INDEX ix_task_user_id ON task (user_id)');
2523
$this->addSql('CREATE TABLE task_comment (id UUID NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, body_value VARCHAR(255) NOT NULL, task_id UUID NOT NULL, PRIMARY KEY(id))');
@@ -30,7 +28,6 @@ public function up(Schema $schema): void
3028
#[Override]
3129
public function down(Schema $schema): void
3230
{
33-
// this down() migration is auto-generated, please modify it to your needs
3431
$this->addSql('ALTER TABLE task_comment DROP CONSTRAINT FK_8B9578868DB60186');
3532
$this->addSql('DROP TABLE task');
3633
$this->addSql('DROP TABLE task_comment');

backend/migrations/Version20240719152016.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,15 @@ public function getDescription(): string
1616
return 'СЕО';
1717
}
1818

19-
#[Override]
2019
public function up(Schema $schema): void
2120
{
22-
// this up() migration is auto-generated, please modify it to your needs
2321
$this->addSql('CREATE TABLE seo (id UUID NOT NULL, type VARCHAR(255) NOT NULL, identity VARCHAR(255) NOT NULL, title VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, keywords TEXT DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
2422
$this->addSql('CREATE UNIQUE INDEX UNIQ_6C71EC308CDE5729 ON seo (type)');
2523
}
2624

2725
#[Override]
2826
public function down(Schema $schema): void
2927
{
30-
// this down() migration is auto-generated, please modify it to your needs
3128
$this->addSql('DROP TABLE seo');
3229
}
3330
}

0 commit comments

Comments
 (0)