func getItem( sID int64, stype string, trailk *context.Context, ctx appengine.Context, keyTool *key.Tool) (*item, error) { var err error var s *source.Source var bestest float64 = 0 var worstest float64 = 0 i := &item{} switch stype { case "Source": s, err = source.NewSources(trailk, ctx, keyTool).Source(sID).Get() case "Reference": s, err = source.NewSources(trailk, ctx, keyTool).Reference(sID).Get() default: return nil, ErrUnknownSourceType } if err != nil { return nil, err } i.Source = s for _, r := range s.Records(100) { if bestest < r.Max { bestest = r.Max } if worstest > r.Min || (r.Min != 0 && worstest == 0) { worstest = r.Min } i.Records = append(i.Records, &record{ Average: math.Ceil(r.Average / 1024), Max: math.Ceil(r.Max / 1024), Min: math.Ceil(r.Min / 1024), Timeout: math.Ceil(float64(r.Timeout.Nanoseconds() / time.Millisecond.Nanoseconds())), Repeated: r.Repeated, Time: r.Time, }) } if len(i.Records) < 1 { i.EmptyRecord = true } else { i.EmptyRecord = false } i.Maxest = math.Ceil(bestest / 1024) i.Minest = math.Ceil(worstest / 1024) return i, nil }