diff options
author | 2024-11-25 13:48:59 +0000 | |
---|---|---|
committer | 2024-11-25 14:48:59 +0100 | |
commit | cac9d65029e972af9440ff79a2617d5c524a9d64 (patch) | |
tree | 87353498b2d6bb29679cd4af8744d5b3f7cd3423 /internal/api/client/notifications/notificationsget.go | |
parent | [chore]: Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#3564) (diff) | |
download | gotosocial-cac9d65029e972af9440ff79a2617d5c524a9d64.tar.xz |
[performance] convert enum strings to ints (#3558)
* convert statuses.visibility and notifications.notification_type columns from type string -> int for performance / space savings
* fix test trying to compare string to int
* fix instance count query using string literal instead of gtsmodel const type
* ensure a default value is always set
* also migrate the account settings and sin bin status tables
* initialize maps outside loops and place into singular enum mapping creation func
* use int16 for enum types
* update sinbinstatus creation to be from a snapshot at initial creation
* add snapshot of poll type at creation time
Diffstat (limited to 'internal/api/client/notifications/notificationsget.go')
-rw-r--r-- | internal/api/client/notifications/notificationsget.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/internal/api/client/notifications/notificationsget.go b/internal/api/client/notifications/notificationsget.go index f7bcf1994..cc3e5bdb7 100644 --- a/internal/api/client/notifications/notificationsget.go +++ b/internal/api/client/notifications/notificationsget.go @@ -164,6 +164,18 @@ func (m *Module) NotificationsGETHandler(c *gin.Context) { limit = int(i) } + types, errWithCode := apiutil.ParseNotificationTypes(c.QueryArray(TypesKey)) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + exclTypes, errWithCode := apiutil.ParseNotificationTypes(c.QueryArray(ExcludeTypesKey)) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + resp, errWithCode := m.processor.Timeline().NotificationsGet( c.Request.Context(), authed, @@ -171,8 +183,8 @@ func (m *Module) NotificationsGETHandler(c *gin.Context) { c.Query(SinceIDKey), c.Query(MinIDKey), limit, - c.QueryArray(TypesKey), - c.QueryArray(ExcludeTypesKey), + types, + exclTypes, ) if errWithCode != nil { apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) |