fix: repair im api query annotations

这个提交包含在:
XuqmGroup 2026-05-08 09:55:11 +08:00
父节点 79ca308446
当前提交 43a11b1f7d

查看文件

@ -64,7 +64,7 @@ interface ImApi {
@GET("api/im/messages/history/{toId}") @GET("api/im/messages/history/{toId}")
suspend fun fetchHistory( suspend fun fetchHistory(
@Path("toId") toId: String, @Path("toId") toId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("msgType") msgType: String? = null, @Query("msgType") msgType: String? = null,
@Query("keyword") keyword: String? = null, @Query("keyword") keyword: String? = null,
@Query("startTime") startTime: String? = null, @Query("startTime") startTime: String? = null,
@ -76,7 +76,7 @@ interface ImApi {
@GET("api/im/messages/group-history/{groupId}") @GET("api/im/messages/group-history/{groupId}")
suspend fun fetchGroupHistory( suspend fun fetchGroupHistory(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("msgType") msgType: String? = null, @Query("msgType") msgType: String? = null,
@Query("keyword") keyword: String? = null, @Query("keyword") keyword: String? = null,
@Query("startTime") startTime: String? = null, @Query("startTime") startTime: String? = null,
@ -86,31 +86,31 @@ interface ImApi {
): ApiResponse<PageResult<ImMessage>> ): ApiResponse<PageResult<ImMessage>>
@GET("api/im/groups") @GET("api/im/groups")
suspend fun listGroups(("appKey") appKey: String): ApiResponse<List<ImGroup>> suspend fun listGroups(@Query("appKey") appKey: String): ApiResponse<List<ImGroup>>
@GET("api/im/groups/public") @GET("api/im/groups/public")
suspend fun listPublicGroups( suspend fun listPublicGroups(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("keyword") keyword: String? = null, @Query("keyword") keyword: String? = null,
): ApiResponse<List<ImGroup>> ): ApiResponse<List<ImGroup>>
@GET("api/im/admin/users/search") @GET("api/im/admin/users/search")
suspend fun searchUsers( suspend fun searchUsers(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("keyword") keyword: String, @Query("keyword") keyword: String,
@Query("size") size: Int = 20, @Query("size") size: Int = 20,
): ApiResponse<List<UserProfile>> ): ApiResponse<List<UserProfile>>
@GET("api/im/admin/groups/search") @GET("api/im/admin/groups/search")
suspend fun searchGroups( suspend fun searchGroups(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("keyword") keyword: String, @Query("keyword") keyword: String,
@Query("size") size: Int = 20, @Query("size") size: Int = 20,
): ApiResponse<List<ImGroup>> ): ApiResponse<List<ImGroup>>
@GET("api/im/admin/messages/search") @GET("api/im/admin/messages/search")
suspend fun searchMessages( suspend fun searchMessages(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("keyword") keyword: String? = null, @Query("keyword") keyword: String? = null,
@Query("chatType") chatType: String? = null, @Query("chatType") chatType: String? = null,
@Query("msgType") msgType: String? = null, @Query("msgType") msgType: String? = null,
@ -122,7 +122,7 @@ interface ImApi {
@POST("api/im/groups") @POST("api/im/groups")
suspend fun createGroup( suspend fun createGroup(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Body request: CreateGroupRequest, @Body request: CreateGroupRequest,
): ApiResponse<ImGroup> ): ApiResponse<ImGroup>
@ -132,13 +132,13 @@ interface ImApi {
@GET("api/im/groups/{groupId}/members") @GET("api/im/groups/{groupId}/members")
suspend fun listGroupMembers( suspend fun listGroupMembers(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<List<UserProfile>> ): ApiResponse<List<UserProfile>>
@GET("api/im/groups/{groupId}/members/search") @GET("api/im/groups/{groupId}/members/search")
suspend fun searchGroupMembers( suspend fun searchGroupMembers(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("keyword") keyword: String, @Query("keyword") keyword: String,
@Query("size") size: Int = 20, @Query("size") size: Int = 20,
): ApiResponse<List<UserProfile>> ): ApiResponse<List<UserProfile>>
@ -200,73 +200,73 @@ interface ImApi {
@POST("api/im/groups/{groupId}/join-requests") @POST("api/im/groups/{groupId}/join-requests")
suspend fun sendGroupJoinRequest( suspend fun sendGroupJoinRequest(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("remark") remark: String? = null, @Query("remark") remark: String? = null,
): ApiResponse<GroupJoinRequest> ): ApiResponse<GroupJoinRequest>
@GET("api/im/groups/{groupId}/join-requests") @GET("api/im/groups/{groupId}/join-requests")
suspend fun listGroupJoinRequests( suspend fun listGroupJoinRequests(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<List<GroupJoinRequest>> ): ApiResponse<List<GroupJoinRequest>>
@POST("api/im/groups/{groupId}/join-requests/{requestId}/accept") @POST("api/im/groups/{groupId}/join-requests/{requestId}/accept")
suspend fun acceptGroupJoinRequest( suspend fun acceptGroupJoinRequest(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
@Path("requestId") requestId: String, @Path("requestId") requestId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<GroupJoinRequest> ): ApiResponse<GroupJoinRequest>
@POST("api/im/groups/{groupId}/join-requests/{requestId}/reject") @POST("api/im/groups/{groupId}/join-requests/{requestId}/reject")
suspend fun rejectGroupJoinRequest( suspend fun rejectGroupJoinRequest(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
@Path("requestId") requestId: String, @Path("requestId") requestId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<GroupJoinRequest> ): ApiResponse<GroupJoinRequest>
@GET("api/im/friends") @GET("api/im/friends")
suspend fun listFriends(("appKey") appKey: String): ApiResponse<List<String>> suspend fun listFriends(@Query("appKey") appKey: String): ApiResponse<List<String>>
@POST("api/im/friends") @POST("api/im/friends")
suspend fun addFriend( suspend fun addFriend(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("friendId") friendId: String, @Query("friendId") friendId: String,
): ApiResponse<Unit> ): ApiResponse<Unit>
@DELETE("api/im/friends") @DELETE("api/im/friends")
suspend fun removeAllFriends(("appKey") appKey: String): ApiResponse<Unit> suspend fun removeAllFriends(@Query("appKey") appKey: String): ApiResponse<Unit>
@DELETE("api/im/friends/{friendId}") @DELETE("api/im/friends/{friendId}")
suspend fun removeFriend( suspend fun removeFriend(
@Path("friendId") friendId: String, @Path("friendId") friendId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<Unit> ): ApiResponse<Unit>
@PUT("api/im/friends/{friendId}/group") @PUT("api/im/friends/{friendId}/group")
suspend fun setFriendGroup( suspend fun setFriendGroup(
@Path("friendId") friendId: String, @Path("friendId") friendId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("groupName") groupName: String? = null, @Query("groupName") groupName: String? = null,
): ApiResponse<Unit> ): ApiResponse<Unit>
@GET("api/im/friends/groups") @GET("api/im/friends/groups")
suspend fun listFriendGroups(("appKey") appKey: String): ApiResponse<List<String>> suspend fun listFriendGroups(@Query("appKey") appKey: String): ApiResponse<List<String>>
@GET("api/im/friends/groups/{groupName}") @GET("api/im/friends/groups/{groupName}")
suspend fun listFriendsByGroup( suspend fun listFriendsByGroup(
@Path("groupName") groupName: String, @Path("groupName") groupName: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<List<String>> ): ApiResponse<List<String>>
@GET("api/im/friend-requests") @GET("api/im/friend-requests")
suspend fun listFriendRequests( suspend fun listFriendRequests(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("direction") direction: String = "incoming", @Query("direction") direction: String = "incoming",
): ApiResponse<List<FriendRequest>> ): ApiResponse<List<FriendRequest>>
@POST("api/im/friend-requests") @POST("api/im/friend-requests")
suspend fun sendFriendRequest( suspend fun sendFriendRequest(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("toUserId") toUserId: String, @Query("toUserId") toUserId: String,
@Query("remark") remark: String? = null, @Query("remark") remark: String? = null,
): ApiResponse<FriendRequest> ): ApiResponse<FriendRequest>
@ -274,58 +274,58 @@ interface ImApi {
@POST("api/im/friend-requests/{requestId}/accept") @POST("api/im/friend-requests/{requestId}/accept")
suspend fun acceptFriendRequest( suspend fun acceptFriendRequest(
@Path("requestId") requestId: String, @Path("requestId") requestId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<FriendRequest> ): ApiResponse<FriendRequest>
@POST("api/im/friend-requests/{requestId}/reject") @POST("api/im/friend-requests/{requestId}/reject")
suspend fun rejectFriendRequest( suspend fun rejectFriendRequest(
@Path("requestId") requestId: String, @Path("requestId") requestId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<FriendRequest> ): ApiResponse<FriendRequest>
@GET("api/im/blacklist") @GET("api/im/blacklist")
suspend fun listBlacklist(("appKey") appKey: String): ApiResponse<List<BlacklistEntry>> suspend fun listBlacklist(@Query("appKey") appKey: String): ApiResponse<List<BlacklistEntry>>
@POST("api/im/blacklist") @POST("api/im/blacklist")
suspend fun addToBlacklist( suspend fun addToBlacklist(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("blockedUserId") blockedUserId: String, @Query("blockedUserId") blockedUserId: String,
): ApiResponse<BlacklistEntry> ): ApiResponse<BlacklistEntry>
@DELETE("api/im/blacklist") @DELETE("api/im/blacklist")
suspend fun removeFromBlacklist( suspend fun removeFromBlacklist(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("blockedUserId") blockedUserId: String, @Query("blockedUserId") blockedUserId: String,
): ApiResponse<Unit> ): ApiResponse<Unit>
@GET("api/im/blacklist/check") @GET("api/im/blacklist/check")
suspend fun checkBlacklist( suspend fun checkBlacklist(
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("targetUserId") targetUserId: String, @Query("targetUserId") targetUserId: String,
): ApiResponse<BlacklistCheckResult> ): ApiResponse<BlacklistCheckResult>
@GET("api/im/accounts/{userId}") @GET("api/im/accounts/{userId}")
suspend fun getProfile( suspend fun getProfile(
@Path("userId") userId: String, @Path("userId") userId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<UserProfile> ): ApiResponse<UserProfile>
@PUT("api/im/accounts/{userId}") @PUT("api/im/accounts/{userId}")
suspend fun updateProfile( suspend fun updateProfile(
@Path("userId") userId: String, @Path("userId") userId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("nickname") nickname: String? = null, @Query("nickname") nickname: String? = null,
@Query("avatar") avatar: String? = null, @Query("avatar") avatar: String? = null,
@Query("gender") gender: String? = null, @Query("gender") gender: String? = null,
): ApiResponse<UserProfile> ): ApiResponse<UserProfile>
@GET("api/im/conversations") @GET("api/im/conversations")
suspend fun listConversations(("appKey") appKey: String): ApiResponse<List<ConversationData>> suspend fun listConversations(@Query("appKey") appKey: String): ApiResponse<List<ConversationData>>
@PUT("api/im/conversations/{targetId}/pinned") @PUT("api/im/conversations/{targetId}/pinned")
suspend fun setConversationPinned( suspend fun setConversationPinned(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
@Query("pinned") pinned: Boolean, @Query("pinned") pinned: Boolean,
): ApiResponse<Unit> ): ApiResponse<Unit>
@ -333,7 +333,7 @@ interface ImApi {
@PUT("api/im/conversations/{targetId}/muted") @PUT("api/im/conversations/{targetId}/muted")
suspend fun setConversationMuted( suspend fun setConversationMuted(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
@Query("muted") muted: Boolean, @Query("muted") muted: Boolean,
): ApiResponse<Unit> ): ApiResponse<Unit>
@ -341,7 +341,7 @@ interface ImApi {
@PUT("api/im/conversations/{targetId}/hidden") @PUT("api/im/conversations/{targetId}/hidden")
suspend fun setConversationHidden( suspend fun setConversationHidden(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
@Query("hidden") hidden: Boolean, @Query("hidden") hidden: Boolean,
): ApiResponse<Unit> ): ApiResponse<Unit>
@ -349,44 +349,44 @@ interface ImApi {
@PUT("api/im/conversations/{targetId}/group") @PUT("api/im/conversations/{targetId}/group")
suspend fun setConversationGroup( suspend fun setConversationGroup(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
@Query("groupName") groupName: String? = null, @Query("groupName") groupName: String? = null,
): ApiResponse<Unit> ): ApiResponse<Unit>
@GET("api/im/conversation-groups") @GET("api/im/conversation-groups")
suspend fun listConversationGroups(("appKey") appKey: String): ApiResponse<List<String>> suspend fun listConversationGroups(@Query("appKey") appKey: String): ApiResponse<List<String>>
@GET("api/im/conversation-groups/{groupName}") @GET("api/im/conversation-groups/{groupName}")
suspend fun listConversationGroupItems( suspend fun listConversationGroupItems(
@Path("groupName") groupName: String, @Path("groupName") groupName: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<List<ConversationGroupItem>> ): ApiResponse<List<ConversationGroupItem>>
@PUT("api/im/conversations/{targetId}/read") @PUT("api/im/conversations/{targetId}/read")
suspend fun markRead( suspend fun markRead(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
): ApiResponse<Unit> ): ApiResponse<Unit>
@PUT("api/im/messages/{messageId}") @PUT("api/im/messages/{messageId}")
suspend fun editMessage( suspend fun editMessage(
@Path("messageId") messageId: String, @Path("messageId") messageId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Body request: EditMessageRequest, @Body request: EditMessageRequest,
): ApiResponse<ImMessage> ): ApiResponse<ImMessage>
@POST("api/im/messages/{messageId}/revoke") @POST("api/im/messages/{messageId}/revoke")
suspend fun revokeMessage( suspend fun revokeMessage(
@Path("messageId") messageId: String, @Path("messageId") messageId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
): ApiResponse<ImMessage> ): ApiResponse<ImMessage>
@PUT("api/im/conversations/{targetId}/draft") @PUT("api/im/conversations/{targetId}/draft")
suspend fun setDraft( suspend fun setDraft(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
@Query("draft") draft: String, @Query("draft") draft: String,
): ApiResponse<Unit> ): ApiResponse<Unit>
@ -394,47 +394,47 @@ interface ImApi {
@DELETE("api/im/conversations/{targetId}") @DELETE("api/im/conversations/{targetId}")
suspend fun deleteConversation( suspend fun deleteConversation(
@Path("targetId") targetId: String, @Path("targetId") targetId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Query("chatType") chatType: String, @Query("chatType") chatType: String,
): ApiResponse<Unit> ): ApiResponse<Unit>
@POST("api/im/admin/groups/{groupId}/read-receipts") @POST("api/im/admin/groups/{groupId}/read-receipts")
suspend fun adminGroupReadReceipts( suspend fun adminGroupReadReceipts(
@Path("groupId") groupId: String, @Path("groupId") groupId: String,
("appKey") appKey: String, @Query("appKey") appKey: String,
@Body request: GroupReadReceiptRequest, @Body request: GroupReadReceiptRequest,
): ApiResponse<List<GroupReadReceiptSummary>> ): ApiResponse<List<GroupReadReceiptSummary>>
@POST("api/im/friends/batch") @POST("api/im/friends/batch")
suspend fun batchAddFriends(("appKey") appKey: String, @Body request: BatchFriendRequest): ApiResponse<Unit> suspend fun batchAddFriends(@Query("appKey") appKey: String, @Body request: BatchFriendRequest): ApiResponse<Unit>
@POST("api/im/friends/batch/remove") @POST("api/im/friends/batch/remove")
suspend fun batchRemoveFriends(("appKey") appKey: String, @Body request: BatchFriendRequest): ApiResponse<Unit> suspend fun batchRemoveFriends(@Query("appKey") appKey: String, @Body request: BatchFriendRequest): ApiResponse<Unit>
@POST("api/im/friend-requests/batch/accept") @POST("api/im/friend-requests/batch/accept")
suspend fun batchAcceptFriendRequests(("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit> suspend fun batchAcceptFriendRequests(@Query("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit>
@POST("api/im/friend-requests/batch/reject") @POST("api/im/friend-requests/batch/reject")
suspend fun batchRejectFriendRequests(("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit> suspend fun batchRejectFriendRequests(@Query("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit>
@POST("api/im/groups/{groupId}/members/batch") @POST("api/im/groups/{groupId}/members/batch")
suspend fun batchAddGroupMembers(@Path("groupId") groupId: String, ("appKey") appKey: String, @Body request: BatchUserIds): ApiResponse<Unit> suspend fun batchAddGroupMembers(@Path("groupId") groupId: String, @Query("appKey") appKey: String, @Body request: BatchUserIds): ApiResponse<Unit>
@POST("api/im/groups/{groupId}/members/batch/remove") @POST("api/im/groups/{groupId}/members/batch/remove")
suspend fun batchRemoveGroupMembers(@Path("groupId") groupId: String, ("appKey") appKey: String, @Body request: BatchUserIds): ApiResponse<Unit> suspend fun batchRemoveGroupMembers(@Path("groupId") groupId: String, @Query("appKey") appKey: String, @Body request: BatchUserIds): ApiResponse<Unit>
@POST("api/im/groups/{groupId}/join-requests/batch/accept") @POST("api/im/groups/{groupId}/join-requests/batch/accept")
suspend fun batchAcceptGroupJoinRequests(@Path("groupId") groupId: String, ("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit> suspend fun batchAcceptGroupJoinRequests(@Path("groupId") groupId: String, @Query("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit>
@POST("api/im/groups/{groupId}/join-requests/batch/reject") @POST("api/im/groups/{groupId}/join-requests/batch/reject")
suspend fun batchRejectGroupJoinRequests(@Path("groupId") groupId: String, ("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit> suspend fun batchRejectGroupJoinRequests(@Path("groupId") groupId: String, @Query("appKey") appKey: String, @Body request: BatchRequestIds): ApiResponse<Unit>
@PUT("api/im/groups/{groupId}/members/{userId}/info") @PUT("api/im/groups/{groupId}/members/{userId}/info")
suspend fun modifyGroupMemberInfo(@Path("groupId") groupId: String, @Path("userId") userId: String, ("appKey") appKey: String, @Body request: ModifyMemberInfoRequest): ApiResponse<Unit> suspend fun modifyGroupMemberInfo(@Path("groupId") groupId: String, @Path("userId") userId: String, @Query("appKey") appKey: String, @Body request: ModifyMemberInfoRequest): ApiResponse<Unit>
@GET("api/im/messages/offline/count") @GET("api/im/messages/offline/count")
suspend fun offlineMessageCount(("appKey") appKey: String): ApiResponse<Map<String, Int>> suspend fun offlineMessageCount(@Query("appKey") appKey: String): ApiResponse<Map<String, Int>>
@POST("api/im/messages/offline") @POST("api/im/messages/offline")
suspend fun syncOfflineMessages(("appKey") appKey: String): ApiResponse<List<ImMessage>> suspend fun syncOfflineMessages(@Query("appKey") appKey: String): ApiResponse<List<ImMessage>>
} }