refactor(components): ♻️ improve spi manager

master
Xeronith 2023-07-05 18:30:27 +03:30
rodzic e45f4634fd
commit d28e95bccd
1 zmienionych plików z 103 dodań i 98 usunięć

Wyświetl plik

@ -221,11 +221,12 @@ func (manager *spiManager) Echo(document IDocument, editor Identity) (result IEc
editor.Lock(ECHO_REQUEST)
defer editor.Unlock(ECHO_REQUEST)
if result, err = commands.Echo(NewDispatcher(Conductor, editor), document); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.Echo(dispatcher, document); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetServerConfigurationResult Implementation
@ -268,11 +269,12 @@ func (manager *spiManager) GetServerConfiguration(editor Identity) (result IGetS
editor.Lock(GET_SERVER_CONFIGURATION_REQUEST)
defer editor.Unlock(GET_SERVER_CONFIGURATION_REQUEST)
if result, err = commands.GetServerConfiguration(NewDispatcher(Conductor, editor)); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetServerConfiguration(dispatcher); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region ICheckUsernameAvailabilityResult Implementation
@ -307,11 +309,12 @@ func (manager *spiManager) CheckUsernameAvailability(username string, editor Ide
editor.Lock(CHECK_USERNAME_AVAILABILITY_REQUEST)
defer editor.Unlock(CHECK_USERNAME_AVAILABILITY_REQUEST)
if result, err = commands.CheckUsernameAvailability(NewDispatcher(Conductor, editor), username); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.CheckUsernameAvailability(dispatcher, username); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region ISignupResult Implementation
@ -339,18 +342,14 @@ func (result signupResult) Code() string {
//endregion
func (manager *spiManager) Signup(username string, email string, password string, editor Identity) (result ISignupResult, err error) {
if email != "" {
if match, err := manager.Match(EMAIL, email); err != nil {
return nil, err
} else if !match {
return nil, ERROR_INVALID_EMAIL_FOR_SIGNUP
}
}
if !validators.UsernameIsValid(username) {
return nil, ERROR_INVALID_USERNAME_FOR_SIGNUP
}
if !validators.EmailIsValid(email) {
return nil, ERROR_INVALID_EMAIL_FOR_SIGNUP
}
if !validators.PasswordIsValid(password) {
return nil, ERROR_INVALID_PASSWORD_FOR_SIGNUP
}
@ -364,11 +363,12 @@ func (manager *spiManager) Signup(username string, email string, password string
editor.Lock(SIGNUP_REQUEST)
defer editor.Unlock(SIGNUP_REQUEST)
if result, err = commands.Signup(NewDispatcher(Conductor, editor), username, email, password); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.Signup(dispatcher, username, email, password); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IResendVerificationCodeResult Implementation
@ -390,12 +390,8 @@ func (result resendVerificationCodeResult) Code() string {
//endregion
func (manager *spiManager) ResendVerificationCode(email string, editor Identity) (result IResendVerificationCodeResult, err error) {
if email != "" {
if match, err := manager.Match(EMAIL, email); err != nil {
return nil, err
} else if !match {
return nil, ERROR_INVALID_EMAIL_FOR_RESEND_VERIFICATION_CODE
}
if !validators.EmailIsValid(email) {
return nil, ERROR_INVALID_EMAIL_FOR_RESEND_VERIFICATION_CODE
}
defer func() {
@ -407,11 +403,12 @@ func (manager *spiManager) ResendVerificationCode(email string, editor Identity)
editor.Lock(RESEND_VERIFICATION_CODE_REQUEST)
defer editor.Unlock(RESEND_VERIFICATION_CODE_REQUEST)
if result, err = commands.ResendVerificationCode(NewDispatcher(Conductor, editor), email); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.ResendVerificationCode(dispatcher, email); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IVerifyResult Implementation
@ -433,12 +430,8 @@ func (result verifyResult) Token() string {
//endregion
func (manager *spiManager) Verify(email string, token string, code string, editor Identity) (result IVerifyResult, err error) {
if email != "" {
if match, err := manager.Match(EMAIL, email); err != nil {
return nil, err
} else if !match {
return nil, ERROR_INVALID_EMAIL_FOR_VERIFY
}
if !validators.EmailIsValid(email) {
return nil, ERROR_INVALID_EMAIL_FOR_VERIFY
}
defer func() {
@ -450,11 +443,12 @@ func (manager *spiManager) Verify(email string, token string, code string, edito
editor.Lock(VERIFY_REQUEST)
defer editor.Unlock(VERIFY_REQUEST)
if result, err = commands.Verify(NewDispatcher(Conductor, editor), email, token, code); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.Verify(dispatcher, email, token, code); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region ILoginResult Implementation
@ -482,12 +476,8 @@ func (result loginResult) Token() string {
//endregion
func (manager *spiManager) Login(email string, password string, editor Identity) (result ILoginResult, err error) {
if email != "" {
if match, err := manager.Match(EMAIL, email); err != nil {
return nil, err
} else if !match {
return nil, ERROR_INVALID_EMAIL_FOR_LOGIN
}
if !validators.EmailIsValid(email) {
return nil, ERROR_INVALID_EMAIL_FOR_LOGIN
}
if !validators.PasswordIsValid(password) {
@ -503,11 +493,12 @@ func (manager *spiManager) Login(email string, password string, editor Identity)
editor.Lock(LOGIN_REQUEST)
defer editor.Unlock(LOGIN_REQUEST)
if result, err = commands.Login(NewDispatcher(Conductor, editor), email, password); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.Login(dispatcher, email, password); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetProfileByUserResult Implementation
@ -568,11 +559,12 @@ func (manager *spiManager) GetProfileByUser(editor Identity) (result IGetProfile
editor.Lock(GET_PROFILE_BY_USER_REQUEST)
defer editor.Unlock(GET_PROFILE_BY_USER_REQUEST)
if result, err = commands.GetProfileByUser(NewDispatcher(Conductor, editor)); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetProfileByUser(dispatcher); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IUpdateProfileByUserResult Implementation
@ -627,11 +619,12 @@ func (manager *spiManager) UpdateProfileByUser(displayName string, avatar string
editor.Lock(UPDATE_PROFILE_BY_USER_REQUEST)
defer editor.Unlock(UPDATE_PROFILE_BY_USER_REQUEST)
if result, err = commands.UpdateProfileByUser(NewDispatcher(Conductor, editor), displayName, avatar, banner, summary, github); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.UpdateProfileByUser(dispatcher, displayName, avatar, banner, summary, github); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IChangePasswordResult Implementation
@ -663,11 +656,12 @@ func (manager *spiManager) ChangePassword(currentPassword string, newPassword st
editor.Lock(CHANGE_PASSWORD_REQUEST)
defer editor.Unlock(CHANGE_PASSWORD_REQUEST)
if result, err = commands.ChangePassword(NewDispatcher(Conductor, editor), currentPassword, newPassword); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.ChangePassword(dispatcher, currentPassword, newPassword); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IResetPasswordResult Implementation
@ -691,11 +685,12 @@ func (manager *spiManager) ResetPassword(usernameOrEmail string, editor Identity
editor.Lock(RESET_PASSWORD_REQUEST)
defer editor.Unlock(RESET_PASSWORD_REQUEST)
if result, err = commands.ResetPassword(NewDispatcher(Conductor, editor), usernameOrEmail); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.ResetPassword(dispatcher, usernameOrEmail); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region ILogoutResult Implementation
@ -719,11 +714,12 @@ func (manager *spiManager) Logout(editor Identity) (result ILogoutResult, err er
editor.Lock(LOGOUT_REQUEST)
defer editor.Unlock(LOGOUT_REQUEST)
if result, err = commands.Logout(NewDispatcher(Conductor, editor)); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.Logout(dispatcher); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IWebfingerResult Implementation
@ -757,9 +753,7 @@ func (result webfingerResult) Subject() string {
//endregion
func (manager *spiManager) Webfinger(resource string, editor Identity) (result IWebfingerResult, err error) {
if match, err := manager.Match(WEBFINGER, resource); err != nil {
return nil, err
} else if !match {
if !validators.WebfingerIsValid(resource) {
return nil, ERROR_INVALID_RESOURCE_FOR_WEBFINGER
}
@ -772,11 +766,12 @@ func (manager *spiManager) Webfinger(resource string, editor Identity) (result I
editor.Lock(WEBFINGER_REQUEST)
defer editor.Unlock(WEBFINGER_REQUEST)
if result, err = commands.Webfinger(NewDispatcher(Conductor, editor), resource); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.Webfinger(dispatcher, resource); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetPackagesResult Implementation
@ -807,11 +802,12 @@ func (manager *spiManager) GetPackages(editor Identity) (result IGetPackagesResu
editor.Lock(GET_PACKAGES_REQUEST)
defer editor.Unlock(GET_PACKAGES_REQUEST)
if result, err = commands.GetPackages(NewDispatcher(Conductor, editor)); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetPackages(dispatcher); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetActorResult Implementation
@ -926,11 +922,12 @@ func (manager *spiManager) GetActor(username string, editor Identity) (result IG
editor.Lock(GET_ACTOR_REQUEST)
defer editor.Unlock(GET_ACTOR_REQUEST)
if result, err = commands.GetActor(NewDispatcher(Conductor, editor), username); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetActor(dispatcher, username); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IFollowActorResult Implementation
@ -961,11 +958,12 @@ func (manager *spiManager) FollowActor(username string, acct string, editor Iden
editor.Lock(FOLLOW_ACTOR_REQUEST)
defer editor.Unlock(FOLLOW_ACTOR_REQUEST)
if result, err = commands.FollowActor(NewDispatcher(Conductor, editor), username, acct); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.FollowActor(dispatcher, username, acct); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IAuthorizeInteractionResult Implementation
@ -1002,11 +1000,12 @@ func (manager *spiManager) AuthorizeInteraction(uri string, editor Identity) (re
editor.Lock(AUTHORIZE_INTERACTION_REQUEST)
defer editor.Unlock(AUTHORIZE_INTERACTION_REQUEST)
if result, err = commands.AuthorizeInteraction(NewDispatcher(Conductor, editor), uri); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.AuthorizeInteraction(dispatcher, uri); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetFollowersResult Implementation
@ -1067,11 +1066,12 @@ func (manager *spiManager) GetFollowers(username string, editor Identity) (resul
editor.Lock(GET_FOLLOWERS_REQUEST)
defer editor.Unlock(GET_FOLLOWERS_REQUEST)
if result, err = commands.GetFollowers(NewDispatcher(Conductor, editor), username); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetFollowers(dispatcher, username); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetFollowingResult Implementation
@ -1132,11 +1132,12 @@ func (manager *spiManager) GetFollowing(username string, editor Identity) (resul
editor.Lock(GET_FOLLOWING_REQUEST)
defer editor.Unlock(GET_FOLLOWING_REQUEST)
if result, err = commands.GetFollowing(NewDispatcher(Conductor, editor), username); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetFollowing(dispatcher, username); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IPostToOutboxResult Implementation
@ -1167,11 +1168,12 @@ func (manager *spiManager) PostToOutbox(username string, body []byte, editor Ide
editor.Lock(POST_TO_OUTBOX_REQUEST)
defer editor.Unlock(POST_TO_OUTBOX_REQUEST)
if result, err = commands.PostToOutbox(NewDispatcher(Conductor, editor), username, body); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.PostToOutbox(dispatcher, username, body); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetOutboxResult Implementation
@ -1232,11 +1234,12 @@ func (manager *spiManager) GetOutbox(username string, editor Identity) (result I
editor.Lock(GET_OUTBOX_REQUEST)
defer editor.Unlock(GET_OUTBOX_REQUEST)
if result, err = commands.GetOutbox(NewDispatcher(Conductor, editor), username); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetOutbox(dispatcher, username); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IPostToInboxResult Implementation
@ -1267,11 +1270,12 @@ func (manager *spiManager) PostToInbox(username string, body []byte, editor Iden
editor.Lock(POST_TO_INBOX_REQUEST)
defer editor.Unlock(POST_TO_INBOX_REQUEST)
if result, err = commands.PostToInbox(NewDispatcher(Conductor, editor), username, body); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.PostToInbox(dispatcher, username, body); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}
//region IGetInboxResult Implementation
@ -1332,9 +1336,10 @@ func (manager *spiManager) GetInbox(username string, editor Identity) (result IG
editor.Lock(GET_INBOX_REQUEST)
defer editor.Unlock(GET_INBOX_REQUEST)
if result, err = commands.GetInbox(NewDispatcher(Conductor, editor), username); err != nil {
dispatcher := NewDispatcher(Conductor, editor)
if result, err = commands.GetInbox(dispatcher, username); err != nil {
return nil, err
} else {
return result, nil
}
return result, nil
}