extract parsing ?since
parent
ab933e3c53
commit
e7b3418932
|
|
@ -37,7 +37,7 @@ func newConfig(ctx context.Context) (Config, error) {
|
||||||
|
|
||||||
func newConfigFromEnv(ctx context.Context, getEnv func(string) string) (Config, error) {
|
func newConfigFromEnv(ctx context.Context, getEnv func(string) string) (Config, error) {
|
||||||
def := Config{
|
def := Config{
|
||||||
Port: 8080,
|
Port: 38080,
|
||||||
OllamaModel: "gemma:2b",
|
OllamaModel: "gemma:2b",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
7
main.go
7
main.go
|
|
@ -107,13 +107,10 @@ func newHandlerGetAPIV1Threads(cfg Config) http.HandlerFunc {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
since := time.Unix(0, 0)
|
since, err := parseSince(r.URL.Query().Get("since"))
|
||||||
if sinceS := r.URL.Query().Get("since"); sinceS == "" {
|
if err != nil {
|
||||||
} else if n, err := strconv.ParseInt(sinceS, 10, 64); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
} else {
|
|
||||||
since = time.Unix(n, 0)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
threads, err := cfg.storage.ThreadsSince(r.Context(), since)
|
threads, err := cfg.storage.ThreadsSince(r.Context(), since)
|
||||||
|
|
|
||||||
10
storage.go
10
storage.go
|
|
@ -19,14 +19,18 @@ func NewStorage(driver Driver) Storage {
|
||||||
return Storage{driver: driver}
|
return Storage{driver: driver}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s Storage) MessagesSince(ctx context.Context, t time.Time) ([]Message, error) {
|
||||||
|
return s.messagesWhere(ctx, func(m Message) bool {
|
||||||
|
return !t.After(m.Time())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func (s Storage) Threads(ctx context.Context) ([]string, error) {
|
func (s Storage) Threads(ctx context.Context) ([]string, error) {
|
||||||
return s.ThreadsSince(ctx, time.Unix(0, 0))
|
return s.ThreadsSince(ctx, time.Unix(0, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Storage) ThreadsSince(ctx context.Context, t time.Time) ([]string, error) {
|
func (s Storage) ThreadsSince(ctx context.Context, t time.Time) ([]string, error) {
|
||||||
messages, err := s.messagesWhere(ctx, func(m Message) bool {
|
messages, err := s.MessagesSince(ctx, t)
|
||||||
return !t.After(m.Time())
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue