package main // type Surfer struct { // Dbid string `json:"dbid"` // Id string `json:"id"` // Firstname string `json:"firstname"` // Lastname string `json:"lastname"` // } ///////////// Surfers // func (w *Webapp) GetSurfers(c *gin.Context) { // var cursor uint64 // var surfersKeys []string // cursor = 0 // log.Printf("start scanning %+v", c.ClientIP()) // for { // var keys []string // var err error // log.Printf("scan: cursor = %d", cursor) // keys, cursor, err = w.DB.Redis.Scan(w.DB.Ctx, cursor, "surfer:*", 10).Result() // if err != nil { // panic(err) // } // log.Printf("ret scan: cursor = %d", cursor) // log.Printf("scan: %+v", keys) // surfersKeys = append(surfersKeys, keys...) // if cursor == 0 { // log.Printf("end scan: cursor = %d", cursor) // break // } // } // var surfers []Surfer // for u := range surfersKeys { // surf := Surfer{} // ret := w.DB.Redis.HMGet(w.DB.Ctx, surfersKeys[u], "firstname", "lastname", "id", "sex", "birthdate", "stance", "hometown") // ret.Scan(&surf) // surf.Dbid = strings.Split(surfersKeys[u], ":")[1] // log.Printf("surfer: %+v", surf) // surfers = append(surfers, surf) // } // slices.SortFunc(surfers, // func(a, b Surfer) int { // return cmp.Compare(a.Id, b.Id) // }) // log.Printf("surfers: %+v", surfers) // c.JSON(http.StatusOK, surfers) // } // func (w *Webapp) DeleteSurfer(c *gin.Context) { // var surfer Surfer // var err error // err = c.ShouldBind(&surfer) // if err != nil { // c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) // return // } // id := CalcId(surfer.Firstname+surfer.Lastname, _MaxLen) // log.Printf("deleting: %+v", "surfer:"+id) // res, err := w.DB.Redis.HGetAll(w.DB.Ctx, "surfer:"+id).Result() // if err != nil || len(res) == 0 { // log.Printf("del error: %+v", err) // c.JSON(http.StatusNotFound, gin.H{"status": "Not Found"}) // return // } // log.Printf("found: %+v", res) // err = w.DB.Redis.Del(w.DB.Ctx, "surfer:"+id).Err() // if err != nil { // log.Printf("del error: %+v", err) // } // log.Printf("del: %+v", surfer) // c.JSON(http.StatusOK, gin.H{"status": "deleted"}) // } // func (w *Webapp) UpdateSurfer(c *gin.Context) { // var surfer Surfer // var err error // err = c.ShouldBind(&surfer) // if err != nil { // log.Printf("req error: %+v", err) // c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) // return // } // surfer.Dbid = CalcId(surfer.Firstname+surfer.Lastname, _MaxLen) // err = w.DB.Redis.HSet(w.DB.Ctx, "surfer:"+surfer.Dbid, surfer).Err() // if err != nil { // log.Printf("set error: %+v", err) // } // log.Printf("new: %+v", surfer) // c.JSON(http.StatusOK, gin.H{"status": "added"}) // }