92 lines
2.6 KiB
Go
92 lines
2.6 KiB
Go
package event
|
|
|
|
import "fmt"
|
|
|
|
func Onboarding(timestamp int64, level int, step int, fields map[string]interface{}) (map[string]interface{}, error) {
|
|
event := map[string]interface{}{
|
|
"code": "tr",
|
|
"timestamp": timestamp,
|
|
"level": level,
|
|
"step": step,
|
|
}
|
|
if err := addFields(event, fields, "code", "timestamp", "level", "step"); err != nil {
|
|
return nil, err
|
|
}
|
|
return event, nil
|
|
}
|
|
|
|
func CurrencyAccrual(timestamp int64, level int, bought, earned map[string]map[string]float64, fields map[string]interface{}) (map[string]interface{}, error) {
|
|
if len(bought) == 0 && len(earned) == 0 {
|
|
return nil, fmt.Errorf("either bought or earned must be provided")
|
|
}
|
|
event := map[string]interface{}{
|
|
"code": "ca",
|
|
"timestamp": timestamp,
|
|
"level": level,
|
|
}
|
|
if len(bought) > 0 {
|
|
event["bought"] = bought
|
|
}
|
|
if len(earned) > 0 {
|
|
event["earned"] = earned
|
|
}
|
|
if err := addFields(event, fields, "code", "timestamp", "level", "bought", "earned"); err != nil {
|
|
return nil, err
|
|
}
|
|
return event, nil
|
|
}
|
|
|
|
func CurrentBalance(timestamp int64, level int, balance map[string]float64, fields map[string]interface{}) (map[string]interface{}, error) {
|
|
event := map[string]interface{}{
|
|
"code": "cb",
|
|
"timestamp": timestamp,
|
|
"level": level,
|
|
"balance": balance,
|
|
}
|
|
if err := addFields(event, fields, "code", "timestamp", "level", "balance"); err != nil {
|
|
return nil, err
|
|
}
|
|
return event, nil
|
|
}
|
|
|
|
func LevelUp(timestamp int64, level int, balance, spent, earned, bought map[string]float64, fields map[string]interface{}) (map[string]interface{}, error) {
|
|
event := map[string]interface{}{
|
|
"code": "lu",
|
|
"timestamp": timestamp,
|
|
"level": level,
|
|
}
|
|
if len(balance) > 0 {
|
|
event["balance"] = balance
|
|
}
|
|
if len(spent) > 0 {
|
|
event["spent"] = spent
|
|
}
|
|
if len(earned) > 0 {
|
|
event["earned"] = earned
|
|
}
|
|
if len(bought) > 0 {
|
|
event["bought"] = bought
|
|
}
|
|
if err := addFields(event, fields, "code", "timestamp", "level", "balance", "spent", "earned", "bought"); err != nil {
|
|
return nil, err
|
|
}
|
|
return event, nil
|
|
}
|
|
|
|
func ProgressionEvent(timestamp int64, level int, name string, parameters map[string]interface{}, fields map[string]interface{}) (map[string]interface{}, error) {
|
|
if len(parameters) == 0 {
|
|
return nil, fmt.Errorf("parameters is required")
|
|
}
|
|
event := map[string]interface{}{
|
|
"code": "pe",
|
|
"timestamp": timestamp,
|
|
"level": level,
|
|
"name": name,
|
|
"parameters": parameters,
|
|
}
|
|
if err := addFields(event, fields, "code", "timestamp", "level", "name", "parameters"); err != nil {
|
|
return nil, err
|
|
}
|
|
return event, nil
|
|
}
|