47 lines
909 B
Go
47 lines
909 B
Go
package controllers
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"studioj/boilerplate_go/internal/services"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type UserController interface {
|
|
Find(*gin.Context)
|
|
}
|
|
|
|
type userController struct {
|
|
service services.UserService
|
|
tokenService services.TokenService
|
|
}
|
|
|
|
func NewUserController(service services.UserService, tokenService services.TokenService) UserController {
|
|
return &userController{
|
|
service: service,
|
|
tokenService: tokenService,
|
|
}
|
|
}
|
|
|
|
func (controller *userController) Find(c *gin.Context) {
|
|
id := c.Param("id")
|
|
user_id := c.GetString("sub")
|
|
fmt.Println("id", id)
|
|
fmt.Println("user_id", user_id)
|
|
|
|
if user_id != id {
|
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Wrong user"})
|
|
return
|
|
}
|
|
|
|
result, err := controller.service.FindByID(id)
|
|
if err != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, result)
|
|
}
|