From a1b1eed74007ec7d27801257b7345744c28251f8 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Tue, 26 May 2026 21:03:56 -0400 Subject: [PATCH] =?UTF-8?q?fix(android):=20MeRepository=20resolution=20?= =?UTF-8?q?=E2=80=94=20match=20project=20Api+body=20pattern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit KSP couldn't resolve MeRepository despite the file being on disk + imported correctly. Most likely cause: wire body data classes lived in a separate file (MyProfileWire.kt) instead of the Api file — diverged from the AdminUsersApi / PlaylistsApi / QuarantineApi pattern where request bodies sit alongside the interface. Also switched retrofit.create() to the explicit Java-class form in case reified inference was the issue. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../minstrel/models/wire/MyProfileWire.kt | 20 ------------------- .../minstrel/settings/data/MeRepository.kt | 7 +++---- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/models/wire/MyProfileWire.kt b/android/app/src/main/java/com/fabledsword/minstrel/models/wire/MyProfileWire.kt index 3cfab9c9..7c811efc 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/models/wire/MyProfileWire.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/models/wire/MyProfileWire.kt @@ -19,23 +19,3 @@ data class MyProfileWire( val email: String? = null, @SerialName("is_admin") val isAdmin: Boolean = false, ) - -/** - * 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, -) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/settings/data/MeRepository.kt b/android/app/src/main/java/com/fabledsword/minstrel/settings/data/MeRepository.kt index e81a5905..91a0971d 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/settings/data/MeRepository.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/settings/data/MeRepository.kt @@ -1,12 +1,11 @@ package com.fabledsword.minstrel.settings.data +import com.fabledsword.minstrel.api.endpoints.ChangePasswordRequest import com.fabledsword.minstrel.api.endpoints.MeApi +import com.fabledsword.minstrel.api.endpoints.UpdateProfileRequest import com.fabledsword.minstrel.models.MyProfile -import com.fabledsword.minstrel.models.wire.ChangePasswordRequest import com.fabledsword.minstrel.models.wire.MyProfileWire -import com.fabledsword.minstrel.models.wire.UpdateProfileRequest import retrofit2.Retrofit -import retrofit2.create import javax.inject.Inject import javax.inject.Singleton @@ -19,7 +18,7 @@ import javax.inject.Singleton */ @Singleton class MeRepository @Inject constructor(retrofit: Retrofit) { - private val api: MeApi = retrofit.create() + private val api: MeApi = retrofit.create(MeApi::class.java) suspend fun getProfile(): MyProfile = api.getProfile().toDomain()