be add edit delete user group

This commit is contained in:
Sas Andy
2024-05-14 15:34:40 +07:00
parent 5dce26caeb
commit 64ac3a5b7b
5 changed files with 245 additions and 1 deletions

4
.gitignore vendored
View File

@@ -1,4 +1,6 @@
tmp
bin
config.yaml
restapi.rest
restapi.rest
cpone.db
coba.Http

View File

@@ -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)
}

View File

@@ -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)

View File

@@ -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
View 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
}