diff --git a/backend/docs/docs.go b/backend/docs/docs.go
index eb5e1dd..5fc8e96 100644
--- a/backend/docs/docs.go
+++ b/backend/docs/docs.go
@@ -18,26 +18,6 @@ const docTemplate = `{
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
- "/account/changePassword": {
- "put": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Account"
- ],
- "summary": "Change account password",
- "responses": {}
- }
- },
"/auth/changePassword": {
"post": {
"security": [
@@ -289,113 +269,6 @@ const docTemplate = `{
}
}
},
- "/profile": {
- "patch": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Update profile",
- "responses": {}
- }
- },
- "/profile/me": {
- "get": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Get own profile when authorized",
- "responses": {}
- }
- },
- "/profile/privacy": {
- "get": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Get profile privacy settings",
- "responses": {}
- },
- "patch": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Update profile privacy settings",
- "responses": {}
- }
- },
- "/profile/{username}": {
- "get": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Get someone's profile details",
- "parameters": [
- {
- "type": "string",
- "description": "Username",
- "name": "username",
- "in": "path",
- "required": true
- }
- ],
- "responses": {}
- }
- },
"/service/health": {
"get": {
"description": "Used internally for checking service health",
diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json
index 4f37e72..484d017 100644
--- a/backend/docs/swagger.json
+++ b/backend/docs/swagger.json
@@ -14,26 +14,6 @@
},
"basePath": "/api/",
"paths": {
- "/account/changePassword": {
- "put": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Account"
- ],
- "summary": "Change account password",
- "responses": {}
- }
- },
"/auth/changePassword": {
"post": {
"security": [
@@ -285,113 +265,6 @@
}
}
},
- "/profile": {
- "patch": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Update profile",
- "responses": {}
- }
- },
- "/profile/me": {
- "get": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Get own profile when authorized",
- "responses": {}
- }
- },
- "/profile/privacy": {
- "get": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Get profile privacy settings",
- "responses": {}
- },
- "patch": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Update profile privacy settings",
- "responses": {}
- }
- },
- "/profile/{username}": {
- "get": {
- "security": [
- {
- "JWT": []
- }
- ],
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Profile"
- ],
- "summary": "Get someone's profile details",
- "parameters": [
- {
- "type": "string",
- "description": "Username",
- "name": "username",
- "in": "path",
- "required": true
- }
- ],
- "responses": {}
- }
- },
"/service/health": {
"get": {
"description": "Used internally for checking service health",
diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml
index 39f35c1..83f1608 100644
--- a/backend/docs/swagger.yaml
+++ b/backend/docs/swagger.yaml
@@ -126,18 +126,6 @@ info:
title: Easywish client API
version: "1.0"
paths:
- /account/changePassword:
- put:
- consumes:
- - application/json
- produces:
- - application/json
- responses: {}
- security:
- - JWT: []
- summary: Change account password
- tags:
- - Account
/auth/changePassword:
post:
consumes:
@@ -297,71 +285,6 @@ paths:
summary: Confirm with code, finish creating the account
tags:
- Auth
- /profile:
- patch:
- consumes:
- - application/json
- produces:
- - application/json
- responses: {}
- security:
- - JWT: []
- summary: Update profile
- tags:
- - Profile
- /profile/{username}:
- get:
- consumes:
- - application/json
- parameters:
- - description: Username
- in: path
- name: username
- required: true
- type: string
- produces:
- - application/json
- responses: {}
- security:
- - JWT: []
- summary: Get someone's profile details
- tags:
- - Profile
- /profile/me:
- get:
- consumes:
- - application/json
- produces:
- - application/json
- responses: {}
- security:
- - JWT: []
- summary: Get own profile when authorized
- tags:
- - Profile
- /profile/privacy:
- get:
- consumes:
- - application/json
- produces:
- - application/json
- responses: {}
- security:
- - JWT: []
- summary: Get profile privacy settings
- tags:
- - Profile
- patch:
- consumes:
- - application/json
- produces:
- - application/json
- responses: {}
- security:
- - JWT: []
- summary: Update profile privacy settings
- tags:
- - Profile
/service/health:
get:
consumes:
diff --git a/backend/internal/middleware/request.go b/backend/internal/middleware/request.go
deleted file mode 100644
index 7ebfa2a..0000000
--- a/backend/internal/middleware/request.go
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (c) 2025 Nikolai Papin
-//
-// This file is part of Easywish
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
-// the GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-package middleware
-
-import (
- "easywish/internal/dto"
- "easywish/internal/utils/enums"
- "easywish/internal/validation"
- "fmt"
- "net/http"
-
- "github.com/gin-gonic/gin"
- "github.com/go-playground/validator/v10"
-)
-
-const requestKey = "request"
-
-// Deprecated: no longer used, embedded into controllers.GetRequest instead
-func ClientInfoFromContext(c *gin.Context) (*dto.ClientInfo, bool) {
-
- var ok bool
-
- ip := c.ClientIP()
- userAgent := c.Request.UserAgent()
-
- sessionInfoFromCtx, ok := c.Get("session_info"); if !ok {
- return nil, false
- }
-
- sessionInfo := sessionInfoFromCtx.(dto.SessionInfo)
-
- if sessionInfo.Username == "" {
- return &dto.ClientInfo{
- SessionInfo: sessionInfo,
- IP: ip,
- UserAgent: userAgent,
- }, true
- }
-
- return &dto.ClientInfo{
- SessionInfo: sessionInfo,
- IP: ip,
- UserAgent: userAgent,
- }, true
-}
-
-// Deprecated: no longer used, see controllers.GetRequest
-func RequestFromContext[T any](c *gin.Context) dto.Request[T] {
- return c.Value(requestKey).(dto.Request[T])
-}
-
-// Deprecated: no longer used, see controllers.GetRequest
-func RequestMiddleware[T any](role enums.Role) gin.HandlerFunc {
- return gin.HandlerFunc(func(c *gin.Context) {
-
- clientInfo, ok := ClientInfoFromContext(c)
-
- if !ok {
- c.Status(http.StatusUnauthorized)
- return
- }
-
- if clientInfo.Role < role {
- c.Status(http.StatusForbidden)
- return
- }
-
- var body T
- if err := c.ShouldBindJSON(&body); err != nil {
- c.String(http.StatusBadRequest, err.Error())
-
- return
- }
-
- validate := validation.NewValidator()
-
- if err := validate.Struct(body); err != nil {
- errorList := err.(validator.ValidationErrors)
- c.String(http.StatusBadRequest, fmt.Sprintf("Validation error: %s", errorList))
-
- return
- }
-
- request := dto.Request[T]{
- User: *clientInfo,
- Body: body,
- }
-
- c.Set(requestKey, request)
- c.Next()
- })
-}
diff --git a/backend/internal/routes/router.go b/backend/internal/routes/router.go
deleted file mode 100644
index e211a14..0000000
--- a/backend/internal/routes/router.go
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2025 Nikolai Papin
-//
-// This file is part of Easywish
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
-// the GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-package routes
-
-import (
- "easywish/internal/controllers"
- "easywish/internal/middleware"
- "easywish/internal/services"
-
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
-)
-
-// Deprecated: no longer used, see controllers
-func NewRouter(engine *gin.Engine, log *zap.Logger, auth services.AuthService, groups []RouteGroup) *gin.Engine {
- apiGroup := engine.Group("/api")
- apiGroup.Use(middleware.AuthMiddleware(log, auth))
- for _, group := range groups {
- subgroup := apiGroup.Group(group.BasePath)
- subgroup.Use(group.Middleware...)
- group.Router.RegisterRoutes(subgroup)
- }
- return engine
-}
-
-// Deprecated: no longer used, see controllers
-type RouteGroup struct {
- BasePath string
- Middleware []gin.HandlerFunc
- Router controllers.Router
-}
-
-// func NewRouteGroups(
-// authController controllers.AuthController,
-// serviceController controllers.ServiceController,
-// profileController controllers.ProfileController,
-// ) []RouteGroup {
-// return []RouteGroup{
-// {
-// BasePath: "/auth",
-// Router: authController,
-// },
-// {
-// BasePath: "/service",
-// Router: serviceController,
-// },
-// {
-// BasePath: "/profile",
-// Router: profileController,
-// },
-// }
-// }
diff --git a/backend/internal/routes/setup.go b/backend/internal/routes/setup.go
deleted file mode 100644
index 03a8c37..0000000
--- a/backend/internal/routes/setup.go
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) 2025 Nikolai Papin
-//
-// This file is part of Easywish
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
-// the GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-package routes
-
-import (
- "go.uber.org/fx"
-)
-
-// Deprecated: no longer used, see controllers
-var Module = fx.Module("routes",
- // fx.Provide(
- // NewRouteGroups,
- // ),
- // fx.Invoke(NewRouter),
-)
diff --git a/backend/internal/utils/request.go b/backend/internal/utils/request.go
deleted file mode 100644
index dcec554..0000000
--- a/backend/internal/utils/request.go
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) 2025 Nikolai Papin
-//
-// This file is part of Easywish
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
-// the GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-package utils
-
-import (
- "easywish/internal/dto"
- "github.com/gin-gonic/gin"
-)
-
-// Deprecated: use controllers.GetRequest method for the new controllers
-func GetRequest[T any](c *gin.Context) (*dto.Request[T], bool) {
-
- req, ok := c.Get("request")
- request := req.(dto.Request[T])
- if !ok {
- return nil, false
- }
-
- return &request, true
-}