package logshttp import ( authmiddleware "legalgo-BE-go/internal/api/http/middleware/auth" logsdomain "legalgo-BE-go/internal/domain/logs" logssvc "legalgo-BE-go/internal/services/logs" usersvc "legalgo-BE-go/internal/services/user" "legalgo-BE-go/internal/utilities/response" "legalgo-BE-go/internal/utilities/utils" "net/http" "github.com/go-chi/chi/v5" ) func CreateLogAds( router chi.Router, userSvc usersvc.User, logsSvc logssvc.Log, ) { router.With(authmiddleware.Authorize()).Post("/logs/ads", func(w http.ResponseWriter, r *http.Request) { ctx := r.Context() userDetail, err := utils.GetTokenDetail(r) if err != nil { response.RespondJsonErrorWithCode( ctx, w, err, response.ErrUnauthorized.Code, response.ErrUnauthorized.HttpCode, "unauthorized", ) return } var spec logsdomain.LogsRequest if err := utils.UnmarshalBody(r, &spec); err != nil { response.RespondJsonErrorWithCode( ctx, w, err, response.ErrBadRequest.Code, response.ErrBadRequest.HttpCode, "failed unmarshal body", ) return } if err := logsSvc.CreateLogAds(spec.AdsID, userDetail.ID); err != nil { response.RespondJsonErrorWithCode( ctx, w, err, response.ErrBadRequest.Code, response.ErrBadRequest.HttpCode, err.Error(), ) return } response.RespondJsonSuccess(ctx, w, struct { Message string }{ Message: "logs ads recorded successfully", }) }) }