diff --git a/android/app/src/main/java/com/fabledsword/minstrel/api/endpoints/MeApi.kt b/android/app/src/main/java/com/fabledsword/minstrel/api/endpoints/MeApi.kt index 6781ef2b..9a70291f 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/api/endpoints/MeApi.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/api/endpoints/MeApi.kt @@ -1,8 +1,8 @@ package com.fabledsword.minstrel.api.endpoints -import com.fabledsword.minstrel.models.wire.ChangePasswordRequest import com.fabledsword.minstrel.models.wire.MyProfileWire -import com.fabledsword.minstrel.models.wire.UpdateProfileRequest +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.PUT @@ -34,3 +34,23 @@ interface MeApi { @PUT("api/me/password") suspend fun changePassword(@Body body: ChangePasswordRequest) } + +/** + * Body for `PUT /api/me/profile`. Pass only the fields you want to + * change; the server merges — empty strings clear, nulls leave + * existing values alone. + */ +@Serializable +data class UpdateProfileRequest( + @SerialName("display_name") val displayName: String? = null, + val email: String? = null, +) + +/** + * Body for `PUT /api/me/password`. Both fields required. + */ +@Serializable +data class ChangePasswordRequest( + @SerialName("current_password") val currentPassword: String, + @SerialName("new_password") val newPassword: String, +)