moved to flat json handling

This commit is contained in:
Alex
2025-03-15 00:14:21 +01:00
parent 9a9af9f002
commit b81804439e

View File

@@ -20,13 +20,7 @@ type MembershipController struct {
UserService services.UserServiceInterface
}
type MembershipData struct {
// APIKey string `json:"api_key"`
Subscription models.SubscriptionModel `json:"subscription"`
}
func (mc *MembershipController) RegisterSubscription(c *gin.Context) {
var regData MembershipData
requestUser, err := mc.UserService.FromContext(c)
if err != nil {
@@ -39,13 +33,14 @@ func (mc *MembershipController) RegisterSubscription(c *gin.Context) {
return
}
if err := c.ShouldBindJSON(&regData); err != nil {
var subscription models.SubscriptionModel
if err := c.ShouldBindJSON(&subscription); err != nil {
utils.HandleValidationError(c, err)
return
}
// Register Subscription
id, err := mc.Service.RegisterSubscription(&regData.Subscription)
id, err := mc.Service.RegisterSubscription(&subscription)
if err != nil {
if strings.Contains(err.Error(), "UNIQUE constraint failed") {
utils.RespondWithError(c, err, "Subscription already exists", http.StatusConflict, errors.Responses.Fields.SubscriptionModel, errors.Responses.Keys.Duplicate)
@@ -54,7 +49,7 @@ func (mc *MembershipController) RegisterSubscription(c *gin.Context) {
}
return
}
logger.Info.Printf("registering subscription: %+v", regData)
logger.Info.Printf("registering subscription: %+v", subscription)
c.JSON(http.StatusCreated, gin.H{
"status": "success",
"id": id,
@@ -62,7 +57,6 @@ func (mc *MembershipController) RegisterSubscription(c *gin.Context) {
}
func (mc *MembershipController) UpdateHandler(c *gin.Context) {
var regData MembershipData
requestUser, err := mc.UserService.FromContext(c)
if err != nil {
@@ -75,19 +69,19 @@ func (mc *MembershipController) UpdateHandler(c *gin.Context) {
return
}
if err := c.ShouldBindJSON(&regData); err != nil {
var subscription models.SubscriptionModel
if err := c.ShouldBindJSON(&subscription); err != nil {
utils.HandleValidationError(c, err)
return
}
// update Subscription
logger.Info.Printf("Updating subscription %v", regData.Subscription.Name)
id, err := mc.Service.UpdateSubscription(&regData.Subscription)
logger.Info.Printf("Updating subscription %v", subscription.Name)
id, err := mc.Service.UpdateSubscription(&subscription)
if err != nil {
utils.HandleSubscriptionUpdateError(c, err)
return
}
logger.Info.Printf("updating subscription: %+v", regData)
c.JSON(http.StatusAccepted, gin.H{
"status": "success",
"id": id,
@@ -96,13 +90,11 @@ func (mc *MembershipController) UpdateHandler(c *gin.Context) {
func (mc *MembershipController) DeleteSubscription(c *gin.Context) {
type deleteData struct {
Subscription struct {
ID uint `json:"id"`
Name string `json:"name"`
} `json:"subscription"`
ID uint `json:"id" binding:"required,numeric,safe_content"`
Name string `json:"name" binding:"required,safe_content"`
}
var data deleteData
var subscription deleteData
requestUser, err := mc.UserService.FromContext(c)
if err != nil {
utils.RespondWithError(c, err, "Error extracting user from context in subscription deleteSubscription", http.StatusBadRequest, errors.Responses.Fields.User, errors.Responses.Keys.NoAuthToken)
@@ -114,12 +106,12 @@ func (mc *MembershipController) DeleteSubscription(c *gin.Context) {
return
}
if err := c.ShouldBindJSON(&data); err != nil {
if err := c.ShouldBindJSON(&subscription); err != nil {
utils.HandleValidationError(c, err)
return
}
if err := mc.Service.DeleteSubscription(&data.Subscription.ID, &data.Subscription.Name); err != nil {
if err := mc.Service.DeleteSubscription(&subscription.ID, &subscription.Name); err != nil {
utils.HandleSubscriptionDeleteError(c, err)
return
}