forked from ebhomengo/niki
✨feat(service): add get all kindboxreq by admin (#26)
Reviewed-on: ebhomengo/niki#26 Reviewed-by: hossein <h.nazari1990@gmail.com> Co-authored-by: masoodk <keshvari.developer@gmail.com> Co-committed-by: masoodk <keshvari.developer@gmail.com>
This commit is contained in:
parent
0aba9e6cbb
commit
3b3815ccec
|
@ -1 +1,25 @@
|
||||||
package adminkindboxreqhandler
|
package adminkindboxreqhandler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box_req"
|
||||||
|
httpmsg "git.gocasts.ir/ebhomengo/niki/pkg/http_msg"
|
||||||
|
echo "github.com/labstack/echo/v4"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (h Handler) GetAll(c echo.Context) error {
|
||||||
|
var req param.KindBoxReqGetAllRequest
|
||||||
|
if bErr := c.Bind(&req); bErr != nil {
|
||||||
|
return echo.NewHTTPError(http.StatusBadRequest)
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, sErr := h.adminKindBoxReqSvc.GetAll(c.Request().Context(), req)
|
||||||
|
if sErr != nil {
|
||||||
|
msg, code := httpmsg.Error(sErr)
|
||||||
|
|
||||||
|
return echo.NewHTTPError(code, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.JSON(http.StatusCreated, resp)
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package adminkindboxreqhandler
|
package adminkindboxreqhandler
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.gocasts.ir/ebhomengo/niki/delivery/http_server/middleware"
|
||||||
echo "github.com/labstack/echo/v4"
|
echo "github.com/labstack/echo/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -10,4 +11,5 @@ func (h Handler) SetRoutes(e *echo.Echo) {
|
||||||
// todo - add acl
|
// todo - add acl
|
||||||
r.PATCH("/accept-kind-box-req/:id", h.Accept)
|
r.PATCH("/accept-kind-box-req/:id", h.Accept)
|
||||||
r.PATCH("/reject-kind-box-req/:id", h.Reject)
|
r.PATCH("/reject-kind-box-req/:id", h.Reject)
|
||||||
|
r.GET("/", h.GetAll, middleware.Auth(h.authSvc, h.authConfig))
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package mysqlkindbox
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"git.gocasts.ir/ebhomengo/niki/entity"
|
"git.gocasts.ir/ebhomengo/niki/entity"
|
||||||
"git.gocasts.ir/ebhomengo/niki/logger"
|
"git.gocasts.ir/ebhomengo/niki/logger"
|
||||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package mysqlkindboxreq
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"git.gocasts.ir/ebhomengo/niki/entity"
|
||||||
|
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||||
|
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (d DB) GetAllKindBoxReq(ctx context.Context) ([]entity.KindBoxReq, error) {
|
||||||
|
const op = "mysqlkindboxreq.GetAllKindBoxReq"
|
||||||
|
|
||||||
|
// TODO - add sort and filter
|
||||||
|
rows, err := d.conn.Conn().QueryContext(ctx, "select * from kind_box_reqs")
|
||||||
|
if err != nil {
|
||||||
|
return nil,
|
||||||
|
richerror.New(op).WithMessage(errmsg.ErrorMsgSomethingWentWrong).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||||
|
}
|
||||||
|
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
// An album slice to hold data from returned rows.
|
||||||
|
var kindBoxReqs []entity.KindBoxReq
|
||||||
|
|
||||||
|
// Loop through rows, using Scan to assign column data to struct fields.
|
||||||
|
for rows.Next() {
|
||||||
|
kindBoxReq, sErr := scanKindBoxReq(rows)
|
||||||
|
if sErr != nil {
|
||||||
|
return nil, richerror.New(op).WithErr(sErr).
|
||||||
|
WithMessage(errmsg.ErrorMsgCantScanQueryResult).WithKind(richerror.KindUnexpected)
|
||||||
|
}
|
||||||
|
kindBoxReqs = append(kindBoxReqs, kindBoxReq)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rErr := rows.Err(); rErr != nil {
|
||||||
|
return nil, richerror.New(op).WithErr(rErr).
|
||||||
|
WithMessage(errmsg.ErrorMsgSomethingWentWrong).WithKind(richerror.KindUnexpected)
|
||||||
|
}
|
||||||
|
|
||||||
|
return kindBoxReqs, nil
|
||||||
|
}
|
|
@ -1 +1,20 @@
|
||||||
package adminkindboxreqservice
|
package adminkindboxreqservice
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box_req"
|
||||||
|
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TODO: Pagination, Filters, Sort.
|
||||||
|
func (s Service) GetAll(ctx context.Context, _ param.KindBoxReqGetAllRequest) (param.KindBoxReqGetAllResponse, error) {
|
||||||
|
const op = "adminkindboxreqservice.GetAll"
|
||||||
|
|
||||||
|
allKindBoxReq, err := s.repo.GetAllKindBoxReq(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return param.KindBoxReqGetAllResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||||
|
}
|
||||||
|
|
||||||
|
return param.KindBoxReqGetAllResponse{AllKindBoxReq: allKindBoxReq}, nil
|
||||||
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ type Repository interface {
|
||||||
GetByID(ctx context.Context, id uint) (entity.KindBoxReq, error)
|
GetByID(ctx context.Context, id uint) (entity.KindBoxReq, error)
|
||||||
RejectKindBoxReq(ctx context.Context, kindBoxReqID uint, description string) error
|
RejectKindBoxReq(ctx context.Context, kindBoxReqID uint, description string) error
|
||||||
RollbackKindBoxRequestStatus(ctx context.Context, id uint) error
|
RollbackKindBoxRequestStatus(ctx context.Context, id uint) error
|
||||||
|
GetAllKindBoxReq(ctx context.Context) ([]entity.KindBoxReq, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type KindBoxClient interface {
|
type KindBoxClient interface {
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package adminkindboxreqvalidator
|
||||||
|
|
||||||
|
func (v Validator) ValidateGetAllRequest() (map[string]string, error) {
|
||||||
|
return map[string]string{}, nil
|
||||||
|
}
|
Loading…
Reference in New Issue