package kmb import ( query "github.com/tgckpg/golifehk/query" "log" "strings" ) func Query(q query.QueryMessage) query.IQueryResult { lang := q.Lang message := q.Text var qo *query.QueryObject var err error qr := QueryResult{Lang: lang} routeStops, err := getRouteStops() if err != nil { qr.Error = err goto qrReturn } qo, err = query.MatchKeys(strings.ToUpper(message), routeStops) if err != nil { qr.Error = err goto qrReturn } qr.Query = qo if 0 < len(*qo.Results) && 1 < len(*qo.SearchTerms) { rSchedules := map[*RouteStop]*[]*Schedule{} for _, item := range *qo.Results { var r *RouteStop r = any(item).(*RouteStop) schedules, err := getSchedule(r) if err != nil { qr.Error = err break } rSchedules[r] = schedules } qr.Schedules = &rSchedules } qrReturn: if qr.Error != nil { log.Println(qr.Error) } var iqr query.IQueryResult iqr = &qr return iqr }