feat: centralise session token
Signed-off-by: Infi <wingit@geist.ga>
This commit is contained in:
parent
dc9de08bc5
commit
6a09467028
|
|
@ -83,6 +83,15 @@ val RevoltHttp = HttpClient(OkHttp) {
|
||||||
|
|
||||||
install(Logging) { level = LogLevel.INFO }
|
install(Logging) { level = LogLevel.INFO }
|
||||||
|
|
||||||
|
engine {
|
||||||
|
addInterceptor { chain ->
|
||||||
|
val request = chain.request().newBuilder()
|
||||||
|
.header(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
||||||
|
.build()
|
||||||
|
chain.proceed(request)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defaultRequest {
|
defaultRequest {
|
||||||
url(REVOLT_BASE)
|
url(REVOLT_BASE)
|
||||||
header("User-Agent", buildUserAgent())
|
header("User-Agent", buildUserAgent())
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package chat.revolt.api.routes.channel
|
package chat.revolt.api.routes.channel
|
||||||
|
|
||||||
import chat.revolt.api.RevoltAPI
|
|
||||||
import chat.revolt.api.RevoltError
|
import chat.revolt.api.RevoltError
|
||||||
import chat.revolt.api.RevoltHttp
|
import chat.revolt.api.RevoltHttp
|
||||||
import chat.revolt.api.RevoltJson
|
import chat.revolt.api.RevoltJson
|
||||||
|
|
@ -30,8 +29,6 @@ suspend fun fetchMessagesFromChannel(
|
||||||
sort: String? = null
|
sort: String? = null
|
||||||
): MessagesInChannel {
|
): MessagesInChannel {
|
||||||
val response = RevoltHttp.get("/channels/$channelId/messages") {
|
val response = RevoltHttp.get("/channels/$channelId/messages") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
|
|
||||||
parameter("limit", limit)
|
parameter("limit", limit)
|
||||||
parameter("include_users", includeUsers)
|
parameter("include_users", includeUsers)
|
||||||
|
|
||||||
|
|
@ -88,8 +85,6 @@ suspend fun sendMessage(
|
||||||
attachments: List<String>? = null,
|
attachments: List<String>? = null,
|
||||||
): String {
|
): String {
|
||||||
val response = RevoltHttp.post("/channels/$channelId/messages") {
|
val response = RevoltHttp.post("/channels/$channelId/messages") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
|
|
||||||
contentType(ContentType.Application.Json)
|
contentType(ContentType.Application.Json)
|
||||||
setBody(
|
setBody(
|
||||||
SendMessageBody(
|
SendMessageBody(
|
||||||
|
|
@ -111,8 +106,6 @@ suspend fun editMessage(
|
||||||
newContent: String? = null,
|
newContent: String? = null,
|
||||||
) {
|
) {
|
||||||
val response = RevoltHttp.patch("/channels/$channelId/messages/$messageId") {
|
val response = RevoltHttp.patch("/channels/$channelId/messages/$messageId") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
|
|
||||||
contentType(ContentType.Application.Json)
|
contentType(ContentType.Application.Json)
|
||||||
setBody(
|
setBody(
|
||||||
EditMessageBody(
|
EditMessageBody(
|
||||||
|
|
@ -131,15 +124,11 @@ suspend fun editMessage(
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun ackChannel(channelId: String, messageId: String = ULID.makeNext()) {
|
suspend fun ackChannel(channelId: String, messageId: String = ULID.makeNext()) {
|
||||||
RevoltHttp.put("/channels/$channelId/ack/$messageId") {
|
RevoltHttp.put("/channels/$channelId/ack/$messageId")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchSingleChannel(channelId: String): Channel {
|
suspend fun fetchSingleChannel(channelId: String): Channel {
|
||||||
val response = RevoltHttp.get("/channels/$channelId") {
|
val response = RevoltHttp.get("/channels/$channelId")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
return RevoltJson.decodeFromString(
|
return RevoltJson.decodeFromString(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package chat.revolt.api.routes.invites
|
package chat.revolt.api.routes.invites
|
||||||
|
|
||||||
import chat.revolt.api.RevoltAPI
|
|
||||||
import chat.revolt.api.RevoltError
|
import chat.revolt.api.RevoltError
|
||||||
import chat.revolt.api.RevoltHttp
|
import chat.revolt.api.RevoltHttp
|
||||||
import chat.revolt.api.RevoltJson
|
import chat.revolt.api.RevoltJson
|
||||||
|
|
@ -13,9 +12,7 @@ import io.ktor.client.statement.bodyAsText
|
||||||
import kotlinx.serialization.SerializationException
|
import kotlinx.serialization.SerializationException
|
||||||
|
|
||||||
suspend fun fetchInviteByCode(code: String): RsResult<Invite, RevoltError> {
|
suspend fun fetchInviteByCode(code: String): RsResult<Invite, RevoltError> {
|
||||||
val response = RevoltHttp.get("/invites/$code") {
|
val response = RevoltHttp.get("/invites/$code")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -30,9 +27,7 @@ suspend fun fetchInviteByCode(code: String): RsResult<Invite, RevoltError> {
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun joinInviteByCode(code: String): RsResult<InviteJoined, RevoltError> {
|
suspend fun joinInviteByCode(code: String): RsResult<InviteJoined, RevoltError> {
|
||||||
val response = RevoltHttp.post("/invites/$code") {
|
val response = RevoltHttp.post("/invites/$code")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,19 @@
|
||||||
package chat.revolt.api.routes.safety
|
package chat.revolt.api.routes.safety
|
||||||
|
|
||||||
import chat.revolt.api.RevoltAPI
|
|
||||||
import chat.revolt.api.RevoltError
|
import chat.revolt.api.RevoltError
|
||||||
import chat.revolt.api.RevoltHttp
|
import chat.revolt.api.RevoltHttp
|
||||||
import chat.revolt.api.RevoltJson
|
import chat.revolt.api.RevoltJson
|
||||||
import chat.revolt.api.schemas.*
|
import chat.revolt.api.schemas.ContentReportReason
|
||||||
import io.ktor.client.request.*
|
import chat.revolt.api.schemas.FullMessageReport
|
||||||
import io.ktor.client.statement.*
|
import chat.revolt.api.schemas.FullServerReport
|
||||||
|
import chat.revolt.api.schemas.FullUserReport
|
||||||
|
import chat.revolt.api.schemas.MessageReport
|
||||||
|
import chat.revolt.api.schemas.ServerReport
|
||||||
|
import chat.revolt.api.schemas.UserReport
|
||||||
|
import chat.revolt.api.schemas.UserReportReason
|
||||||
|
import io.ktor.client.request.post
|
||||||
|
import io.ktor.client.request.setBody
|
||||||
|
import io.ktor.client.statement.bodyAsText
|
||||||
import kotlinx.serialization.SerializationException
|
import kotlinx.serialization.SerializationException
|
||||||
|
|
||||||
suspend fun putMessageReport(
|
suspend fun putMessageReport(
|
||||||
|
|
@ -24,7 +31,6 @@ suspend fun putMessageReport(
|
||||||
)
|
)
|
||||||
|
|
||||||
val response = RevoltHttp.post("/safety/report") {
|
val response = RevoltHttp.post("/safety/report") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
setBody(
|
setBody(
|
||||||
RevoltJson.encodeToString(
|
RevoltJson.encodeToString(
|
||||||
FullMessageReport.serializer(),
|
FullMessageReport.serializer(),
|
||||||
|
|
@ -57,7 +63,6 @@ suspend fun putServerReport(
|
||||||
)
|
)
|
||||||
|
|
||||||
val response = RevoltHttp.post("/safety/report") {
|
val response = RevoltHttp.post("/safety/report") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
setBody(
|
setBody(
|
||||||
RevoltJson.encodeToString(
|
RevoltJson.encodeToString(
|
||||||
FullServerReport.serializer(),
|
FullServerReport.serializer(),
|
||||||
|
|
@ -90,7 +95,6 @@ suspend fun putUserReport(
|
||||||
)
|
)
|
||||||
|
|
||||||
val response = RevoltHttp.post("/safety/report") {
|
val response = RevoltHttp.post("/safety/report") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
setBody(
|
setBody(
|
||||||
RevoltJson.encodeToString(
|
RevoltJson.encodeToString(
|
||||||
FullUserReport.serializer(),
|
FullUserReport.serializer(),
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,7 @@ data class FetchMembersResponse(
|
||||||
)
|
)
|
||||||
|
|
||||||
suspend fun ackServer(serverId: String) {
|
suspend fun ackServer(serverId: String) {
|
||||||
RevoltHttp.put("/servers/$serverId/ack") {
|
RevoltHttp.put("/servers/$serverId/ack")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchMembers(
|
suspend fun fetchMembers(
|
||||||
|
|
@ -32,8 +30,6 @@ suspend fun fetchMembers(
|
||||||
pure: Boolean = false
|
pure: Boolean = false
|
||||||
): FetchMembersResponse {
|
): FetchMembersResponse {
|
||||||
val response = RevoltHttp.get("/servers/$serverId/members") {
|
val response = RevoltHttp.get("/servers/$serverId/members") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
|
|
||||||
parameter("exclude_offline", !includeOffline)
|
parameter("exclude_offline", !includeOffline)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,9 +63,7 @@ suspend fun fetchMembers(
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchMember(serverId: String, userId: String, pure: Boolean = false): Member {
|
suspend fun fetchMember(serverId: String, userId: String, pure: Boolean = false): Member {
|
||||||
val response = RevoltHttp.get("/servers/$serverId/members/$userId") {
|
val response = RevoltHttp.get("/servers/$serverId/members/$userId")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val error = RevoltJson.decodeFromString(RevoltError.serializer(), response.bodyAsText())
|
val error = RevoltJson.decodeFromString(RevoltError.serializer(), response.bodyAsText())
|
||||||
|
|
@ -91,8 +85,6 @@ suspend fun fetchMember(serverId: String, userId: String, pure: Boolean = false)
|
||||||
|
|
||||||
suspend fun leaveOrDeleteServer(serverId: String, leaveSilently: Boolean = false) {
|
suspend fun leaveOrDeleteServer(serverId: String, leaveSilently: Boolean = false) {
|
||||||
RevoltHttp.delete("/servers/$serverId") {
|
RevoltHttp.delete("/servers/$serverId") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
|
|
||||||
parameter("leave_silently", leaveSilently)
|
parameter("leave_silently", leaveSilently)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -56,8 +56,6 @@ suspend fun getKeys(vararg keys: String): Map<String, SyncedSetting> {
|
||||||
|
|
||||||
suspend fun setKey(key: String, value: String) {
|
suspend fun setKey(key: String, value: String) {
|
||||||
RevoltHttp.post("/sync/settings/set") {
|
RevoltHttp.post("/sync/settings/set") {
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
|
|
||||||
parameter("timestamp", System.currentTimeMillis())
|
parameter("timestamp", System.currentTimeMillis())
|
||||||
|
|
||||||
// format: {"key": "value"}
|
// format: {"key": "value"}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,14 @@
|
||||||
package chat.revolt.api.routes.sync
|
package chat.revolt.api.routes.sync
|
||||||
|
|
||||||
import chat.revolt.api.RevoltAPI
|
|
||||||
import chat.revolt.api.RevoltHttp
|
import chat.revolt.api.RevoltHttp
|
||||||
import chat.revolt.api.RevoltJson
|
import chat.revolt.api.RevoltJson
|
||||||
import chat.revolt.api.schemas.ChannelUnreadResponse
|
import chat.revolt.api.schemas.ChannelUnreadResponse
|
||||||
import io.ktor.client.request.*
|
import io.ktor.client.request.get
|
||||||
import io.ktor.client.statement.*
|
import io.ktor.client.statement.bodyAsText
|
||||||
import kotlinx.serialization.builtins.ListSerializer
|
import kotlinx.serialization.builtins.ListSerializer
|
||||||
|
|
||||||
suspend fun syncUnreads(): List<ChannelUnreadResponse> {
|
suspend fun syncUnreads(): List<ChannelUnreadResponse> {
|
||||||
val response = RevoltHttp.get("/sync/unreads") {
|
val response = RevoltHttp.get("/sync/unreads")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
return RevoltJson.decodeFromString(
|
return RevoltJson.decodeFromString(
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@ import chat.revolt.api.RevoltAPI
|
||||||
import chat.revolt.api.RevoltError
|
import chat.revolt.api.RevoltError
|
||||||
import chat.revolt.api.RevoltHttp
|
import chat.revolt.api.RevoltHttp
|
||||||
import chat.revolt.api.RevoltJson
|
import chat.revolt.api.RevoltJson
|
||||||
import io.ktor.client.request.*
|
import io.ktor.client.request.delete
|
||||||
import io.ktor.client.statement.*
|
import io.ktor.client.request.put
|
||||||
|
import io.ktor.client.statement.bodyAsText
|
||||||
import kotlinx.serialization.SerializationException
|
import kotlinx.serialization.SerializationException
|
||||||
|
import kotlin.collections.set
|
||||||
|
|
||||||
suspend fun blockUser(userId: String) {
|
suspend fun blockUser(userId: String) {
|
||||||
val response = RevoltHttp.put("/users/$userId/block") {
|
val response = RevoltHttp.put("/users/$userId/block")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -26,9 +26,7 @@ suspend fun blockUser(userId: String) {
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun unblockUser(userId: String) {
|
suspend fun unblockUser(userId: String) {
|
||||||
val response = RevoltHttp.delete("/users/$userId/block") {
|
val response = RevoltHttp.delete("/users/$userId/block")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,7 @@ import io.ktor.client.statement.bodyAsText
|
||||||
import kotlinx.serialization.SerializationException
|
import kotlinx.serialization.SerializationException
|
||||||
|
|
||||||
suspend fun fetchSelf(): User {
|
suspend fun fetchSelf(): User {
|
||||||
val response = RevoltHttp.get("/users/@me") {
|
val response = RevoltHttp.get("/users/@me")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
.bodyAsText()
|
.bodyAsText()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -36,9 +34,7 @@ suspend fun fetchSelf(): User {
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchUser(id: String): User {
|
suspend fun fetchUser(id: String): User {
|
||||||
val res = RevoltHttp.get("/users/$id") {
|
val res = RevoltHttp.get("/users/$id")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (res.status.value == 404) {
|
if (res.status.value == 404) {
|
||||||
return User.getPlaceholder(id)
|
return User.getPlaceholder(id)
|
||||||
|
|
@ -73,9 +69,7 @@ suspend fun addUserIfUnknown(id: String) {
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchUserProfile(id: String): Profile {
|
suspend fun fetchUserProfile(id: String): Profile {
|
||||||
val res = RevoltHttp.get("/users/$id/profile") {
|
val res = RevoltHttp.get("/users/$id/profile")
|
||||||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
|
||||||
}
|
|
||||||
|
|
||||||
val response = res.bodyAsText()
|
val response = res.bodyAsText()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue