You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
615 B

package subscription
import (
"context"
"practice_Go/api/subscription/v1"
"practice_Go/internal/dao"
"practice_Go/internal/model/dto"
)
func (c *ControllerV1) DeleteSubscription(ctx context.Context, req *v1.DeleteSubscriptionReq) (*dto.Result, error) {
res := &v1.DeleteSubscriptionRes{}
_, err := dao.GoChannelSubscriptions.Ctx(ctx).Wheref("channel_id =? and user_id =?", req.Id, req.UserId).Delete()
_, err = dao.GoChannels.Ctx(ctx).Where("id",req.Id).Decrement("subscription_count",1)
if err != nil {
return dto.Error(err.Error()), nil
}
res.Success = true
return dto.SuccessWithData(res), nil
}