diff options
Diffstat (limited to 'internal/api/util')
| -rw-r--r-- | internal/api/util/parsequery.go | 98 | 
1 files changed, 81 insertions, 17 deletions
diff --git a/internal/api/util/parsequery.go b/internal/api/util/parsequery.go index da6320b67..54cb4c466 100644 --- a/internal/api/util/parsequery.go +++ b/internal/api/util/parsequery.go @@ -34,12 +34,13 @@ const (  	/* Common keys */ -	IDKey      = "id" -	LimitKey   = "limit" -	LocalKey   = "local" -	MaxIDKey   = "max_id" -	SinceIDKey = "since_id" -	MinIDKey   = "min_id" +	IDKey       = "id" +	LimitKey    = "limit" +	LocalKey    = "local" +	MaxIDKey    = "max_id" +	SinceIDKey  = "since_id" +	MinIDKey    = "min_id" +	UsernameKey = "username"  	/* AP endpoint keys */ @@ -61,33 +62,55 @@ const (  	/* Web endpoint keys */ -	WebUsernameKey = "username"  	WebStatusIDKey = "status"  	/* Domain permission keys */  	DomainPermissionExportKey = "export"  	DomainPermissionImportKey = "import" + +	/* Admin query keys */ + +	AdminRemoteKey      = "remote" +	AdminActiveKey      = "active" +	AdminPendingKey     = "pending" +	AdminDisabledKey    = "disabled" +	AdminSilencedKey    = "silenced" +	AdminSuspendedKey   = "suspended" +	AdminSensitizedKey  = "sensitized" +	AdminDisplayNameKey = "display_name" +	AdminByDomainKey    = "by_domain" +	AdminEmailKey       = "email" +	AdminIPKey          = "ip" +	AdminStaffKey       = "staff" +	AdminOriginKey      = "origin" +	AdminStatusKey      = "status" +	AdminPermissionsKey = "permissions" +	AdminRoleIDsKey     = "role_ids[]" +	AdminInvitedByKey   = "invited_by"  )  /*  	Parse functions for *OPTIONAL* parameters with default values.  */ -func ParseLimit(value string, defaultValue int, max, min int) (int, gtserror.WithCode) { -	i, err := parseInt(value, defaultValue, max, min, LimitKey) -	if err != nil { -		return 0, err +func ParseMaxID(value string, defaultValue string) string { +	if value == "" { +		return defaultValue  	} -	return i, nil +	return value  } -func ParseLocal(value string, defaultValue bool) (bool, gtserror.WithCode) { -	return parseBool(value, defaultValue, LocalKey) +func ParseSinceID(value string, defaultValue string) string { +	if value == "" { +		return defaultValue +	} + +	return value  } -func ParseMaxID(value string, defaultValue string) string { +func ParseMinID(value string, defaultValue string) string {  	if value == "" {  		return defaultValue  	} @@ -95,6 +118,19 @@ func ParseMaxID(value string, defaultValue string) string {  	return value  } +func ParseLimit(value string, defaultValue int, max, min int) (int, gtserror.WithCode) { +	i, err := parseInt(value, defaultValue, max, min, LimitKey) +	if err != nil { +		return 0, err +	} + +	return i, nil +} + +func ParseLocal(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, LocalKey) +} +  func ParseSearchExcludeUnreviewed(value string, defaultValue bool) (bool, gtserror.WithCode) {  	return parseBool(value, defaultValue, SearchExcludeUnreviewedKey)  } @@ -123,6 +159,34 @@ func ParseOnlyOtherAccounts(value string, defaultValue bool) (bool, gtserror.Wit  	return parseBool(value, defaultValue, OnlyOtherAccountsKey)  } +func ParseAdminRemote(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminRemoteKey) +} + +func ParseAdminActive(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminActiveKey) +} + +func ParseAdminPending(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminPendingKey) +} + +func ParseAdminDisabled(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminDisabledKey) +} + +func ParseAdminSilenced(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminSilencedKey) +} + +func ParseAdminSuspended(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminSuspendedKey) +} + +func ParseAdminStaff(value string, defaultValue bool) (bool, gtserror.WithCode) { +	return parseBool(value, defaultValue, AdminStaffKey) +} +  /*  	Parse functions for *REQUIRED* parameters.  */ @@ -187,8 +251,8 @@ func ParseTagName(value string) (string, gtserror.WithCode) {  	return value, nil  } -func ParseWebUsername(value string) (string, gtserror.WithCode) { -	key := WebUsernameKey +func ParseUsername(value string) (string, gtserror.WithCode) { +	key := UsernameKey  	if value == "" {  		return "", requiredError(key)  | 
