Replace all utils.Param* with req.Params

This commit is contained in:
Deluan
2023-12-21 17:41:09 -05:00
parent 00597e01e9
commit dfcc189cff
27 changed files with 269 additions and 513 deletions
+23 -9
View File
@@ -68,8 +68,11 @@ func (r *Values) TimeOr(param string, def time.Time) time.Time {
return t
}
func (r *Values) Times(param string) []time.Time {
pStr, _ := r.Strings(param)
func (r *Values) Times(param string) ([]time.Time, error) {
pStr, err := r.Strings(param)
if err != nil {
return nil, err
}
times := make([]time.Time, len(pStr))
for i, t := range pStr {
ti, err := strconv.ParseInt(t, 10, 64)
@@ -80,7 +83,7 @@ func (r *Values) Times(param string) []time.Time {
}
times[i] = utils.ToTime(ti)
}
return times
return times, nil
}
func (r *Values) Int64(param string) (int64, error) {
@@ -119,8 +122,11 @@ func (r *Values) Int64Or(param string, def int64) int64 {
return v
}
func (r *Values) Ints(param string) []int {
pStr, _ := r.Strings(param)
func (r *Values) Ints(param string) ([]int, error) {
pStr, err := r.Strings(param)
if err != nil {
return nil, err
}
ints := make([]int, 0, len(pStr))
for _, s := range pStr {
i, err := strconv.ParseInt(s, 10, 64)
@@ -128,13 +134,21 @@ func (r *Values) Ints(param string) []int {
ints = append(ints, int(i))
}
}
return ints
return ints, nil
}
func (r *Values) Bool(param string) (bool, error) {
v, err := r.String(param)
if err != nil {
return false, err
}
return strings.Contains("/true/on/1/", "/"+strings.ToLower(v)+"/"), nil
}
func (r *Values) BoolOr(param string, def bool) bool {
v, _ := r.String(param)
if v == "" {
v, err := r.Bool(param)
if err != nil {
return def
}
return strings.Contains("/true/on/1/", "/"+strings.ToLower(v)+"/")
return v
}
+21 -6
View File
@@ -102,13 +102,16 @@ var _ = Describe("Request Helpers", func() {
})
It("returns empty string if param does not exist", func() {
Expect(r.Times("xx")).To(BeEmpty())
v, err := r.Times("xx")
Expect(err).To(MatchError(req.ErrMissingParam))
Expect(v).To(BeEmpty())
})
It("returns current time as default if param is invalid", func() {
now := time.Now()
r = req.Params(httptest.NewRequest("GET", "/ping?t=null", nil))
times := r.Times("t")
times, err := r.Times("t")
Expect(err).ToNot(HaveOccurred())
Expect(times).To(HaveLen(1))
Expect(times[0]).To(BeTemporally(">=", now))
})
@@ -130,18 +133,28 @@ var _ = Describe("Request Helpers", func() {
It("returns default value if param is an invalid int", func() {
Expect(r.IntOr("inv", 999)).To(Equal(999))
})
It("returns error if param is an invalid int", func() {
_, err := r.Int("inv")
Expect(err).To(MatchError(req.ErrInvalidParam))
})
})
Context("int64", func() {
It("returns parsed int64", func() {
Expect(r.IntOr("i", 999)).To(Equal(123))
Expect(r.Int64Or("i", 999)).To(Equal(int64(123)))
})
It("returns default value if param does not exist", func() {
Expect(r.IntOr("xx", 999)).To(Equal(999))
Expect(r.Int64Or("xx", 999)).To(Equal(int64(999)))
})
It("returns default value if param is an invalid int", func() {
Expect(r.IntOr("inv", 999)).To(Equal(999))
Expect(r.Int64Or("inv", 999)).To(Equal(int64(999)))
})
It("returns error if param is an invalid int", func() {
_, err := r.Int64("inv")
Expect(err).To(MatchError(req.ErrInvalidParam))
})
})
})
@@ -156,7 +169,9 @@ var _ = Describe("Request Helpers", func() {
})
It("returns empty array if param does not exist", func() {
Expect(r.Ints("xx")).To(BeEmpty())
v, err := r.Ints("xx")
Expect(err).To(MatchError(req.ErrMissingParam))
Expect(v).To(BeEmpty())
})
})