2018-06-10 11:11:41 +02:00
package models
import "fmt"
// =====================
// User Operation Errors
// =====================
// ErrUsernameExists represents a "UsernameAlreadyExists" kind of error.
type ErrUsernameExists struct {
UserID int64
Username string
}
// IsErrUsernameExists checks if an error is a ErrUsernameExists.
func IsErrUsernameExists ( err error ) bool {
_ , ok := err . ( ErrUsernameExists )
return ok
}
func ( err ErrUsernameExists ) Error ( ) string {
return fmt . Sprintf ( "a user with this username does already exist [user id: %d, username: %s]" , err . UserID , err . Username )
}
// ErrUserEmailExists represents a "UserEmailExists" kind of error.
type ErrUserEmailExists struct {
UserID int64
Email string
}
// IsErrUserEmailExists checks if an error is a ErrUserEmailExists.
func IsErrUserEmailExists ( err error ) bool {
_ , ok := err . ( ErrUserEmailExists )
return ok
}
func ( err ErrUserEmailExists ) Error ( ) string {
return fmt . Sprintf ( "a user with this email does already exist [user id: %d, email: %s]" , err . UserID , err . Email )
}
// ErrNoUsername represents a "UsernameAlreadyExists" kind of error.
type ErrNoUsername struct {
UserID int64
}
// IsErrNoUsername checks if an error is a ErrUsernameExists.
func IsErrNoUsername ( err error ) bool {
_ , ok := err . ( ErrNoUsername )
return ok
}
func ( err ErrNoUsername ) Error ( ) string {
return fmt . Sprintf ( "you need to specify a username [user id: %d]" , err . UserID )
}
// ErrNoUsernamePassword represents a "NoUsernamePassword" kind of error.
type ErrNoUsernamePassword struct { }
// IsErrNoUsernamePassword checks if an error is a ErrNoUsernamePassword.
func IsErrNoUsernamePassword ( err error ) bool {
_ , ok := err . ( ErrNoUsernamePassword )
return ok
}
func ( err ErrNoUsernamePassword ) Error ( ) string {
return fmt . Sprintf ( "you need to specify a username and a password" )
}
// ErrUserDoesNotExist represents a "UserDoesNotExist" kind of error.
type ErrUserDoesNotExist struct {
UserID int64
}
// IsErrUserDoesNotExist checks if an error is a ErrUserDoesNotExist.
func IsErrUserDoesNotExist ( err error ) bool {
_ , ok := err . ( ErrUserDoesNotExist )
return ok
}
func ( err ErrUserDoesNotExist ) Error ( ) string {
return fmt . Sprintf ( "this user does not exist [user id: %d]" , err . UserID )
}
// ErrCouldNotGetUserID represents a "ErrCouldNotGetUserID" kind of error.
type ErrCouldNotGetUserID struct { }
// IsErrCouldNotGetUserID checks if an error is a ErrCouldNotGetUserID.
func IsErrCouldNotGetUserID ( err error ) bool {
_ , ok := err . ( ErrCouldNotGetUserID )
return ok
}
func ( err ErrCouldNotGetUserID ) Error ( ) string {
return fmt . Sprintf ( "could not get user ID" )
}
// ErrCannotDeleteLastUser represents a "ErrCannotDeleteLastUser" kind of error.
type ErrCannotDeleteLastUser struct { }
// IsErrCannotDeleteLastUser checks if an error is a ErrCannotDeleteLastUser.
func IsErrCannotDeleteLastUser ( err error ) bool {
_ , ok := err . ( ErrCannotDeleteLastUser )
return ok
}
func ( err ErrCannotDeleteLastUser ) Error ( ) string {
return fmt . Sprintf ( "cannot delete last user" )
}
// ===================
// Empty things errors
// ===================
// ErrIDCannotBeZero represents a "IDCannotBeZero" kind of error. Used if an ID (of something, not defined) is 0 where it should not.
type ErrIDCannotBeZero struct { }
// IsErrIDCannotBeZero checks if an error is a ErrIDCannotBeZero.
func IsErrIDCannotBeZero ( err error ) bool {
_ , ok := err . ( ErrIDCannotBeZero )
return ok
}
func ( err ErrIDCannotBeZero ) Error ( ) string {
return fmt . Sprintf ( "ID cannot be 0" )
2018-06-10 14:14:10 +02:00
}
// ===========
// List errors
// ===========
// ErrListDoesNotExist represents a "ErrListDoesNotExist" kind of error. Used if the list does not exist.
2018-06-10 14:22:37 +02:00
type ErrListDoesNotExist struct {
2018-06-10 14:14:10 +02:00
ID int64
}
// IsErrListDoesNotExist checks if an error is a ErrListDoesNotExist.
func IsErrListDoesNotExist ( err error ) bool {
_ , ok := err . ( ErrListDoesNotExist )
return ok
}
func ( err ErrListDoesNotExist ) Error ( ) string {
return fmt . Sprintf ( "List does not exist [ID: %d]" , err . ID )
2018-06-10 14:22:37 +02:00
}
2018-06-10 19:49:40 +02:00
2018-07-09 23:17:19 +02:00
// ErrNeedToBeListAdmin represents an error, where the user is not the owner of that list (used i.e. when deleting a list)
type ErrNeedToBeListAdmin struct {
2018-06-12 18:46:59 +02:00
ListID int64
UserID int64
}
2018-07-10 14:02:23 +02:00
// IsErrNeedToBeListAdmin checks if an error is a ErrListDoesNotExist.
2018-07-09 23:17:19 +02:00
func IsErrNeedToBeListAdmin ( err error ) bool {
_ , ok := err . ( ErrNeedToBeListAdmin )
2018-06-12 18:46:59 +02:00
return ok
}
2018-07-09 23:17:19 +02:00
func ( err ErrNeedToBeListAdmin ) Error ( ) string {
2018-06-12 18:46:59 +02:00
return fmt . Sprintf ( "You need to be list owner to do that [ListID: %d, UserID: %d]" , err . ListID , err . UserID )
}
2018-07-11 02:13:53 +02:00
// ErrNeedToBeListWriter represents an error, where the user is not the owner of that list (used i.e. when deleting a list)
type ErrNeedToBeListWriter struct {
ListID int64
UserID int64
}
// IsErrNeedToBeListWriter checks if an error is a ErrListDoesNotExist.
func IsErrNeedToBeListWriter ( err error ) bool {
_ , ok := err . ( ErrNeedToBeListWriter )
return ok
}
func ( err ErrNeedToBeListWriter ) Error ( ) string {
return fmt . Sprintf ( "You need to have write acces to the list to do that [ListID: %d, UserID: %d]" , err . ListID , err . UserID )
}
2018-07-24 17:29:13 +02:00
// ErrNeedToHaveListReadAccess represents an error, where the user dont has read access to that List
type ErrNeedToHaveListReadAccess struct {
ListID int64
2018-07-24 17:47:08 +02:00
UserID int64
2018-07-24 17:29:13 +02:00
}
// IsErrNeedToHaveListReadAccess checks if an error is a ErrListDoesNotExist.
func IsErrNeedToHaveListReadAccess ( err error ) bool {
_ , ok := err . ( ErrNeedToHaveListReadAccess )
return ok
}
func ( err ErrNeedToHaveListReadAccess ) Error ( ) string {
return fmt . Sprintf ( "You need to be List owner to do that [ListID: %d, UserID: %d]" , err . ListID , err . UserID )
}
2018-07-26 10:29:09 +02:00
// ErrListTitleCannotBeEmpty represents a "ErrListTitleCannotBeEmpty" kind of error. Used if the list does not exist.
type ErrListTitleCannotBeEmpty struct { }
// IsErrListTitleCannotBeEmpty checks if an error is a ErrListTitleCannotBeEmpty.
func IsErrListTitleCannotBeEmpty ( err error ) bool {
_ , ok := err . ( ErrListTitleCannotBeEmpty )
return ok
}
func ( err ErrListTitleCannotBeEmpty ) Error ( ) string {
2018-08-30 08:09:17 +02:00
return fmt . Sprintf ( "List task text cannot be empty." )
2018-07-26 10:29:09 +02:00
}
2018-06-12 18:46:59 +02:00
// ================
2018-08-30 08:09:17 +02:00
// List task errors
2018-06-12 18:46:59 +02:00
// ================
2018-08-30 08:09:17 +02:00
// ErrListTaskCannotBeEmpty represents a "ErrListDoesNotExist" kind of error. Used if the list does not exist.
type ErrListTaskCannotBeEmpty struct { }
2018-06-10 19:49:40 +02:00
2018-08-30 08:09:17 +02:00
// IsErrListTaskCannotBeEmpty checks if an error is a ErrListDoesNotExist.
func IsErrListTaskCannotBeEmpty ( err error ) bool {
_ , ok := err . ( ErrListTaskCannotBeEmpty )
2018-06-10 19:49:40 +02:00
return ok
}
2018-08-30 08:09:17 +02:00
func ( err ErrListTaskCannotBeEmpty ) Error ( ) string {
return fmt . Sprintf ( "List task text cannot be empty." )
2018-06-10 19:49:40 +02:00
}
2018-06-12 18:35:36 +02:00
2018-08-30 08:09:17 +02:00
// ErrListTaskDoesNotExist represents a "ErrListDoesNotExist" kind of error. Used if the list does not exist.
type ErrListTaskDoesNotExist struct {
2018-06-12 18:35:36 +02:00
ID int64
}
2018-08-30 08:09:17 +02:00
// IsErrListTaskDoesNotExist checks if an error is a ErrListDoesNotExist.
func IsErrListTaskDoesNotExist ( err error ) bool {
_ , ok := err . ( ErrListTaskDoesNotExist )
2018-06-12 18:35:36 +02:00
return ok
}
2018-08-30 08:09:17 +02:00
func ( err ErrListTaskDoesNotExist ) Error ( ) string {
return fmt . Sprintf ( "List task does not exist. [ID: %d]" , err . ID )
2018-06-12 18:35:36 +02:00
}
2018-08-30 08:09:17 +02:00
// ErrNeedToBeTaskOwner represents an error, where the user is not the owner of that task (used i.e. when deleting a list)
type ErrNeedToBeTaskOwner struct {
TaskID int64
2018-06-12 18:49:56 +02:00
UserID int64
}
2018-08-30 08:09:17 +02:00
// IsErrNeedToBeTaskOwner checks if an error is a ErrNeedToBeTaskOwner.
func IsErrNeedToBeTaskOwner ( err error ) bool {
_ , ok := err . ( ErrNeedToBeTaskOwner )
2018-06-12 18:49:56 +02:00
return ok
}
2018-08-30 08:09:17 +02:00
func ( err ErrNeedToBeTaskOwner ) Error ( ) string {
return fmt . Sprintf ( "You need to be task owner to do that [TaskID: %d, UserID: %d]" , err . TaskID , err . UserID )
2018-06-13 13:45:22 +02:00
}
2018-07-02 08:40:24 +02:00
// =================
// Namespace errors
// =================
// ErrNamespaceDoesNotExist represents a "ErrNamespaceDoesNotExist" kind of error. Used if the namespace does not exist.
type ErrNamespaceDoesNotExist struct {
ID int64
}
// IsErrNamespaceDoesNotExist checks if an error is a ErrNamespaceDoesNotExist.
func IsErrNamespaceDoesNotExist ( err error ) bool {
_ , ok := err . ( ErrNamespaceDoesNotExist )
return ok
}
func ( err ErrNamespaceDoesNotExist ) Error ( ) string {
return fmt . Sprintf ( "Namespace does not exist [ID: %d]" , err . ID )
}
// ErrNeedToBeNamespaceOwner represents an error, where the user is not the owner of that namespace (used i.e. when deleting a namespace)
type ErrNeedToBeNamespaceOwner struct {
NamespaceID int64
2018-07-02 08:54:44 +02:00
UserID int64
2018-07-02 08:40:24 +02:00
}
2018-07-10 14:02:23 +02:00
// IsErrNeedToBeNamespaceOwner checks if an error is a ErrNamespaceDoesNotExist.
2018-07-02 08:40:24 +02:00
func IsErrNeedToBeNamespaceOwner ( err error ) bool {
_ , ok := err . ( ErrNeedToBeNamespaceOwner )
return ok
}
func ( err ErrNeedToBeNamespaceOwner ) Error ( ) string {
return fmt . Sprintf ( "You need to be namespace owner to do that [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
2018-07-02 08:54:44 +02:00
}
2018-07-04 08:56:52 +02:00
// ErrUserDoesNotHaveAccessToNamespace represents an error, where the user is not the owner of that namespace (used i.e. when deleting a namespace)
type ErrUserDoesNotHaveAccessToNamespace struct {
NamespaceID int64
UserID int64
}
// IsErrUserDoesNotHaveAccessToNamespace checks if an error is a ErrNamespaceDoesNotExist.
func IsErrUserDoesNotHaveAccessToNamespace ( err error ) bool {
_ , ok := err . ( ErrUserDoesNotHaveAccessToNamespace )
return ok
}
func ( err ErrUserDoesNotHaveAccessToNamespace ) Error ( ) string {
2018-07-05 08:52:05 +02:00
return fmt . Sprintf ( "You need to have access to this namespace to do that [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
2018-07-04 08:56:52 +02:00
}
2018-07-04 19:21:04 +02:00
// ErrUserNeedsToBeNamespaceAdmin represents an error, where the user is not the owner of that namespace (used i.e. when deleting a namespace)
type ErrUserNeedsToBeNamespaceAdmin struct {
NamespaceID int64
UserID int64
}
// IsErrUserNeedsToBeNamespaceAdmin checks if an error is a ErrNamespaceDoesNotExist.
func IsErrUserNeedsToBeNamespaceAdmin ( err error ) bool {
_ , ok := err . ( ErrUserNeedsToBeNamespaceAdmin )
return ok
}
2018-07-04 08:56:52 +02:00
2018-07-04 19:21:04 +02:00
func ( err ErrUserNeedsToBeNamespaceAdmin ) Error ( ) string {
2018-07-05 08:52:05 +02:00
return fmt . Sprintf ( "You need to be namespace admin to do that [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
}
// ErrUserDoesNotHaveWriteAccessToNamespace represents an error, where the user is not the owner of that namespace (used i.e. when deleting a namespace)
type ErrUserDoesNotHaveWriteAccessToNamespace struct {
NamespaceID int64
UserID int64
}
// IsErrUserDoesNotHaveWriteAccessToNamespace checks if an error is a ErrNamespaceDoesNotExist.
func IsErrUserDoesNotHaveWriteAccessToNamespace ( err error ) bool {
_ , ok := err . ( ErrUserDoesNotHaveWriteAccessToNamespace )
return ok
}
func ( err ErrUserDoesNotHaveWriteAccessToNamespace ) Error ( ) string {
return fmt . Sprintf ( "You need to have write access to this namespace to do that [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
2018-07-04 19:21:04 +02:00
}
2018-07-12 00:09:16 +02:00
// ErrNamespaceNameCannotBeEmpty represents an error, where a namespace name is empty.
type ErrNamespaceNameCannotBeEmpty struct {
NamespaceID int64
UserID int64
}
// IsErrNamespaceNameCannotBeEmpty checks if an error is a ErrNamespaceDoesNotExist.
func IsErrNamespaceNameCannotBeEmpty ( err error ) bool {
_ , ok := err . ( ErrNamespaceNameCannotBeEmpty )
return ok
}
func ( err ErrNamespaceNameCannotBeEmpty ) Error ( ) string {
return fmt . Sprintf ( "Namespace name cannot be emtpy [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
2018-07-12 00:30:31 +02:00
}
// ErrNamespaceOwnerCannotBeEmpty represents an error, where a namespace owner is empty.
type ErrNamespaceOwnerCannotBeEmpty struct {
NamespaceID int64
UserID int64
}
// IsErrNamespaceOwnerCannotBeEmpty checks if an error is a ErrNamespaceDoesNotExist.
func IsErrNamespaceOwnerCannotBeEmpty ( err error ) bool {
_ , ok := err . ( ErrNamespaceOwnerCannotBeEmpty )
return ok
}
func ( err ErrNamespaceOwnerCannotBeEmpty ) Error ( ) string {
return fmt . Sprintf ( "Namespace owner cannot be emtpy [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
}
// ErrNeedToBeNamespaceAdmin represents an error, where the user is not the admin of that namespace (used i.e. when deleting a namespace)
type ErrNeedToBeNamespaceAdmin struct {
NamespaceID int64
UserID int64
}
// IsErrNeedToBeNamespaceAdmin checks if an error is a ErrNamespaceDoesNotExist.
func IsErrNeedToBeNamespaceAdmin ( err error ) bool {
_ , ok := err . ( ErrNeedToBeNamespaceAdmin )
return ok
}
func ( err ErrNeedToBeNamespaceAdmin ) Error ( ) string {
return fmt . Sprintf ( "You need to be namespace owner to do that [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
}
2018-07-14 17:34:59 +02:00
2018-07-18 22:06:29 +02:00
// ErrNeedToHaveNamespaceReadAccess represents an error, where the user is not the owner of that namespace (used i.e. when deleting a namespace)
type ErrNeedToHaveNamespaceReadAccess struct {
NamespaceID int64
UserID int64
}
// IsErrNeedToHaveNamespaceReadAccess checks if an error is a ErrNamespaceDoesNotExist.
func IsErrNeedToHaveNamespaceReadAccess ( err error ) bool {
_ , ok := err . ( ErrNeedToHaveNamespaceReadAccess )
return ok
}
func ( err ErrNeedToHaveNamespaceReadAccess ) Error ( ) string {
return fmt . Sprintf ( "You need to be namespace owner to do that [NamespaceID: %d, UserID: %d]" , err . NamespaceID , err . UserID )
}
2018-08-30 19:00:27 +02:00
// ErrTeamDoesNotHaveAccessToNamespace represents an error, where the Team is not the owner of that namespace (used i.e. when deleting a namespace)
type ErrTeamDoesNotHaveAccessToNamespace struct {
NamespaceID int64
TeamID int64
}
// IsErrTeamDoesNotHaveAccessToNamespace checks if an error is a ErrNamespaceDoesNotExist.
func IsErrTeamDoesNotHaveAccessToNamespace ( err error ) bool {
_ , ok := err . ( ErrTeamDoesNotHaveAccessToNamespace )
return ok
}
func ( err ErrTeamDoesNotHaveAccessToNamespace ) Error ( ) string {
return fmt . Sprintf ( "You need to have access to this namespace to do that [NamespaceID: %d, TeamID: %d]" , err . NamespaceID , err . TeamID )
}
2018-09-04 20:15:24 +02:00
// ErrUserAlreadyHasNamespaceAccess represents an error where a user already has access to a namespace
type ErrUserAlreadyHasNamespaceAccess struct {
UserID int64
NamespaceID int64
}
// IsErrUserAlreadyHasNamespaceAccess checks if an error is ErrUserAlreadyHasNamespaceAccess.
func IsErrUserAlreadyHasNamespaceAccess ( err error ) bool {
_ , ok := err . ( ErrUserAlreadyHasNamespaceAccess )
return ok
}
func ( err ErrUserAlreadyHasNamespaceAccess ) Error ( ) string {
return fmt . Sprintf ( "This user already has access to that namespace. [User ID: %d, Namespace ID: %d]" , err . UserID , err . NamespaceID )
}
2018-07-14 17:34:59 +02:00
// ============
// Team errors
// ============
2018-07-14 18:29:24 +02:00
// ErrTeamNameCannotBeEmpty represents an error where a team name is empty.
2018-07-14 17:34:59 +02:00
type ErrTeamNameCannotBeEmpty struct {
TeamID int64
}
// IsErrTeamNameCannotBeEmpty checks if an error is a ErrNamespaceDoesNotExist.
func IsErrTeamNameCannotBeEmpty ( err error ) bool {
_ , ok := err . ( ErrTeamNameCannotBeEmpty )
return ok
}
func ( err ErrTeamNameCannotBeEmpty ) Error ( ) string {
return fmt . Sprintf ( "Team name cannot be empty [Team ID: %d]" , err . TeamID )
}
2018-07-14 18:29:24 +02:00
// ErrTeamDoesNotExist represents an error where a team does not exist
type ErrTeamDoesNotExist struct {
TeamID int64
}
// IsErrTeamDoesNotExist checks if an error is ErrTeamDoesNotExist.
func IsErrTeamDoesNotExist ( err error ) bool {
_ , ok := err . ( ErrTeamDoesNotExist )
return ok
}
func ( err ErrTeamDoesNotExist ) Error ( ) string {
return fmt . Sprintf ( "Team does not exist [Team ID: %d]" , err . TeamID )
}
2018-07-17 08:44:21 +02:00
// ErrInvalidTeamRight represents an error where a team right is invalid
type ErrInvalidTeamRight struct {
2018-07-24 17:29:13 +02:00
Right TeamRight
2018-07-17 08:44:21 +02:00
}
// IsErrInvalidTeamRight checks if an error is ErrInvalidTeamRight.
func IsErrInvalidTeamRight ( err error ) bool {
_ , ok := err . ( ErrInvalidTeamRight )
return ok
}
func ( err ErrInvalidTeamRight ) Error ( ) string {
return fmt . Sprintf ( "The right is invalid [Right: %d]" , err . Right )
}
2018-07-24 17:46:32 +02:00
// ErrTeamAlreadyHasAccess represents an error where a team already has access to a list/namespace
type ErrTeamAlreadyHasAccess struct {
TeamID int64
2018-07-24 17:47:08 +02:00
ID int64
2018-07-24 17:46:32 +02:00
}
// IsErrTeamAlreadyHasAccess checks if an error is ErrTeamAlreadyHasAccess.
func IsErrTeamAlreadyHasAccess ( err error ) bool {
_ , ok := err . ( ErrTeamAlreadyHasAccess )
return ok
}
func ( err ErrTeamAlreadyHasAccess ) Error ( ) string {
return fmt . Sprintf ( "This team already has access. [Team ID: %d, ID: %d]" , err . TeamID , err . ID )
2018-07-24 17:47:08 +02:00
}
2018-07-26 10:06:41 +02:00
// ErrUserIsMemberOfTeam represents an error where a user is already member of a team.
type ErrUserIsMemberOfTeam struct {
TeamID int64
2018-07-26 10:08:01 +02:00
UserID int64
2018-07-26 10:06:41 +02:00
}
// IsErrUserIsMemberOfTeam checks if an error is ErrUserIsMemberOfTeam.
func IsErrUserIsMemberOfTeam ( err error ) bool {
_ , ok := err . ( ErrUserIsMemberOfTeam )
return ok
}
func ( err ErrUserIsMemberOfTeam ) Error ( ) string {
return fmt . Sprintf ( "This user is already a member of that team. [Team ID: %d, User ID: %d]" , err . TeamID , err . UserID )
2018-07-26 10:08:01 +02:00
}
2018-07-27 19:20:49 +02:00
// ErrCannotDeleteLastTeamMember represents an error where a user wants to delete the last member of a team (probably himself)
type ErrCannotDeleteLastTeamMember struct {
TeamID int64
UserID int64
}
// IsErrCannotDeleteLastTeamMember checks if an error is ErrCannotDeleteLastTeamMember.
func IsErrCannotDeleteLastTeamMember ( err error ) bool {
_ , ok := err . ( ErrCannotDeleteLastTeamMember )
return ok
}
func ( err ErrCannotDeleteLastTeamMember ) Error ( ) string {
return fmt . Sprintf ( "This user is already a member of that team. [Team ID: %d, User ID: %d]" , err . TeamID , err . UserID )
}
2018-08-30 08:58:09 +02:00
2018-08-30 19:00:27 +02:00
// ErrTeamDoesNotHaveAccessToList represents an error, where the Team is not the owner of that List (used i.e. when deleting a List)
type ErrTeamDoesNotHaveAccessToList struct {
ListID int64
TeamID int64
}
// IsErrTeamDoesNotHaveAccessToList checks if an error is a ErrListDoesNotExist.
func IsErrTeamDoesNotHaveAccessToList ( err error ) bool {
_ , ok := err . ( ErrTeamDoesNotHaveAccessToList )
return ok
}
func ( err ErrTeamDoesNotHaveAccessToList ) Error ( ) string {
return fmt . Sprintf ( "You need to have access to this List to do that [ListID: %d, TeamID: %d]" , err . ListID , err . TeamID )
}
2018-08-30 08:58:09 +02:00
// ====================
// User <-> List errors
// ====================
// ErrInvalidUserRight represents an error where a user right is invalid
type ErrInvalidUserRight struct {
Right UserRight
}
// IsErrInvalidUserRight checks if an error is ErrInvalidUserRight.
func IsErrInvalidUserRight ( err error ) bool {
_ , ok := err . ( ErrInvalidUserRight )
return ok
}
func ( err ErrInvalidUserRight ) Error ( ) string {
return fmt . Sprintf ( "The right is invalid [Right: %d]" , err . Right )
}
// ErrUserAlreadyHasAccess represents an error where a user already has access to a list/namespace
type ErrUserAlreadyHasAccess struct {
UserID int64
ListID int64
}
// IsErrUserAlreadyHasAccess checks if an error is ErrUserAlreadyHasAccess.
func IsErrUserAlreadyHasAccess ( err error ) bool {
_ , ok := err . ( ErrUserAlreadyHasAccess )
return ok
}
func ( err ErrUserAlreadyHasAccess ) Error ( ) string {
return fmt . Sprintf ( "This user already has access to that list. [User ID: %d, List ID: %d]" , err . UserID , err . ListID )
}
2018-08-30 18:52:12 +02:00
// ErrUserDoesNotHaveAccessToList represents an error, where the user is not the owner of that List (used i.e. when deleting a List)
type ErrUserDoesNotHaveAccessToList struct {
ListID int64
UserID int64
}
// IsErrUserDoesNotHaveAccessToList checks if an error is a ErrListDoesNotExist.
func IsErrUserDoesNotHaveAccessToList ( err error ) bool {
_ , ok := err . ( ErrUserDoesNotHaveAccessToList )
return ok
}
func ( err ErrUserDoesNotHaveAccessToList ) Error ( ) string {
return fmt . Sprintf ( "You need to have access to this List to do that [ListID: %d, UserID: %d]" , err . ListID , err . UserID )
}