mirror of
https://github.com/hay-kot/homebox.git
synced 2025-08-05 17:10:30 +00:00
remove old partial
This commit is contained in:
parent
bd06d8fb96
commit
e78bbd8027
3 changed files with 19 additions and 40 deletions
|
@ -5,34 +5,10 @@ import (
|
||||||
|
|
||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/hay-kot/homebox/backend/internal/repo"
|
|
||||||
"github.com/hay-kot/homebox/backend/internal/services"
|
|
||||||
"github.com/hay-kot/homebox/backend/pkgs/server"
|
"github.com/hay-kot/homebox/backend/pkgs/server"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
|
||||||
This is where we put partial snippets/functions for actions that are commonly
|
|
||||||
used within the controller class. This _hopefully_ helps with code duplication
|
|
||||||
and makes it a little more consistent when error handling and logging.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// partialParseIdAndUser parses the ID from the requests URL and pulls the user
|
|
||||||
// from the context. If either of these fail, it will return an error. When an error
|
|
||||||
// occurs it will also write the error to the response. As such, if an error is returned
|
|
||||||
// from this function you can return immediately without writing to the response.
|
|
||||||
func (ctrl *V1Controller) partialParseIdAndUser(w http.ResponseWriter, r *http.Request) (uuid.UUID, *repo.UserOut, error) {
|
|
||||||
uid, err := uuid.Parse(chi.URLParam(r, "id"))
|
|
||||||
if err != nil {
|
|
||||||
log.Err(err).Msg("failed to parse id")
|
|
||||||
server.RespondError(w, http.StatusBadRequest, err)
|
|
||||||
return uuid.Nil, &repo.UserOut{}, err
|
|
||||||
}
|
|
||||||
|
|
||||||
user := services.UseUserCtx(r.Context())
|
|
||||||
return uid, user, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ctrl *V1Controller) partialRouteID(w http.ResponseWriter, r *http.Request) (uuid.UUID, error) {
|
func (ctrl *V1Controller) partialRouteID(w http.ResponseWriter, r *http.Request) (uuid.UUID, error) {
|
||||||
ID, err := uuid.Parse(chi.URLParam(r, "id"))
|
ID, err := uuid.Parse(chi.URLParam(r, "id"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -72,7 +72,7 @@ func (ctrl *V1Controller) HandleItemAttachmentCreate() http.HandlerFunc {
|
||||||
attachmentType = attachment.TypeAttachment.String()
|
attachmentType = attachment.TypeAttachment.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
id, _, err := ctrl.partialParseIdAndUser(w, r)
|
id, err := ctrl.partialRouteID(w, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ func (ctrl *V1Controller) HandleItemAttachmentUpdate() http.HandlerFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r *http.Request) {
|
func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
uid, user, err := ctrl.partialParseIdAndUser(w, r)
|
ID, err := ctrl.partialRouteID(w, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -181,7 +181,7 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r
|
||||||
|
|
||||||
// Token Handler
|
// Token Handler
|
||||||
case http.MethodGet:
|
case http.MethodGet:
|
||||||
token, err := ctrl.svc.Items.AttachmentToken(ctx, uid, attachmentId)
|
token, err := ctrl.svc.Items.AttachmentToken(ctx, ID, attachmentId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch err {
|
switch err {
|
||||||
case services.ErrNotFound:
|
case services.ErrNotFound:
|
||||||
|
@ -210,7 +210,7 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r
|
||||||
|
|
||||||
// Delete Attachment Handler
|
// Delete Attachment Handler
|
||||||
case http.MethodDelete:
|
case http.MethodDelete:
|
||||||
err = ctrl.svc.Items.AttachmentDelete(r.Context(), user.GroupID, uid, attachmentId)
|
err = ctrl.svc.Items.AttachmentDelete(r.Context(), ctx.GID, ID, attachmentId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Err(err).Msg("failed to delete attachment")
|
log.Err(err).Msg("failed to delete attachment")
|
||||||
server.RespondServerError(w)
|
server.RespondServerError(w)
|
||||||
|
@ -230,7 +230,7 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r
|
||||||
}
|
}
|
||||||
|
|
||||||
attachment.ID = attachmentId
|
attachment.ID = attachmentId
|
||||||
val, err := ctrl.svc.Items.AttachmentUpdate(ctx, uid, &attachment)
|
val, err := ctrl.svc.Items.AttachmentUpdate(ctx, ID, &attachment)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Err(err).Msg("failed to delete attachment")
|
log.Err(err).Msg("failed to delete attachment")
|
||||||
server.RespondServerError(w)
|
server.RespondServerError(w)
|
||||||
|
|
|
@ -70,12 +70,13 @@ func (ctrl *V1Controller) HandleLocationCreate() http.HandlerFunc {
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
func (ctrl *V1Controller) HandleLocationDelete() http.HandlerFunc {
|
func (ctrl *V1Controller) HandleLocationDelete() http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
uid, user, err := ctrl.partialParseIdAndUser(w, r)
|
ctx := services.NewContext(r.Context())
|
||||||
|
ID, err := ctrl.partialRouteID(w, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ctrl.svc.Location.Delete(r.Context(), user.GroupID, uid)
|
err = ctrl.svc.Location.Delete(r.Context(), ctx.GID, ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Err(err).Msg("failed to delete location")
|
log.Err(err).Msg("failed to delete location")
|
||||||
server.RespondServerError(w)
|
server.RespondServerError(w)
|
||||||
|
@ -95,25 +96,26 @@ func (ctrl *V1Controller) HandleLocationDelete() http.HandlerFunc {
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
func (ctrl *V1Controller) HandleLocationGet() http.HandlerFunc {
|
func (ctrl *V1Controller) HandleLocationGet() http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
uid, user, err := ctrl.partialParseIdAndUser(w, r)
|
ctx := services.NewContext(r.Context())
|
||||||
|
ID, err := ctrl.partialRouteID(w, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
location, err := ctrl.svc.Location.GetOne(r.Context(), user.GroupID, uid)
|
location, err := ctrl.svc.Location.GetOne(r.Context(), ctx.GID, ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if ent.IsNotFound(err) {
|
if ent.IsNotFound(err) {
|
||||||
log.Err(err).
|
log.Err(err).
|
||||||
Str("id", uid.String()).
|
Str("id", ID.String()).
|
||||||
Str("gid", user.GroupID.String()).
|
Str("gid", ctx.GID.String()).
|
||||||
Msg("location not found")
|
Msg("location not found")
|
||||||
server.RespondError(w, http.StatusNotFound, err)
|
server.RespondError(w, http.StatusNotFound, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Err(err).
|
log.Err(err).
|
||||||
Str("id", uid.String()).
|
Str("id", ID.String()).
|
||||||
Str("gid", user.GroupID.String()).
|
Str("gid", ctx.GID.String()).
|
||||||
Msg("failed to get location")
|
Msg("failed to get location")
|
||||||
server.RespondServerError(w)
|
server.RespondServerError(w)
|
||||||
return
|
return
|
||||||
|
@ -139,14 +141,15 @@ func (ctrl *V1Controller) HandleLocationUpdate() http.HandlerFunc {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
uid, user, err := ctrl.partialParseIdAndUser(w, r)
|
ctx := services.NewContext(r.Context())
|
||||||
|
ID, err := ctrl.partialRouteID(w, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
body.ID = uid
|
body.ID = ID
|
||||||
|
|
||||||
result, err := ctrl.svc.Location.Update(r.Context(), user.GroupID, body)
|
result, err := ctrl.svc.Location.Update(r.Context(), ctx.GID, body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Err(err).Msg("failed to update location")
|
log.Err(err).Msg("failed to update location")
|
||||||
server.RespondServerError(w)
|
server.RespondServerError(w)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue