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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"git.gocasts.ir/ebhomengo/niki/delivery/http_server/middleware"
 | 
			
		||||
	echo "github.com/labstack/echo/v4"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -10,4 +11,5 @@ func (h Handler) SetRoutes(e *echo.Echo) {
 | 
			
		|||
	// todo - add acl
 | 
			
		||||
	r.PATCH("/accept-kind-box-req/:id", h.Accept)
 | 
			
		||||
	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 (
 | 
			
		||||
	"context"
 | 
			
		||||
 | 
			
		||||
	"git.gocasts.ir/ebhomengo/niki/entity"
 | 
			
		||||
	"git.gocasts.ir/ebhomengo/niki/logger"
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
	RejectKindBoxReq(ctx context.Context, kindBoxReqID uint, description string) error
 | 
			
		||||
	RollbackKindBoxRequestStatus(ctx context.Context, id uint) error
 | 
			
		||||
	GetAllKindBoxReq(ctx context.Context) ([]entity.KindBoxReq, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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