diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html
index e210902f..3a2286a1 100644
--- a/app/src/main/assets/index.html
+++ b/app/src/main/assets/index.html
@@ -68,7 +68,28 @@
Deepr
- Your Personal Link Manager
+ Your Personal Link Manager
+
+
+
+
+
+
+
@@ -265,11 +286,51 @@ Loading links...
+
+
+
diff --git a/app/src/main/java/com/yogeshpaliyal/deepr/server/LocalServerRepositoryImpl.kt b/app/src/main/java/com/yogeshpaliyal/deepr/server/LocalServerRepositoryImpl.kt
index 779a29c0..944604ec 100644
--- a/app/src/main/java/com/yogeshpaliyal/deepr/server/LocalServerRepositoryImpl.kt
+++ b/app/src/main/java/com/yogeshpaliyal/deepr/server/LocalServerRepositoryImpl.kt
@@ -142,12 +142,52 @@ open class LocalServerRepositoryImpl(
}
}
+ get("/api/profiles") {
+ try {
+ val profiles = deeprQueries.getAllProfiles().executeAsList()
+ val response =
+ profiles.map { profile ->
+ ProfileResponse(
+ id = profile.id,
+ name = profile.name,
+ createdAt = profile.createdAt,
+ )
+ }
+ call.respond(HttpStatusCode.OK, response)
+ } catch (e: Exception) {
+ Log.e("LocalServer", "Error getting profiles", e)
+ call.respond(
+ HttpStatusCode.InternalServerError,
+ ErrorResponse("Error getting profiles: ${e.message}"),
+ )
+ }
+ }
+
+ post("/api/profiles") {
+ try {
+ val request = call.receive()
+ deeprQueries.insertProfile(request.name)
+ call.respond(
+ HttpStatusCode.Created,
+ SuccessResponse("Profile created successfully"),
+ )
+ } catch (e: Exception) {
+ Log.e("LocalServer", "Error creating profile", e)
+ call.respond(
+ HttpStatusCode.InternalServerError,
+ ErrorResponse("Error creating profile: ${e.message}"),
+ )
+ }
+ }
+
get("/api/links") {
try {
+ val profileId =
+ call.request.queryParameters["profileId"]?.toLongOrNull() ?: 1L
val links =
deeprQueries
.getLinksAndTags(
- 1L, // Default profile
+ profileId,
"",
"",
"",
@@ -192,11 +232,13 @@ open class LocalServerRepositoryImpl(
val request = call.receive()
// Insert the link without tags first
accountViewModel.insertAccount(
- request.link,
- request.name,
- false,
- request.tags.map { it.toDbTag() },
- request.notes,
+ link = request.link,
+ name = request.name,
+ executed = false,
+ tagsList = request.tags.map { it.toDbTag() },
+ notes = request.notes,
+ thumbnail = "",
+ profileId = request.profileId,
)
call.respond(
HttpStatusCode.Created,
@@ -469,6 +511,19 @@ data class AddLinkRequest(
val name: String,
val notes: String = "",
val tags: List = emptyList(),
+ val profileId: Long = 1L,
+)
+
+@Serializable
+data class ProfileResponse(
+ val id: Long,
+ val name: String,
+ val createdAt: String,
+)
+
+@Serializable
+data class AddProfileRequest(
+ val name: String,
)
@Serializable