diff --git a/README.md b/README.md index f91203d..da82d86 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ S-DOM is a plugin for IntelliJ IDEA that allows you to submit your code to the D It is currently in development and not yet ready for use. ## TODO -- Fix ContentConvertException when trying to log in - Implement submissions - Implement reading results - Implement reading problems (and testcases) diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt index 4445e96..f9d394f 100644 --- a/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/SDom.kt @@ -77,7 +77,11 @@ object SDom { suspend fun login(username: String, password: String, url: String) { val fixedApi = url.trimEnd('/') + "/v4/" - val result: SDLoginResult = client.get(url = Url(fixedApi + "user")).body() + val result: SDLoginResult = client.get { + basicAuth(username, password) + url(fixedApi + "user") + }.body() + if (!result.enabled) throw Exception("User is not enabled") SDCredentials.credentials = Pair(username, password) SDCredentials.url = fixedApi diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt index b34715b..9b9c0a4 100644 --- a/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt @@ -1,6 +1,5 @@ package io.gitlab.jfronny.sdom.model -import kotlinx.datetime.LocalDateTime import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDLoginResult.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDLoginResult.kt index 81868f7..36d2bca 100644 --- a/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDLoginResult.kt +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDLoginResult.kt @@ -5,18 +5,18 @@ import kotlinx.serialization.Serializable @Serializable data class SDLoginResult( - @SerialName("last_login_time") val lastLoginTime: String, // DateTime - @SerialName("last_api_login_time") val lastApiLoginTime: String, // DateTime - @SerialName("first_login_time") val firstLoginTime: String, // DateTime - val team: String, - @SerialName("team_id") val teamId: Int, + @SerialName("last_login_time") val lastLoginTime: String?, // DateTime + @SerialName("last_api_login_time") val lastApiLoginTime: String?, // DateTime + @SerialName("first_login_time") val firstLoginTime: String?, // DateTime + val team: String?, + @SerialName("team_id") val teamId: Int?, val roles: List, - val type: String, + val type: String?, val id: String, val username: String, val name: String, - val email: String, - @SerialName("last_ip") val lastIp: String, - val ip: String, + val email: String?, + @SerialName("last_ip") val lastIp: String?, + val ip: String?, val enabled: Boolean )