From 3bf3e2a23303c9549cbabede4fa42d847c18ce10 Mon Sep 17 00:00:00 2001 From: d3m0k1d Date: Sat, 14 Feb 2026 14:40:42 +0300 Subject: [PATCH] feat: add simple docker compose file, change pipline, add docker build command to makefile, update db path logic in storage packages, minor fixes in handlers --- .gitea/workflows/ci-back.yml | 4 ---- backend/Makefile | 5 ++++- backend/docker-compose.yml | 12 ++++++++++++ backend/docs/docs.go | 18 ++++++++++++++++++ backend/docs/swagger.json | 18 ++++++++++++++++++ backend/docs/swagger.yaml | 12 ++++++++++++ backend/internal/handlers/registry_handlers.go | 6 +++--- backend/internal/storage/db.go | 8 ++++---- 8 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 backend/docker-compose.yml diff --git a/.gitea/workflows/ci-back.yml b/.gitea/workflows/ci-back.yml index e2db25c..effb49f 100644 --- a/.gitea/workflows/ci-back.yml +++ b/.gitea/workflows/ci-back.yml @@ -1,10 +1,6 @@ name: Backend ci on: - push: - branches: - - master - - develop pull_request: branches: - master diff --git a/backend/Makefile b/backend/Makefile index 190c417..9e3eea8 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -1,4 +1,4 @@ -.PHONY: test build clean lint dev run-docker docs-upd +.PHONY: test build clean lint dev run-docker docs-upd docker test: @@ -25,6 +25,9 @@ docs-upd: swag init -g ./cmd/main.go --parseDependency --parseInternal +docker: + docker build -t backend . + run-docker: docker build -t backend . docker run --rm -p 8080:8080 --env-file .env backend:latest diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml new file mode 100644 index 0000000..c0e96a0 --- /dev/null +++ b/backend/docker-compose.yml @@ -0,0 +1,12 @@ +services: + backend: + image: backend:latest + env_file: + - .env + ports: + - 8080:8080 + volumes: + - db-data:/var/lib/backend/data + +volumes: + db-data: diff --git a/backend/docs/docs.go b/backend/docs/docs.go index 853484d..cee2fdf 100644 --- a/backend/docs/docs.go +++ b/backend/docs/docs.go @@ -179,6 +179,15 @@ const docTemplate = `{ } } }, + "404": { + "description": "Post not found", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, "500": { "description": "Internal server error", "schema": { @@ -241,6 +250,15 @@ const docTemplate = `{ "posts" ], "summary": "Delete post", + "parameters": [ + { + "type": "integer", + "description": "Post ID", + "name": "id", + "in": "path", + "required": true + } + ], "responses": { "200": { "description": "OK", diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index bccf84d..3b0aed7 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json @@ -168,6 +168,15 @@ } } }, + "404": { + "description": "Post not found", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, "500": { "description": "Internal server error", "schema": { @@ -230,6 +239,15 @@ "posts" ], "summary": "Delete post", + "parameters": [ + { + "type": "integer", + "description": "Post ID", + "name": "id", + "in": "path", + "required": true + } + ], "responses": { "200": { "description": "OK", diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml index bd83ce3..b23bff6 100644 --- a/backend/docs/swagger.yaml +++ b/backend/docs/swagger.yaml @@ -120,6 +120,12 @@ paths: consumes: - application/json description: Delete post + parameters: + - description: Post ID + in: path + name: id + required: true + type: integer produces: - application/json responses: @@ -153,6 +159,12 @@ paths: additionalProperties: type: string type: object + "404": + description: Post not found + schema: + additionalProperties: + type: string + type: object "500": description: Internal server error schema: diff --git a/backend/internal/handlers/registry_handlers.go b/backend/internal/handlers/registry_handlers.go index b03e6dd..b33ac1b 100644 --- a/backend/internal/handlers/registry_handlers.go +++ b/backend/internal/handlers/registry_handlers.go @@ -20,8 +20,8 @@ func Register(router *gin.Engine, db *sql.DB) { posts.GET("/", handler_posts.GetPosts) posts.GET("/:id", handler_posts.GetPost) - posts.POST("/", handler_posts.CreatePost) - posts.PUT("/:id", handler_posts.UpdatePost) - posts.DELETE("/:id", handler_posts.DeletePost).Use(auth.JWTMiddleware()) + posts.POST("/", auth.JWTMiddleware(), handler_posts.CreatePost) + posts.PUT("/:id", auth.JWTMiddleware(), handler_posts.UpdatePost) + posts.DELETE("/:id", auth.JWTMiddleware(), handler_posts.DeletePost) } } diff --git a/backend/internal/storage/db.go b/backend/internal/storage/db.go index 94c53af..117860a 100644 --- a/backend/internal/storage/db.go +++ b/backend/internal/storage/db.go @@ -8,9 +8,9 @@ import ( _ "modernc.org/sqlite" ) -var db_path = os.Getenv( - "DB_PATH", -) + "?_journal_mode=WAL&_busy_timeout=5000&_synchronous=NORMAL&_cache_size=2000&_foreign_keys=ON" +var path = os.Getenv("DB_PATH") + +var params = "?_journal_mode=WAL&_busy_timeout=5000&_synchronous=NORMAL&_cache_size=2000&_foreign_keys=ON" func CreateTables(db *sql.DB) error { logger := logger.New(false) @@ -24,7 +24,7 @@ func CreateTables(db *sql.DB) error { } func OpenSession() (*sql.DB, error) { - db, err := sql.Open("sqlite", db_path) + db, err := sql.Open("sqlite", path+params) if err != nil { return nil, err }