Skip to content

Commit 6f89bce

Browse files
Refactored by improving names and extracting sub functions
1 parent c460ed4 commit 6f89bce

5 files changed

Lines changed: 47 additions & 32 deletions

File tree

src/application/services/authentication_service.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ void AuthenticationService::processAuthenticationResult(const QString& token)
9191
{
9292
utility::AutomaticLoginHelper autoLoginHelper;
9393
utility::AuthenticationData authData { m_tempEmail, token };
94-
autoLoginHelper.addAuthenticationData(authData);
94+
autoLoginHelper.saveAuthenticationData(authData);
9595
}
9696

9797
emit loggedIn(token, m_tempEmail);

src/application/services/user_service.cpp

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ UserService::UserService(IUserStorageGateway* userStorageGateway) :
3131
// Tag changed
3232
connect(&m_user, &User::tagsChanged, this, &UserService::tagsChanged);
3333

34-
// Fetch changes timer
34+
35+
// The timer which controls in which intervall we will check for new changes
36+
// to the user data on the server.
3537
m_fetchChangesTimer.setInterval(m_fetchChangesInverval);
3638
connect(&m_fetchChangesTimer, &QTimer::timeout, this,
3739
[this]()
@@ -42,19 +44,9 @@ UserService::UserService(IUserStorageGateway* userStorageGateway) :
4244

4345
void UserService::loadUser(bool rememberUser)
4446
{
45-
utility::AutomaticLoginHelper autoLoginHelper;
46-
auto result = autoLoginHelper.tryAutomaticUserLoading();
47-
if(result.has_value())
48-
{
49-
utility::UserData userData = result.value();
50-
User user(userData.firstName, userData.lastName, userData.email);
51-
52-
for(auto& tag : userData.tags)
53-
user.addTag(tag);
54-
55-
proccessUserInformation(user, true);
47+
auto success = tryLoadingUserFromFile();
48+
if(success)
5649
return;
57-
}
5850

5951
m_rememberUser = rememberUser;
6052
m_userStorageGateway->getUser(m_authenticationToken);
@@ -168,26 +160,14 @@ void UserService::proccessUserInformation(const domain::entities::User& user,
168160
m_user.setFirstName(user.getFirstName());
169161
m_user.setLastName(user.getLastName());
170162
m_user.setEmail(user.getEmail());
171-
172163
for(const auto& tag : user.getTags())
173-
{
174164
m_user.addTag(tag);
175-
}
176165

177166
emit finishedLoadingUser(true);
178167

179168
if(m_rememberUser)
180-
{
181-
utility::AutomaticLoginHelper autoLoginHelper;
182-
utility::UserData userData {
183-
user.getFirstName(),
184-
user.getLastName(),
185-
user.getEmail(),
186-
user.getTags(),
187-
};
188-
189-
autoLoginHelper.addUserData(userData);
190-
}
169+
saveUserToFile(user);
170+
191171
clearRememberUser();
192172
}
193173

@@ -198,9 +178,42 @@ bool UserService::userIsLoggedIn()
198178

199179
void UserService::clearRememberUser()
200180
{
181+
// This needs to be reset after every 'loadUser' request, else we might
182+
// save the data for the next user, even though they don't want it
201183
m_rememberUser = false;
202184
}
203185

186+
bool UserService::tryLoadingUserFromFile()
187+
{
188+
utility::AutomaticLoginHelper autoLoginHelper;
189+
auto result = autoLoginHelper.tryAutomaticUserLoading();
190+
if(result.has_value())
191+
{
192+
utility::UserData userData = result.value();
193+
User user(userData.firstName, userData.lastName, userData.email);
194+
for(auto& tag : userData.tags)
195+
user.addTag(tag);
196+
197+
proccessUserInformation(user, true);
198+
return true;
199+
}
200+
201+
return false;
202+
}
203+
204+
void UserService::saveUserToFile(const domain::entities::User& user)
205+
{
206+
utility::AutomaticLoginHelper autoLoginHelper;
207+
utility::UserData userData {
208+
user.getFirstName(),
209+
user.getLastName(),
210+
user.getEmail(),
211+
user.getTags(),
212+
};
213+
214+
autoLoginHelper.saveUserData(userData);
215+
}
216+
204217
void UserService::setupUserData(const QString& token, const QString& email)
205218
{
206219
Q_UNUSED(email);

src/application/services/user_service.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ private slots:
4747
private:
4848
bool userIsLoggedIn();
4949
void clearRememberUser();
50+
bool tryLoadingUserFromFile();
51+
void saveUserToFile(const domain::entities::User& user);
5052

5153
IUserStorageGateway* m_userStorageGateway;
5254
domain::entities::User m_user;

src/application/utility/automatic_login_helper.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ std::optional<UserData> AutomaticLoginHelper::tryAutomaticUserLoading()
5959
return user;
6060
}
6161

62-
void AutomaticLoginHelper::addAuthenticationData(
62+
void AutomaticLoginHelper::saveAuthenticationData(
6363
const AuthenticationData& authData)
6464
{
6565
auto currentFolder = QDir::current();
@@ -82,7 +82,7 @@ void AutomaticLoginHelper::addAuthenticationData(
8282
file.write(jsonDoc.toJson((QJsonDocument::Indented)));
8383
}
8484

85-
void AutomaticLoginHelper::addUserData(const UserData& userData)
85+
void AutomaticLoginHelper::saveUserData(const UserData& userData)
8686
{
8787
// User data can only be appended to the file, if the auth data already
8888
// exists. They would make no sense without each other.

src/application/utility/automatic_login_helper.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class AutomaticLoginHelper
3838
public:
3939
std::optional<AuthenticationData> tryAutomaticAuthentication();
4040
std::optional<UserData> tryAutomaticUserLoading();
41-
void addAuthenticationData(const AuthenticationData& authData);
42-
void addUserData(const UserData& userData);
41+
void saveAuthenticationData(const AuthenticationData& authData);
42+
void saveUserData(const UserData& userData);
4343
void clearAutomaticLoginData();
4444

4545
private:

0 commit comments

Comments
 (0)