Skip to content
Snippets Groups Projects
Commit 06b2a268 authored by hollum's avatar hollum
Browse files

update profile to backend

parent 96903f5b
Branches backend/profile
No related tags found
No related merge requests found
Pipeline #157193 failed
......@@ -93,6 +93,20 @@ class UserPutSerializer(serializers.ModelSerializer):
return instance
class UserProfilePostSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = [
"email",
"username",
"phone_number",
"country",
"city",
"street_address",
"favourite_exercise",
"main_gym",
]
class AthleteFileSerializer(serializers.HyperlinkedModelSerializer):
owner = serializers.ReadOnlyField(source="owner.username")
......
......@@ -6,6 +6,8 @@ urlpatterns = [
path("api/users/", views.UserList.as_view(), name="user-list"),
path("api/users/<int:pk>/", views.UserDetail.as_view(), name="user-detail"),
path("api/users/<str:username>/", views.UserDetail.as_view(), name="user-detail"),
path("api/users/<str:username>/", views.UserDetail.as_view(), name="userinstance-detail"),
path("api/offers/", views.OfferList.as_view(), name="offer-list"),
path("api/offers/<int:pk>/", views.OfferDetail.as_view(), name="offer-detail"),
path(
......
......@@ -8,6 +8,7 @@ from users.serializers import (
AthleteFileSerializer,
UserPutSerializer,
UserGetSerializer,
UserProfilePostSerializer
)
from rest_framework.permissions import (
AllowAny,
......@@ -74,6 +75,10 @@ class UserDetail(
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.serializer_class = UserProfilePostSerializer
return self.update(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
self.serializer_class = UserPutSerializer
return self.update(request, *args, **kwargs)
......
......@@ -59,8 +59,8 @@
required>
</div> <!-- form-group// -->
<div class="d-grid">
<input type="button" class="btn btn-primary" id="btn-create-account"
value=" Create Account ">
<input type="button" class="btn btn-primary" id="btn-edit-account"
value=" Update profile ">
</div> <!-- form-group// -->
</form>
</article>
......
......@@ -7,14 +7,14 @@ async function init() {
let user = await userResponse.json().then((val) => {
if(val){
console.log(val);
document.getElementById("username").placeholder = `${val.username}`;
document.getElementById("email").placeholder = `${val.email}`;
document.getElementById("phone_number").placeholder = `${val.phone_number}`;
document.getElementById("country").placeholder = `${val.country}`;
document.getElementById("city").placeholder = `${val.city}`;
document.getElementById("street_address").placeholder = `${val.street_address}`;
document.getElementById("main_gym").placeholder = `${val.main_gym}`;
document.getElementById("favourite_exercise").placeholder = `${val.favourite_exercise}`;
document.getElementById("username").value = `${val.username}`;
document.getElementById("email").value = `${val.email}`;
document.getElementById("phone_number").value = `${val.phone_number}`;
document.getElementById("country").value = `${val.country}`;
document.getElementById("city").value = `${val.city}`;
document.getElementById("street_address").value = `${val.street_address}`;
document.getElementById("main_gym").value = `${val.main_gym}`;
document.getElementById("favourite_exercise").value = `${val.favourite_exercise}`;
}
}).catch(console.log)
......@@ -22,14 +22,35 @@ async function init() {
}
async function createNewUser(event) {
const username = sessionStorage.getItem("username");
let userResponse = await sendRequest("GET", `${HOST}/api/users/${username}/`);
let user = await userResponse.json();
async function updateUser(event) {
const usrName = sessionStorage.getItem("username");
let form = document.querySelector("#form-edit-user");
console.log(form);
let formData = new FormData(form);
let body = {
username: usrName,
email: formData.get("email"),
phone_number: formData.get("phone_number"),
country: formData.get("country"),
city: formData.get("city"),
street_address: formData.get("street_address"),
main_gym: formData.get("main_gym"),
favourite_exercise: formData.get("favourite_exercise")
};
const username = sessionStorage.getItem("username");
response = await sendRequest("POST", `${HOST}/api/users/${username}/`, body);
if (response.ok) {
console.log("UPDATED PROFILE");
} else {
console.log("CAN'T GET JWT TOKEN ON REGISTRATION");
let data = await response.json();
let alert = createAlert("Profile update could not complete. Try again!", data);
document.body.prepend(alert);
}
/*
let response = await sendRequest("POST", `${HOST}/api/users/`, formData, "");
......@@ -67,5 +88,5 @@ async function createNewUser(event) {
*/
}
document.querySelector("#btn-create-account").addEventListener("click", async (event) => await createNewUser(event));
document.querySelector("#btn-edit-account").addEventListener("click", async (event) => await updateUser(event));
init();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment