forked from ebhomengo/niki
				
			Merge pull request 'feat(niki): add get all agents by admin' (#58) from stage/erfan/103-admin-get-all-agent into develop
Reviewed-on: ebhomengo/niki#58
This commit is contained in:
		
						commit
						ec81297f98
					
				| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					package adminhandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						httpmsg "git.gocasts.ir/ebhomengo/niki/pkg/http_msg"
 | 
				
			||||||
 | 
						"github.com/labstack/echo/v4"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetAllAgent godoc
 | 
				
			||||||
 | 
					// @Summary 	 Get all agents by admin
 | 
				
			||||||
 | 
					// @Tags         Admin
 | 
				
			||||||
 | 
					// @Accept       json
 | 
				
			||||||
 | 
					// @Produce      json
 | 
				
			||||||
 | 
					// @Success      200  {object}  adminserviceparam.GetAllAgentResponse
 | 
				
			||||||
 | 
					// @Failure      400  {string}  "Bad request"
 | 
				
			||||||
 | 
					// @Security 	 AuthBearerAdmin
 | 
				
			||||||
 | 
					// @Router       /admins/agents [get]
 | 
				
			||||||
 | 
					func (h Handler) GetAllAgent(c echo.Context) error {
 | 
				
			||||||
 | 
						resp, sErr := h.adminSvc.GetAllAgent(c.Request().Context())
 | 
				
			||||||
 | 
						if sErr != nil {
 | 
				
			||||||
 | 
							msg, code := httpmsg.Error(sErr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return echo.NewHTTPError(code, msg)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return c.JSON(http.StatusOK, resp)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -15,4 +15,5 @@ func (h Handler) SetRoutes(e *echo.Echo) {
 | 
				
			||||||
	r.POST("/login-by-phone", h.LoginByPhoneNumber)
 | 
						r.POST("/login-by-phone", h.LoginByPhoneNumber)
 | 
				
			||||||
	//nolint:gocritic
 | 
						//nolint:gocritic
 | 
				
			||||||
	//r.PATCH("/:id", h.Update).Name = "admin-updatekindboxreq"
 | 
						//r.PATCH("/:id", h.Update).Name = "admin-updatekindboxreq"
 | 
				
			||||||
 | 
						r.GET("/agents", h.GetAllAgent, middleware.Auth(h.authSvc, h.authConfig), middleware.AdminAuthorization(h.adminAuthorizeSvc, entity.AdminAdminGetAllAgentPermission))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										65
									
								
								docs/docs.go
								
								
								
								
							
							
						
						
									
										65
									
								
								docs/docs.go
								
								
								
								
							| 
						 | 
					@ -463,6 +463,39 @@ const docTemplate = `{
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "/admins/agents": {
 | 
				
			||||||
 | 
					            "get": {
 | 
				
			||||||
 | 
					                "security": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "AuthBearerAdmin": []
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "consumes": [
 | 
				
			||||||
 | 
					                    "application/json"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "produces": [
 | 
				
			||||||
 | 
					                    "application/json"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "tags": [
 | 
				
			||||||
 | 
					                    "Admin"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "summary": "Get all agents by admin",
 | 
				
			||||||
 | 
					                "responses": {
 | 
				
			||||||
 | 
					                    "200": {
 | 
				
			||||||
 | 
					                        "description": "OK",
 | 
				
			||||||
 | 
					                        "schema": {
 | 
				
			||||||
 | 
					                            "$ref": "#/definitions/adminserviceparam.GetAllAgentResponse"
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    "400": {
 | 
				
			||||||
 | 
					                        "description": "Bad request",
 | 
				
			||||||
 | 
					                        "schema": {
 | 
				
			||||||
 | 
					                            "type": "string"
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "/admins/login-by-phone": {
 | 
					        "/admins/login-by-phone": {
 | 
				
			||||||
            "post": {
 | 
					            "post": {
 | 
				
			||||||
                "consumes": [
 | 
					                "consumes": [
 | 
				
			||||||
| 
						 | 
					@ -1075,6 +1108,38 @@ const docTemplate = `{
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "adminserviceparam.Agent": {
 | 
				
			||||||
 | 
					            "type": "object",
 | 
				
			||||||
 | 
					            "properties": {
 | 
				
			||||||
 | 
					                "first_name": {
 | 
				
			||||||
 | 
					                    "type": "string",
 | 
				
			||||||
 | 
					                    "example": "John"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "id": {
 | 
				
			||||||
 | 
					                    "type": "integer",
 | 
				
			||||||
 | 
					                    "example": 1
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "last_name": {
 | 
				
			||||||
 | 
					                    "type": "string",
 | 
				
			||||||
 | 
					                    "example": "Doe"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "phone_number": {
 | 
				
			||||||
 | 
					                    "type": "string",
 | 
				
			||||||
 | 
					                    "example": "09123456789"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "adminserviceparam.GetAllAgentResponse": {
 | 
				
			||||||
 | 
					            "type": "object",
 | 
				
			||||||
 | 
					            "properties": {
 | 
				
			||||||
 | 
					                "agents": {
 | 
				
			||||||
 | 
					                    "type": "array",
 | 
				
			||||||
 | 
					                    "items": {
 | 
				
			||||||
 | 
					                        "$ref": "#/definitions/adminserviceparam.Agent"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "adminserviceparam.LoginWithPhoneNumberRequest": {
 | 
					        "adminserviceparam.LoginWithPhoneNumberRequest": {
 | 
				
			||||||
            "type": "object",
 | 
					            "type": "object",
 | 
				
			||||||
            "properties": {
 | 
					            "properties": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -452,6 +452,39 @@
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "/admins/agents": {
 | 
				
			||||||
 | 
					            "get": {
 | 
				
			||||||
 | 
					                "security": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "AuthBearerAdmin": []
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "consumes": [
 | 
				
			||||||
 | 
					                    "application/json"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "produces": [
 | 
				
			||||||
 | 
					                    "application/json"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "tags": [
 | 
				
			||||||
 | 
					                    "Admin"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "summary": "Get all agents by admin",
 | 
				
			||||||
 | 
					                "responses": {
 | 
				
			||||||
 | 
					                    "200": {
 | 
				
			||||||
 | 
					                        "description": "OK",
 | 
				
			||||||
 | 
					                        "schema": {
 | 
				
			||||||
 | 
					                            "$ref": "#/definitions/adminserviceparam.GetAllAgentResponse"
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    "400": {
 | 
				
			||||||
 | 
					                        "description": "Bad request",
 | 
				
			||||||
 | 
					                        "schema": {
 | 
				
			||||||
 | 
					                            "type": "string"
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "/admins/login-by-phone": {
 | 
					        "/admins/login-by-phone": {
 | 
				
			||||||
            "post": {
 | 
					            "post": {
 | 
				
			||||||
                "consumes": [
 | 
					                "consumes": [
 | 
				
			||||||
| 
						 | 
					@ -1064,6 +1097,38 @@
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "adminserviceparam.Agent": {
 | 
				
			||||||
 | 
					            "type": "object",
 | 
				
			||||||
 | 
					            "properties": {
 | 
				
			||||||
 | 
					                "first_name": {
 | 
				
			||||||
 | 
					                    "type": "string",
 | 
				
			||||||
 | 
					                    "example": "John"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "id": {
 | 
				
			||||||
 | 
					                    "type": "integer",
 | 
				
			||||||
 | 
					                    "example": 1
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "last_name": {
 | 
				
			||||||
 | 
					                    "type": "string",
 | 
				
			||||||
 | 
					                    "example": "Doe"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "phone_number": {
 | 
				
			||||||
 | 
					                    "type": "string",
 | 
				
			||||||
 | 
					                    "example": "09123456789"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "adminserviceparam.GetAllAgentResponse": {
 | 
				
			||||||
 | 
					            "type": "object",
 | 
				
			||||||
 | 
					            "properties": {
 | 
				
			||||||
 | 
					                "agents": {
 | 
				
			||||||
 | 
					                    "type": "array",
 | 
				
			||||||
 | 
					                    "items": {
 | 
				
			||||||
 | 
					                        "$ref": "#/definitions/adminserviceparam.Agent"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "adminserviceparam.LoginWithPhoneNumberRequest": {
 | 
					        "adminserviceparam.LoginWithPhoneNumberRequest": {
 | 
				
			||||||
            "type": "object",
 | 
					            "type": "object",
 | 
				
			||||||
            "properties": {
 | 
					            "properties": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,6 +157,28 @@ definitions:
 | 
				
			||||||
        - $ref: '#/definitions/entity.AdminStatus'
 | 
					        - $ref: '#/definitions/entity.AdminStatus'
 | 
				
			||||||
        example: 1
 | 
					        example: 1
 | 
				
			||||||
    type: object
 | 
					    type: object
 | 
				
			||||||
 | 
					  adminserviceparam.Agent:
 | 
				
			||||||
 | 
					    properties:
 | 
				
			||||||
 | 
					      first_name:
 | 
				
			||||||
 | 
					        example: John
 | 
				
			||||||
 | 
					        type: string
 | 
				
			||||||
 | 
					      id:
 | 
				
			||||||
 | 
					        example: 1
 | 
				
			||||||
 | 
					        type: integer
 | 
				
			||||||
 | 
					      last_name:
 | 
				
			||||||
 | 
					        example: Doe
 | 
				
			||||||
 | 
					        type: string
 | 
				
			||||||
 | 
					      phone_number:
 | 
				
			||||||
 | 
					        example: "09123456789"
 | 
				
			||||||
 | 
					        type: string
 | 
				
			||||||
 | 
					    type: object
 | 
				
			||||||
 | 
					  adminserviceparam.GetAllAgentResponse:
 | 
				
			||||||
 | 
					    properties:
 | 
				
			||||||
 | 
					      agents:
 | 
				
			||||||
 | 
					        items:
 | 
				
			||||||
 | 
					          $ref: '#/definitions/adminserviceparam.Agent'
 | 
				
			||||||
 | 
					        type: array
 | 
				
			||||||
 | 
					    type: object
 | 
				
			||||||
  adminserviceparam.LoginWithPhoneNumberRequest:
 | 
					  adminserviceparam.LoginWithPhoneNumberRequest:
 | 
				
			||||||
    properties:
 | 
					    properties:
 | 
				
			||||||
      password:
 | 
					      password:
 | 
				
			||||||
| 
						 | 
					@ -785,6 +807,26 @@ paths:
 | 
				
			||||||
      summary: Reject a kindboxreq by admin
 | 
					      summary: Reject a kindboxreq by admin
 | 
				
			||||||
      tags:
 | 
					      tags:
 | 
				
			||||||
      - KindBoxReq
 | 
					      - KindBoxReq
 | 
				
			||||||
 | 
					  /admins/agents:
 | 
				
			||||||
 | 
					    get:
 | 
				
			||||||
 | 
					      consumes:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      produces:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      responses:
 | 
				
			||||||
 | 
					        "200":
 | 
				
			||||||
 | 
					          description: OK
 | 
				
			||||||
 | 
					          schema:
 | 
				
			||||||
 | 
					            $ref: '#/definitions/adminserviceparam.GetAllAgentResponse'
 | 
				
			||||||
 | 
					        "400":
 | 
				
			||||||
 | 
					          description: Bad request
 | 
				
			||||||
 | 
					          schema:
 | 
				
			||||||
 | 
					            type: string
 | 
				
			||||||
 | 
					      security:
 | 
				
			||||||
 | 
					      - AuthBearerAdmin: []
 | 
				
			||||||
 | 
					      summary: Get all agents by admin
 | 
				
			||||||
 | 
					      tags:
 | 
				
			||||||
 | 
					      - Admin
 | 
				
			||||||
  /admins/login-by-phone:
 | 
					  /admins/login-by-phone:
 | 
				
			||||||
    post:
 | 
					    post:
 | 
				
			||||||
      consumes:
 | 
					      consumes:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,4 +9,5 @@ const (
 | 
				
			||||||
	AdminKindBoxReqGetAllPermission            = AdminPermission("kindboxreq-getall")
 | 
						AdminKindBoxReqGetAllPermission            = AdminPermission("kindboxreq-getall")
 | 
				
			||||||
	AdminKindBoxReqDeliverPermission           = AdminPermission("kindboxreq-deliver")
 | 
						AdminKindBoxReqDeliverPermission           = AdminPermission("kindboxreq-deliver")
 | 
				
			||||||
	AdminKindBoxReqAssignSenderAgentPermission = AdminPermission("kindboxreq-assign_sender_agent")
 | 
						AdminKindBoxReqAssignSenderAgentPermission = AdminPermission("kindboxreq-assign_sender_agent")
 | 
				
			||||||
 | 
						AdminAdminGetAllAgentPermission            = AdminPermission("admin-getall_agent")
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					package adminserviceparam
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type GetAllAgentResponse struct {
 | 
				
			||||||
 | 
						Agents []Agent `json:"agents"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Agent struct {
 | 
				
			||||||
 | 
						ID          uint   `json:"id" example:"1"`
 | 
				
			||||||
 | 
						FirstName   string `json:"first_name" example:"John"`
 | 
				
			||||||
 | 
						LastName    string `json:"last_name" example:"Doe"`
 | 
				
			||||||
 | 
						PhoneNumber string `json:"phone_number" example:"09123456789"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,41 @@
 | 
				
			||||||
 | 
					package mysqladmin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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) GetAllAgent(ctx context.Context) ([]entity.Admin, error) {
 | 
				
			||||||
 | 
						const op = "mysqladmin.GetAllAgent"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						agents := make([]entity.Admin, 0)
 | 
				
			||||||
 | 
						query := `SELECT id, first_name, last_name, phone_number FROM admins WHERE role = 'agent' AND status = 'active'`
 | 
				
			||||||
 | 
						rows, err := d.conn.Conn().QueryContext(ctx, query)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return nil, richerror.New(op).WithErr(err).WithMessage(errmsg.ErrorMsgSomethingWentWrong).WithKind(richerror.KindUnexpected)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer rows.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for rows.Next() {
 | 
				
			||||||
 | 
							var agent entity.Admin
 | 
				
			||||||
 | 
							sErr := rows.Scan(&agent.ID, &agent.FirstName, &agent.LastName, &agent.PhoneNumber)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								return nil, richerror.New(op).WithErr(sErr).
 | 
				
			||||||
 | 
									WithMessage(errmsg.ErrorMsgCantScanQueryResult).WithKind(richerror.KindUnexpected)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							agents = append(agents, agent)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if rErr := rows.Err(); rErr != nil {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return nil, richerror.New(op).WithErr(rErr).
 | 
				
			||||||
 | 
								WithMessage(errmsg.ErrorMsgSomethingWentWrong).WithKind(richerror.KindUnexpected)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return agents, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,8 @@ ALTER TABLE `admin_access_controls` MODIFY COLUMN `permission`
 | 
				
			||||||
        'kindboxreq-reject',
 | 
					        'kindboxreq-reject',
 | 
				
			||||||
        'kindboxreq-getall',
 | 
					        'kindboxreq-getall',
 | 
				
			||||||
        'kindboxreq-deliver',
 | 
					        'kindboxreq-deliver',
 | 
				
			||||||
        'kindboxreq-assign_sender_agent'
 | 
					        'kindboxreq-assign_sender_agent',
 | 
				
			||||||
 | 
					        'admin-getall_agent'
 | 
				
			||||||
    ) NOT NULL;
 | 
					    ) NOT NULL;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
-- +migrate Down
 | 
					-- +migrate Down
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,9 @@ INSERT INTO `admin_access_controls` (`id`, `actor_id`, `actor_type`,`permission`
 | 
				
			||||||
        (9, 2 , 'role','kindboxreq-reject'),
 | 
					        (9, 2 , 'role','kindboxreq-reject'),
 | 
				
			||||||
        (10, 2 , 'role','kindboxreq-getall'),
 | 
					        (10, 2 , 'role','kindboxreq-getall'),
 | 
				
			||||||
        (11, 2 , 'role','kindboxreq-deliver'),
 | 
					        (11, 2 , 'role','kindboxreq-deliver'),
 | 
				
			||||||
        (12, 2 , 'role','kindboxreq-assign_sender_agent');
 | 
					        (12, 2 , 'role','kindboxreq-assign_sender_agent'),
 | 
				
			||||||
 | 
					        (13, 1, 'role', 'admin-getall_agent'),
 | 
				
			||||||
 | 
					        (13, 2, 'role', 'admin-getall_agent');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- +migrate Down
 | 
					-- +migrate Down
 | 
				
			||||||
DELETE
 | 
					DELETE
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,31 @@
 | 
				
			||||||
 | 
					package adminservice
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"context"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						param "git.gocasts.ir/ebhomengo/niki/param/admin/admin"
 | 
				
			||||||
 | 
						richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (s Service) GetAllAgent(ctx context.Context) (param.GetAllAgentResponse, error) {
 | 
				
			||||||
 | 
						const op = "adminservice.GetAllAgent"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						agentsInfo := make([]param.Agent, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						agents, err := s.repo.GetAllAgent(ctx)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return param.GetAllAgentResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, agent := range agents {
 | 
				
			||||||
 | 
							agentsInfo = append(agentsInfo, param.Agent{
 | 
				
			||||||
 | 
								ID:          agent.ID,
 | 
				
			||||||
 | 
								FirstName:   agent.FirstName,
 | 
				
			||||||
 | 
								LastName:    agent.LastName,
 | 
				
			||||||
 | 
								PhoneNumber: agent.PhoneNumber,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return param.GetAllAgentResponse{Agents: agentsInfo}, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@ type Repository interface {
 | 
				
			||||||
	AddAdmin(ctx context.Context, admin entity.Admin) (entity.Admin, error)
 | 
						AddAdmin(ctx context.Context, admin entity.Admin) (entity.Admin, error)
 | 
				
			||||||
	GetAdminByPhoneNumber(ctx context.Context, phoneNumber string) (entity.Admin, error)
 | 
						GetAdminByPhoneNumber(ctx context.Context, phoneNumber string) (entity.Admin, error)
 | 
				
			||||||
	GetAdminByID(ctx context.Context, adminID uint) (entity.Admin, error)
 | 
						GetAdminByID(ctx context.Context, adminID uint) (entity.Admin, error)
 | 
				
			||||||
 | 
						GetAllAgent(ctx context.Context) ([]entity.Admin, error)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Service struct {
 | 
					type Service struct {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue