api/httpserver/ytrssil/users.go

34 lines
743 B
Go
Raw Normal View History

2022-10-27 04:04:49 +02:00
package ytrssil
import (
2022-10-29 05:09:52 +02:00
"errors"
2022-10-27 04:04:49 +02:00
"net/http"
"github.com/gin-gonic/gin"
2022-10-29 05:09:52 +02:00
"gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil-api/db"
"gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil-api/models"
2022-10-27 04:04:49 +02:00
)
func (s *server) CreateUser(c *gin.Context) {
var user models.User
2022-10-30 01:08:07 +02:00
err := c.ShouldBindJSON(&user)
2022-10-27 04:04:49 +02:00
if err != nil {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
err = s.handler.CreateUser(c.Request.Context(), user)
if err != nil {
2022-10-30 01:08:07 +02:00
if errors.Is(err, db.ErrUserExists) {
c.AbortWithStatusJSON(http.StatusConflict, gin.H{"error": err.Error()})
2022-10-29 05:09:52 +02:00
return
}
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
2022-10-30 01:08:07 +02:00
c.JSON(http.StatusOK, gin.H{"msg": "user created"})
2022-10-29 05:09:52 +02:00
}