be add edit delete user group
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +1,6 @@
|
||||
tmp
|
||||
bin
|
||||
config.yaml
|
||||
restapi.rest
|
||||
restapi.rest
|
||||
cpone.db
|
||||
coba.Http
|
||||
|
||||
@@ -31,6 +31,9 @@ type MasterMenuUserGroupService interface {
|
||||
// try
|
||||
GetListMasterUserGroup() ([]models.UserGroupV1, error)
|
||||
GetListBreadCrumb(title string) (models.BreadCrumbV1, error)
|
||||
AddUserGroup(code string, name string) (models.UserGroupV1, error)
|
||||
EditUserGroup(id string, code string, name string) (models.UserGroupV1, error)
|
||||
DeleteUserGroup(id string) (models.UserGroupV1, error)
|
||||
}
|
||||
|
||||
func NewMasterMenuUserGroupHandler(us MasterMenuUserGroupService) *MasterMenuUserGroupHandler {
|
||||
@@ -285,3 +288,91 @@ func (lh *MasterMenuUserGroupHandler) HandlerShowBreadCrumbV1(c echo.Context) er
|
||||
|
||||
return lh.View(c, si)
|
||||
}
|
||||
func (lh *MasterMenuUserGroupHandler) AddUserGroup(c echo.Context) error {
|
||||
data := utils.GetJSONRawBody(c)
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
|
||||
dataUserGroup, err := lh.MasterMenuUserGroupService.AddUserGroup(data["code"].(string), data["name"].(string))
|
||||
|
||||
if err != nil {
|
||||
logger.Info("Error",
|
||||
zap.Any("Error", err),
|
||||
zap.Any("prm", data),
|
||||
)
|
||||
return err
|
||||
}
|
||||
logger.Info("ADD USER GROUP",
|
||||
zap.Any("return", dataUserGroup),
|
||||
zap.Any("prm", data),
|
||||
)
|
||||
dataUserGroupvw, err := lh.MasterMenuUserGroupService.GetUserGroupByID("1")
|
||||
fmt.Println(dataUserGroup)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataUserGroup)
|
||||
return err
|
||||
}
|
||||
vw := mastermenuusergroup.DialogEditForm(dataUserGroupvw.UserGroupKode, dataUserGroupvw.UserGroupName)
|
||||
|
||||
return lh.View(c, vw)
|
||||
}
|
||||
func (lh *MasterMenuUserGroupHandler) EditUserGroup(c echo.Context) error {
|
||||
data := utils.GetJSONRawBody(c)
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
|
||||
dataUserGroup, err := lh.MasterMenuUserGroupService.EditUserGroup(data["id"].(string), data["code"].(string), data["name"].(string))
|
||||
|
||||
if err != nil {
|
||||
logger.Info("Error",
|
||||
zap.Any("Error", err),
|
||||
zap.Any("prm", data),
|
||||
)
|
||||
return err
|
||||
}
|
||||
logger.Info("Edit USER GROUP handler",
|
||||
zap.Any("return", dataUserGroup),
|
||||
zap.Any("prm", data),
|
||||
)
|
||||
dataUserGroupvw, err := lh.MasterMenuUserGroupService.GetUserGroupByID("1")
|
||||
fmt.Println(dataUserGroup)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataUserGroup)
|
||||
return err
|
||||
}
|
||||
vw := mastermenuusergroup.DialogEditForm(dataUserGroupvw.UserGroupKode, dataUserGroupvw.UserGroupName)
|
||||
|
||||
return lh.View(c, vw)
|
||||
}
|
||||
func (lh *MasterMenuUserGroupHandler) DeleteUserGroup(c echo.Context) error {
|
||||
|
||||
id := c.Param("id")
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
|
||||
dataUserGroup, err := lh.MasterMenuUserGroupService.DeleteUserGroup(id)
|
||||
|
||||
if err != nil {
|
||||
logger.Info("Error",
|
||||
zap.Any("Error", err),
|
||||
zap.Any("prm", id),
|
||||
)
|
||||
return err
|
||||
}
|
||||
logger.Info("DELETE USER GROUP handler",
|
||||
zap.Any("return", dataUserGroup),
|
||||
zap.Any("prm", id),
|
||||
)
|
||||
dataUserGroupvw, err := lh.MasterMenuUserGroupService.GetUserGroupByID("1")
|
||||
fmt.Println(dataUserGroup)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataUserGroup)
|
||||
return err
|
||||
}
|
||||
vw := mastermenuusergroup.DialogEditForm(dataUserGroupvw.UserGroupKode, dataUserGroupvw.UserGroupName)
|
||||
|
||||
return lh.View(c, vw)
|
||||
}
|
||||
|
||||
@@ -189,6 +189,9 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
|
||||
devUGhandlers := dev_handlers.NewMasterMenuUserGroupHandler(devUGServices)
|
||||
dev.GET("/usergroup", devUGhandlers.HandlerShowMasterMenuUserGroup)
|
||||
dev.GET("/usergroup/pagination", devUGhandlers.HandleChangePage)
|
||||
dev.POST("/usergroup/add", devUGhandlers.AddUserGroup)
|
||||
dev.POST("/usergroup/edit", devUGhandlers.EditUserGroup)
|
||||
dev.GET("/usergroup/delete/:id", devUGhandlers.DeleteUserGroup)
|
||||
|
||||
// try
|
||||
dev.GET("/usergroupv1", devUGhandlers.HandlerShowMasterMenuUserGroupV1)
|
||||
|
||||
@@ -6,7 +6,10 @@ import (
|
||||
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
|
||||
dbx "cpone/package/database"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func NewServicesMasterMenuUserGroup(uStore db.AppStore) *ServicesMasterMenuUserGroup {
|
||||
@@ -685,3 +688,127 @@ func (su *ServicesMasterMenuUserGroup) GetListMasterUserGroupBySearch(search *st
|
||||
|
||||
return userGroupList, nil
|
||||
}
|
||||
func (ug *ServicesMasterMenuUserGroup) GetUserGroupByIDV1(id string) (models.UserGroupV1, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
var data models.UserGroupV1
|
||||
err := dbx.Handlex.Get(&data, `SELECT * FROM m_usergroup
|
||||
WHERE M_UserGroupID = ?`, id)
|
||||
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get data ug by id vs",
|
||||
zap.String("ID", id),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
func (ug *ServicesMasterMenuUserGroup) AddUserGroup(code string, name string) (models.UserGroupV1, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var data models.UserGroupV1
|
||||
var datacek []models.UserGroupV1
|
||||
|
||||
qryCek := `SELECT M_UserGroupCode FROM m_usergroup WHERE M_UserGroupCode = ? AND M_UserGroupIsActive = 'Y'`
|
||||
err := dbx.Handlex.Select(&datacek, qryCek, code)
|
||||
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error cek data by code",
|
||||
zap.String("code", code),
|
||||
zap.Any("datacek", datacek),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
if len(datacek) > 0 {
|
||||
defer logger.Sync()
|
||||
logger.Error("Code already taken by another data",
|
||||
zap.String("code", code),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
qry := `INSERT INTO m_usergroup
|
||||
(M_UserGroupCode,
|
||||
M_UserGroupName)
|
||||
VALUES (?,?);`
|
||||
// time.Sleep(5 * time.Second)
|
||||
rst := dbx.Handlex.MustExec(qry, code, name)
|
||||
insertedID, err := rst.LastInsertId()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error Insert usergroup",
|
||||
zap.String("code", code),
|
||||
zap.String("name", name),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
s := strconv.Itoa(int(insertedID))
|
||||
data, err = ug.GetUserGroupByIDV1(s)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get usergroup by id",
|
||||
zap.String("code", code),
|
||||
zap.String("name", name),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
func (ug *ServicesMasterMenuUserGroup) EditUserGroup(id string, code string, name string) (models.UserGroupV1, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var data models.UserGroupV1
|
||||
qry := `UPDATE m_usergroup
|
||||
SET M_UserGroupCode = ?,
|
||||
M_UserGroupName= ?
|
||||
WHERE M_UserGroupID = ?;`
|
||||
// time.Sleep(5 * time.Second)
|
||||
rst := dbx.Handlex.MustExec(qry, code, name, id)
|
||||
_, err := rst.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error Update usergroup",
|
||||
zap.String("code", code),
|
||||
zap.String("name", name),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
|
||||
data, err = ug.GetUserGroupByIDV1(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get usergroup by id",
|
||||
zap.String("code", code),
|
||||
zap.String("name", name),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
func (ug *ServicesMasterMenuUserGroup) DeleteUserGroup(id string) (models.UserGroupV1, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var data models.UserGroupV1
|
||||
qry := `UPDATE m_usergroup
|
||||
SET M_UserGroupIsActive = 'N'
|
||||
WHERE M_UserGroupID = ?;`
|
||||
// time.Sleep(5 * time.Second)
|
||||
rst := dbx.Handlex.MustExec(qry, id)
|
||||
_, err := rst.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error delete usergroup",
|
||||
zap.String("id", id),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
|
||||
data, err = ug.GetUserGroupByIDV1(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get usergroup by id",
|
||||
zap.String("id", id),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
21
utils/getjsonreq.utils.go
Normal file
21
utils/getjsonreq.utils.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/labstack/gommon/log"
|
||||
)
|
||||
|
||||
func GetJSONRawBody(c echo.Context) map[string]interface{} {
|
||||
|
||||
jsonBody := make(map[string]interface{})
|
||||
err := json.NewDecoder(c.Request().Body).Decode(&jsonBody)
|
||||
if err != nil {
|
||||
|
||||
log.Error("empty json body")
|
||||
return nil
|
||||
}
|
||||
|
||||
return jsonBody
|
||||
}
|
||||
Reference in New Issue
Block a user