Personal Git forge.

Code git clone ssh://git.poy.ooo:6969/~poyo/farga ZIP
app/discover.go / 944B #7190a35a
Raw
package appimport (	"farga/templating"	"log"	"net/http"	"net/url"	"strconv")const defaultPageSize = 50// parseUintParam parses query[key] as a uint32, returning def when absent.func parseUintParam(query url.Values, key string, def uint64) (uint64, error) {	v := query.Get(key)	if v == "" {		return def, nil	}	return strconv.ParseUint(v, 10, 32)}func (a *App) Discover(w http.ResponseWriter, r *http.Request) {	query := r.URL.Query()	start, err := parseUintParam(query, "start", 0)	if err != nil {		http.Error(w, "400 Invalid start.", http.StatusBadRequest)		return	}	repos, err := a.Store.PagedPublicRepos(int(start), int(start+defaultPageSize))	if err != nil {		http.Error(w, "500 Internal Server Error.", http.StatusInternalServerError)		log.Println("whoops. paged repos went wrong. check me out!!! fix me!!!")		return	}	templating.Render(w, r, "base", "discover", map[string]any{		"Repos": repos,	})}