step 2 : add data group result with form validation
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"cpone/models"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
dbx "cpone/package/database"
|
||||
@@ -685,3 +686,91 @@ func (su *ServicesGroupResult) GetListGroupResult(search string, currentPage int
|
||||
|
||||
return groupresultList, totalPage, nil
|
||||
}
|
||||
|
||||
// GET BY ID
|
||||
func (ug *ServicesGroupResult) GetGroupResultByIDV1(id string) (models.GroupResult, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
var data models.GroupResult
|
||||
err := dbx.Handlex.Get(&data, `SELECT * FROM group_result
|
||||
WHERE Group_ResultID = ?`, id)
|
||||
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get data gr by id vs",
|
||||
zap.String("ID", id),
|
||||
zap.Error(err),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// ADD DATA
|
||||
func (ug *ServicesGroupResult) AddGroupResult(groupresultname string, groupresultflagpertest string, groupresultflagnonlab string, groupresultresumemcu string) (models.GroupResult, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var data models.GroupResult
|
||||
var datacek []models.GroupResult
|
||||
// var groupresultflagpertestConvert string = ""
|
||||
// var groupresultflagnonlabConvert string = ""
|
||||
// var groupresultresumemcuConvert string = ""
|
||||
|
||||
prm := "%" + strings.TrimSpace(groupresultname) + "%"
|
||||
qryCek := `SELECT Group_ResultName FROM group_result WHERE Group_ResultName LIKE ? AND Group_ResultIsActive = 'Y'`
|
||||
err := dbx.Handlex.Select(&datacek, qryCek, prm)
|
||||
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error cek data by groupresultname",
|
||||
zap.String("groupresultname", groupresultname),
|
||||
zap.Any("datacek", datacek),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
if len(datacek) > 0 {
|
||||
defer logger.Sync()
|
||||
logger.Error("Group Result Name already taken by another data",
|
||||
zap.String("groupresultname", groupresultname),
|
||||
)
|
||||
return data, fmt.Errorf("group result name sudah dipakai")
|
||||
}
|
||||
qry := `INSERT INTO group_result
|
||||
(
|
||||
Group_ResultName,
|
||||
Group_ResultFlagPerTest,
|
||||
Group_ResultFlagNonLab,
|
||||
Group_ResultResumeMcu
|
||||
)
|
||||
VALUES (
|
||||
?,
|
||||
?,
|
||||
?,
|
||||
?
|
||||
);`
|
||||
// time.Sleep(5 * time.Second)
|
||||
rst := dbx.Handlex.MustExec(qry, groupresultname, groupresultflagpertest, groupresultflagnonlab, groupresultresumemcu)
|
||||
insertedID, err := rst.LastInsertId()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error Insert group result",
|
||||
zap.Any("groupresultname", groupresultname),
|
||||
zap.Any("groupresultflagpertest", groupresultflagpertest),
|
||||
zap.Any("groupresultflagnonlab", groupresultflagnonlab),
|
||||
zap.Any("groupresultresumemcu", groupresultresumemcu),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
s := strconv.Itoa(int(insertedID))
|
||||
data, err = ug.GetGroupResultByIDV1(s)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get usergroup by id",
|
||||
zap.Any("groupresultname", groupresultname),
|
||||
zap.Any("groupresultflagpertest", groupresultflagpertest),
|
||||
zap.Any("groupresultflagnonlab", groupresultflagnonlab),
|
||||
zap.Any("groupresultresumemcu", groupresultresumemcu),
|
||||
)
|
||||
return data, fmt.Errorf("QUERY_FAILED")
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user