From dbca765b6a2062df939684633cd6a4f143eb5fd3 Mon Sep 17 00:00:00 2001 From: winkidney Date: Thu, 23 Jul 2020 23:56:24 +0800 Subject: [PATCH] Feature: Add new public user-api and user-profile card in front-end --- pinry-spa/src/components/UserProfileCard.vue | 137 +++++++++++++++++++ pinry-spa/src/components/api.js | 17 +++ pinry-spa/src/views/Boards4User.vue | 3 + pinry-spa/src/views/Pins4User.vue | 3 + users/serializers.py | 15 ++ users/views.py | 17 +++ 6 files changed, 192 insertions(+) create mode 100644 pinry-spa/src/components/UserProfileCard.vue diff --git a/pinry-spa/src/components/UserProfileCard.vue b/pinry-spa/src/components/UserProfileCard.vue new file mode 100644 index 0000000..1d78ca8 --- /dev/null +++ b/pinry-spa/src/components/UserProfileCard.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/pinry-spa/src/components/api.js b/pinry-spa/src/components/api.js index 4d912f0..885b65d 100644 --- a/pinry-spa/src/components/api.js +++ b/pinry-spa/src/components/api.js @@ -238,6 +238,23 @@ const User = { }, ); }, + fetchUserInfoByName(username) { + /* returns null if user not logged in */ + const url = `${API_PREFIX}profile/public-users/?username=${username}`; + return new Promise( + (resolve) => { + axios.get(url).then( + (resp) => { + const users = resp.data; + if (users.length === 0) { + return resolve(null); + } + return resolve(users[0]); + }, + ); + }, + ); + }, fetchUserInfo(force = false) { /* returns null if user not logged in */ const self = this; diff --git a/pinry-spa/src/views/Boards4User.vue b/pinry-spa/src/views/Boards4User.vue index 93c4f26..fd51e78 100644 --- a/pinry-spa/src/views/Boards4User.vue +++ b/pinry-spa/src/views/Boards4User.vue @@ -1,12 +1,14 @@