I have an API built in Golang using the Beego framework and I have a single query that has multiple joins and then returns a JSON result.
I was hoping there is a way for me to cast each row into a struct which has nicer key names, IE rather than "Stage__Description" just "Stage", etc... So I built a ResultMap struct with the key names I want, should I be creating a Map instead?
Query:
type ResultMap struct {
Id int
DateAdded time.Time
FirstName string
LastName string
Username string
Stage string
station string
status string
}
//var maps []ResultMap
var maps []orm.Params
num, err := o.QueryTable("test_result_detail").
Filter("Result__Serial", "121994-0001").
Values(&maps, "id", "date_added", "stage__description", "station__station", "status__status", "operator__username", "operator__first_name", "operator__last_name" )
JSON RESULT
[
{
"DateAdded": "2016-10-20T00:00:00-05:00",
"Id": 8306105,
"Operator__FirstName": "Jose",
"Operator__LastName": "Mendez",
"Operator__Username": "3362",
"Stage__Description": "VR1 Test",
"Station__Station": "TS0653",
"Status__Status": "PASS"
},
{
"DateAdded": "2016-10-20T00:00:00-05:00",
"Id": 8306465,
"Operator__FirstName": "Jose",
"Operator__LastName": "Mendez",
"Operator__Username": "3362",
"Stage__Description": "QA Lab X-Ray Inspection",
"Station__Station": "LABEQP-0004",
"Status__Status": "PASS"
},
{
"DateAdded": "2016-10-28T00:00:00-05:00",
"Id": 8547267,
"Operator__FirstName": "Jose",
"Operator__LastName": "Mendez",
"Operator__Username": "3362",
"Stage__Description": "Capture Customer SN",
"Station__Station": "N/A",
"Status__Status": "PASS"
},
{
"DateAdded": "2016-10-28T00:00:00-05:00",
"Id": 8547851,
"Operator__FirstName": "Jose",
"Operator__LastName": "Mendez",
"Operator__Username": "3362",
"Stage__Description": "Final Test",
"Station__Station": "TS0653",
"Status__Status": "PASS"
},
{
"DateAdded": "2017-02-14T00:00:00-06:00",
"Id": 10993864,
"Operator__FirstName": "Jose",
"Operator__LastName": "Mendez",
"Operator__Username": "3362",
"Stage__Description": "QA Mechanical Final Inspection",
"Station__Station": "VISUAL INSPECTION",
"Status__Status": "PASS"
}
]