nip50: add filter.search field

This commit is contained in:
Steve Perkins 2023-02-13 20:32:09 -05:00 committed by fiatjaf
parent 433a53fef2
commit 77c625e341
2 changed files with 10 additions and 0 deletions

View File

@ -17,6 +17,7 @@ type Filter struct {
Since *time.Time
Until *time.Time
Limit int
Search string
}
type TagMap map[string][]string
@ -109,5 +110,9 @@ func FilterEqual(a Filter, b Filter) bool {
return false
}
if a.Search != b.Search {
return false
}
return true
}

View File

@ -61,6 +61,8 @@ func (f *Filter) UnmarshalJSON(payload []byte) error {
visiterr = fmt.Errorf("invalid 'limit' field: %w", err)
}
f.Limit = val
case "search":
f.Search = v.String()
default:
if strings.HasPrefix(key, "#") {
f.Tags[key[1:]], err = fastjsonArrayToStringList(v)
@ -105,6 +107,9 @@ func (f Filter) MarshalJSON() ([]byte, error) {
if f.Limit != 0 {
o.Set("limit", arena.NewNumberInt(f.Limit))
}
if f.Search != "" {
o.Set("search", arena.NewString(f.Search))
}
return o.MarshalTo(nil), nil
}