Skip to content

Commit

Permalink
add rule function
Browse files Browse the repository at this point in the history
  • Loading branch information
adiraktb committed Oct 9, 2020
1 parent 634c765 commit 8dfe36b
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 36 deletions.
3 changes: 2 additions & 1 deletion apis/event/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ func CreateEvent(reqt data.ReqtData) (resp data.RespData) {
name := inData["name"].(string)
active := inData["active"].(bool)
data := inData["data"]
ruleID := inData["ruleId"].(float64)

err := dbexec.CreateRunningEvent(name, data, active)
err := dbexec.CreateRunningEvent(name, data, active, int64(ruleID))
if err == nil {
resp.Success = true
}
Expand Down
81 changes: 53 additions & 28 deletions apis/regis/registerLog.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,29 +213,23 @@ func LoadRegisterLog(reqt data.ReqtData) (resp data.RespData) {
userID := inData["userId"]
eventID := inData["eventId"]

log.Println("Step 1")

// Step description
// 1.userInfo 2.address 3.item 4.confirm 5.confirm role 6.payment
stepDesc := make(map[string]interface{})
stepDesc["1"] = "User Info Page"
stepDesc["2"] = "Address Page"
stepDesc["3"] = "Item Size Page"
stepDesc["4"] = "Confirm Page"
stepDesc["5"] = "Confirm Role Page"
stepDesc["6"] = "Page Page"
stepDesc["4"] = "Confirm all steps and Role Page"
stepDesc["5"] = "Confirm Consent Page"
stepDesc["6"] = "Payment Page"
outData["stepDesc"] = stepDesc

if userID != nil && eventID != nil {

log.Println("Step 2")

// Convert data
uID := userID.(string)
eID := int64(eventID.(float64))

log.Println("Step 2.5")

// Load Register Log data
rLog, err2 := dbexec.LoadRegisterLog(uID, eID)
if err2 == nil {
Expand All @@ -247,7 +241,8 @@ func LoadRegisterLog(reqt data.ReqtData) (resp data.RespData) {
outData["eventId"] = rLog.EventID
outData["step"] = step

if step == 1 {
// User Info Page
if step == 1 || step == 4 {

// User Info
mapData := make(map[string]interface{})
Expand All @@ -256,7 +251,10 @@ func LoadRegisterLog(reqt data.ReqtData) (resp data.RespData) {
outData["userInfo"] = mapData
}

} else if step == 2 {
}

// Address Page
if step == 2 || step == 4 {

// Address
mapData := make(map[string]interface{})
Expand All @@ -265,7 +263,10 @@ func LoadRegisterLog(reqt data.ReqtData) (resp data.RespData) {
outData["address"] = mapData
}

} else if step == 3 {
}

// Item Size Page
if step == 3 || step == 4 {

// Item
mapData := make(map[string]interface{})
Expand All @@ -274,35 +275,59 @@ func LoadRegisterLog(reqt data.ReqtData) (resp data.RespData) {
outData["item"] = mapData
}

} else if step == 4 {
}

// Confirm
// TODO
mapData := make(map[string]interface{})
mapData["desc"] = "No implement yet"
outData["summarry"] = mapData
// Confirm all steps and Role Page
if step == 4 {

} else if step == 5 {
runEvent, err2 := dbexec.LoadRunningEventByID(eID)
if err2 == nil {
ruleData, err3 := dbexec.LoadRuleFunction(runEvent.RuleID)
if err3 == nil {
outData["rule"] = ruleData
} else {
err = err3
}
} else {
err = err2
}

// Confirm
// TODO
mapData := make(map[string]interface{})
mapData["desc"] = "No implement yet"
outData["role"] = mapData
}

// Confirm Consent Page
if step == 5 {

runEvent, err2 := dbexec.LoadRunningEventByID(eID)
if err2 == nil {

mapData := make(map[string]interface{})
err = json.Unmarshal([]byte(runEvent.Data), &mapData)
if err == nil {
consent := mapData["consent"]
outData["consent"] = consent
}

} else if step == 6 {
} else {
err = err2
}

}

// Payment Page
if step == 6 {

// Confirm
// TODO
mapData := make(map[string]interface{})
mapData["desc"] = "No implement yet"
outData["payment"] = mapData

} else {
err = errors.New("step is not corrected")
}

log.Println("Step 4")
// Unsupport Page
if step < 1 || step > 6 {
err = errors.New("step is not corrected")
}

// Return Success
if err == nil {
Expand Down
10 changes: 10 additions & 0 deletions data/dbModel.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ type RunningEvent struct {
EventID int64 `json:"eventId"`
Name string `json:"name"`
Data string `json:"data"`
RuleID int64 `json:"ruleId"`
}

// RegisterLog is data from register_log table
Expand All @@ -89,3 +90,12 @@ type RegisterLog struct {
CreatedDate time.Time `json:"createdDate"`
UpdatedDate time.Time `json:"updatedDate"`
}

// RuleFunction is data from running_event table
type RuleFunction struct {
RuleID int64 `json:"ruleId"`
FunctionName string `json:"functionName"`
Description string `json:"description"`
CreatedDate time.Time `json:"createdDate"`
UpdatedDate time.Time `json:"updatedDate"`
}
38 changes: 38 additions & 0 deletions dbexec/ruleFunction.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Package dbexec contains an database execution such as query insert or update table
package dbexec

import (
"github.com/adirak/app-385-core/data"
"github.com/adirak/app-385-core/dbconn"
)

// LoadRuleFunction is function to query rule_function table
func LoadRuleFunction(ruleID int64) (result data.RuleFunction, err error) {

// init
result = data.RuleFunction{}

// Create connection
conn, err := dbconn.GetConnectionPoolAppDB()

if err == nil {

// Queue SQL
sqlQueue := `SELECT rule_id, function_name, drescription FROM rule_function WHERE rule_id = $1`

// Do execute
rows, err2 := conn.Query(sqlQueue, ruleID)

if err2 != nil {
return result, err2
}
defer rows.Close()

for rows.Next() {
err = rows.Scan(&result.RuleID, &result.FunctionName, &result.Description)
break
}
}

return result, err
}
21 changes: 14 additions & 7 deletions dbexec/runningEvents.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func LoadRunningEvents() ([]data.RunningEvent, error) {

if err == nil {

sqlQuery := `SELECT event_id, name, data FROM running_event WHERE active=TRUE`
sqlQuery := `SELECT event_id, name, data, rule_id FROM running_event WHERE active=TRUE`

rows, err1 := conn.Query(sqlQuery)
if err1 != nil {
Expand All @@ -33,7 +33,7 @@ func LoadRunningEvents() ([]data.RunningEvent, error) {

runEvent := data.RunningEvent{}

err := rows.Scan(&runEvent.EventID, &runEvent.Name, &runEvent.Data)
err := rows.Scan(&runEvent.EventID, &runEvent.Name, &runEvent.Data, &runEvent.RuleID)
if err == nil {
events = append(events, runEvent)
} else {
Expand All @@ -56,7 +56,7 @@ func LoadRunningEvent(myEvent data.MyEvent) (data.RunningEvent, error) {

if err == nil {

sqlQuery := `SELECT event_id, name, data FROM running_event WHERE event_id=$1`
sqlQuery := `SELECT event_id, name, data, rule_id FROM running_event WHERE event_id=$1`

rows, err1 := conn.Query(sqlQuery, myEvent.EventID)
if err1 != nil {
Expand All @@ -66,7 +66,7 @@ func LoadRunningEvent(myEvent data.MyEvent) (data.RunningEvent, error) {

for rows.Next() {

err := rows.Scan(&runEvent.EventID, &runEvent.Name, &runEvent.Data)
err := rows.Scan(&runEvent.EventID, &runEvent.Name, &runEvent.Data, &runEvent.RuleID)
if err == nil {
break
} else {
Expand All @@ -79,8 +79,15 @@ func LoadRunningEvent(myEvent data.MyEvent) (data.RunningEvent, error) {
return runEvent, err
}

// LoadRunningEventByID is function to load runnint event by ID
func LoadRunningEventByID(eventID int64) (data.RunningEvent, error) {
myEvent := data.MyEvent{}
myEvent.EventID = eventID
return LoadRunningEvent(myEvent)
}

// CreateRunningEvent is function to create running event
func CreateRunningEvent(name string, data interface{}, active bool) error {
func CreateRunningEvent(name string, data interface{}, active bool, ruleID int64) error {

// Convert map to json
json, err1 := json.Marshal(data)
Expand All @@ -92,10 +99,10 @@ func CreateRunningEvent(name string, data interface{}, active bool) error {

if err == nil {

sqlInsert := "INSERT INTO running_event(name, data, active) VALUES ($1, $2, $3)"
sqlInsert := "INSERT INTO running_event(name, data, active, rule_id) VALUES ($1, $2, $3, $4)"

// Do execute
_, err = conn.Exec(sqlInsert, name, json, active)
_, err = conn.Exec(sqlInsert, name, json, active, ruleID)

err1 = err

Expand Down

0 comments on commit 8dfe36b

Please sign in to comment.