add expo, massively simplify svelte and solid examples

This commit is contained in:
2026-06-03 17:05:06 +02:00
parent d33b9c5467
commit d1c46cdee1
28 changed files with 232 additions and 465 deletions

View File

@@ -1,16 +1,19 @@
package todo
import (
"cmp"
"context"
"net/http"
"slices"
"time"
"connectrpc.com/connect"
"connectrpc.com/validate"
"context"
"<@var(context.project.goprefix)>/<@var(context.project.name)>/db"
"github.com/<@var(context.project.name)>/<@var(context.project.name)>/db"
todov1 "<@var(context.project.goprefix)>/<@var(context.project.name)>/gen/todo/v1"
"<@var(context.project.goprefix)>/<@var(context.project.name)>/gen/todo/v1/todov1connect"
. "<@var(context.project.goprefix)>/<@var(context.project.name)>/utils"
. "<@var(context.project.goprefix)>/glstack-test/utils"
"github.com/jackc/pgx/v5/pgtype"
"net/http"
"time"
)
type TodoServer struct{}
@@ -46,9 +49,9 @@ func (srv *TodoServer) ListTodos(ctx context.Context, req *connect.Request[todov
if err != nil {
return nil, err
}
reponseTodos := []*todov1.Todo{}
responseTodos := []*todov1.Todo{}
for _, todo := range todos {
reponseTodos = append(reponseTodos, &todov1.Todo{
responseTodos = append(responseTodos, &todov1.Todo{
Id: StrPtr(todo.ID.String()),
Task: todo.Task,
CreatedAt: StrPtr(todo.CreatedAt.Time.Format(time.RFC3339)),
@@ -56,10 +59,25 @@ func (srv *TodoServer) ListTodos(ctx context.Context, req *connect.Request[todov
Done: BoolPtr(todo.Done.Bool),
})
}
slices.SortFunc(responseTodos, func(a, b *todov1.Todo) int {
dateCmp := cmp.Compare(a.GetCreatedAt(), b.GetCreatedAt())
return dateCmp
})
slices.SortFunc(responseTodos, func(a, b *todov1.Todo) int {
var boolToInt = func(b bool) int {
if b {
return 1
} else {
return 0
}
}
doneCmp := cmp.Compare(boolToInt(*a.Done), boolToInt(*b.Done))
return doneCmp
})
return &connect.Response[todov1.ListTodosResponse]{
Msg: &todov1.ListTodosResponse{
Todos: reponseTodos,
Todos: responseTodos,
},
}, nil
}