From 5d7273d2f15024b00fa036c9d26bb1c1370cc4fc Mon Sep 17 00:00:00 2001
From: ryoii <ryoii@foxmail.com>
Date: Wed, 5 Feb 2020 22:00:05 +0800
Subject: [PATCH] Get friendList, GroupList and MemberList

---
 .../mamoe/mirai/api/http/route/BaseRoute.kt   |  1 +
 .../mirai/api/http/route/InfoRouteModule.kt   | 30 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/InfoRouteModule.kt

diff --git a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/BaseRoute.kt b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/BaseRoute.kt
index 174ccd880..e74d4f570 100644
--- a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/BaseRoute.kt
+++ b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/BaseRoute.kt
@@ -27,6 +27,7 @@ fun Application.mirai() {
 
     authModule()
     messageModule()
+    infoModule()
 }
 
 /**
diff --git a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/InfoRouteModule.kt b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/InfoRouteModule.kt
new file mode 100644
index 000000000..847f88d79
--- /dev/null
+++ b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/InfoRouteModule.kt
@@ -0,0 +1,30 @@
+package net.mamoe.mirai.api.http.route
+
+import io.ktor.application.Application
+import io.ktor.application.call
+import io.ktor.routing.routing
+import net.mamoe.mirai.api.http.dto.GroupDTO
+import net.mamoe.mirai.api.http.dto.MemberDTO
+import net.mamoe.mirai.api.http.dto.QQDTO
+import net.mamoe.mirai.api.http.dto.toJson
+import net.mamoe.mirai.contact.toMutableList
+
+fun Application.infoModule() {
+    routing {
+
+        miraiGet("/friendList") {
+            val ls = it.bot.qqs.toMutableList().map { qq -> QQDTO(qq) }
+            call.respondJson(ls.toJson())
+        }
+
+        miraiGet("/groupList") {
+            val ls = it.bot.groups.toMutableList().map { group -> GroupDTO(group) }
+            call.respondJson(ls.toJson())
+        }
+
+        miraiGet("/memberList") {
+            val ls = it.bot.getGroup(paramOrNull("target")).members.toMutableList().map { member -> MemberDTO(member) }
+            call.respondJson(ls.toJson())
+        }
+    }
+}
\ No newline at end of file