Skip to content

Commit 72a5d99

Browse files
committed
refactor
1 parent 9a15e0c commit 72a5d99

File tree

2 files changed

+54
-70
lines changed

2 files changed

+54
-70
lines changed

services/static-webserver/client/source/class/osparc/data/Resources.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,11 @@ qx.Class.define("osparc.data.Resources", {
722722
getOne: {
723723
method: "GET",
724724
url: statics.API + "/me"
725-
}
725+
},
726+
patch: {
727+
method: "PATCH",
728+
url: statics.API + "/me"
729+
},
726730
}
727731
},
728732
/*
@@ -1117,7 +1121,11 @@ qx.Class.define("osparc.data.Resources", {
11171121
postResetPassword: {
11181122
method: "POST",
11191123
url: statics.API + "/auth/reset-password/{code}"
1120-
}
1124+
},
1125+
changeEmail: {
1126+
method: "POST",
1127+
url: statics.API + "/auth/change-email"
1128+
},
11211129
}
11221130
},
11231131
/*

services/static-webserver/client/source/class/osparc/desktop/account/ProfilePage.js

Lines changed: 44 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@
1212
1313
Authors:
1414
* Pedro Crespo (pcrespov)
15+
* Odei Maiz (odeimaiz)
1516
1617
************************************************************************ */
1718

1819
/**
1920
* User profile in preferences dialog
2021
*
21-
* - user name, surname, email, avatar
22+
* - first name, last name, username, email
2223
*
2324
*/
2425

@@ -47,6 +48,28 @@ qx.Class.define("osparc.desktop.account.ProfilePage", {
4748
__userProfileData: null,
4849
__userProfileModel: null,
4950

51+
__fetchProfile: function() {
52+
osparc.data.Resources.getOne("profile", {}, null, false)
53+
.then(profile => {
54+
this.__setDataToModel(profile);
55+
})
56+
.catch(err => {
57+
console.error(err);
58+
});
59+
},
60+
61+
__setDataToModel: function(data) {
62+
if (data) {
63+
this.__userProfileData = data;
64+
this.__userProfileModel.set({
65+
"firstName": data["first_name"] || "",
66+
"lastName": data["last_name"] || "",
67+
"email": data["login"],
68+
"expirationDate": data["expirationDate"] || null
69+
});
70+
}
71+
},
72+
5073
__createProfileUser: function() {
5174
// layout
5275
const box = osparc.ui.window.TabbedView.createSectionBox(this.tr("User"));
@@ -140,55 +163,30 @@ qx.Class.define("osparc.desktop.account.ProfilePage", {
140163
return;
141164
}
142165

143-
const requests = {
144-
email: null,
145-
names: null
146-
};
147-
if (this.__userProfileData["login"] !== model.getEmail()) {
148-
if (emailValidator.validate()) {
149-
const emailReq = new osparc.io.request.ApiRequest("/auth/change-email", "POST");
150-
emailReq.setRequestData({
151-
"email": model.getEmail()
152-
});
153-
requests.email = emailReq;
154-
}
155-
}
156-
157166
if (this.__userProfileData["first_name"] !== model.getFirstName() || this.__userProfileData["last_name"] !== model.getLastName()) {
158167
if (namesValidator.validate()) {
159-
const profileReq = new osparc.io.request.ApiRequest("/me", "PATCH");
160-
profileReq.setRequestData({
161-
"first_name": model.getFirstName(),
162-
"last_name": model.getLastName()
163-
});
164-
requests.names = profileReq;
168+
const params = {
169+
data: {
170+
"first_name": model.getFirstName(),
171+
"last_name": model.getLastName(),
172+
}
173+
};
174+
osparc.data.Resources.fetch("profile", "patch", params)
175+
.then(() => {
176+
this.__setDataToModel(Object.assign(this.__userProfileData, params.data));
177+
osparc.auth.Manager.getInstance().updateProfile(this.__userProfileData);
178+
const msg = this.tr("Profile updated");
179+
osparc.FlashMessenger.getInstance().logAs(msg, "INFO");
180+
})
181+
.catch(err => {
182+
this.__resetDataToModel();
183+
const msg = err.message || this.tr("Failed to update profile");
184+
osparc.FlashMessenger.getInstance().logAs(msg, "ERROR");
185+
console.error(err);
186+
});
165187
}
166188
}
167-
168-
Object.keys(requests).forEach(key => {
169-
const req = requests[key];
170-
if (req === null) {
171-
return;
172-
}
173-
174-
req.addListenerOnce("success", e => {
175-
const reqData = e.getTarget().getRequestData();
176-
this.__setDataToModel(Object.assign(this.__userProfileData, reqData));
177-
osparc.auth.Manager.getInstance().updateProfile(this.__userProfileData);
178-
const res = e.getTarget().getResponse();
179-
const msg = (res && res.data) ? res.data : this.tr("Profile updated");
180-
osparc.FlashMessenger.getInstance().logAs(msg, "INFO");
181-
}, this);
182-
183-
req.addListenerOnce("fail", e => {
184-
this.__resetDataToModel();
185-
const msg = osparc.data.Resources.getErrorMsg(e.getTarget().getResponse()) || this.tr("Failed to update profile");
186-
osparc.FlashMessenger.getInstance().logAs(msg, "ERROR");
187-
}, this);
188-
189-
req.send();
190-
});
191-
}, this);
189+
});
192190

193191
return box;
194192
},
@@ -261,28 +259,6 @@ qx.Class.define("osparc.desktop.account.ProfilePage", {
261259
return box;
262260
},
263261

264-
__fetchProfile: function() {
265-
osparc.data.Resources.getOne("profile", {}, null, false)
266-
.then(profile => {
267-
this.__setDataToModel(profile);
268-
})
269-
.catch(err => {
270-
console.error(err);
271-
});
272-
},
273-
274-
__setDataToModel: function(data) {
275-
if (data) {
276-
this.__userProfileData = data;
277-
this.__userProfileModel.set({
278-
"firstName": data["first_name"] || "",
279-
"lastName": data["last_name"] || "",
280-
"email": data["login"],
281-
"expirationDate": data["expirationDate"] || null
282-
});
283-
}
284-
},
285-
286262
__resetDataToModel: function() {
287263
this.__setDataToModel(this.__userProfileData);
288264
},

0 commit comments

Comments
 (0)