Provide back-compatibility in school discover

This commit is contained in:
Mikołaj Pich 2018-11-17 14:02:40 +01:00
parent b39b9f8bba
commit 78add470ba
No known key found for this signature in database
GPG Key ID: F62B26E36D4C4BAA
3 changed files with 22 additions and 10 deletions

View File

@ -5,6 +5,7 @@ import io.github.wulkanowy.api.VulcanException
import io.github.wulkanowy.api.generic.School
import org.jsoup.nodes.Document
import org.slf4j.LoggerFactory
import java.net.URL
class StartPage(val client: Client) {
@ -13,7 +14,7 @@ class StartPage(val client: Client) {
fun getSchools(startPage: Document): MutableList<School> {
val schoolList = mutableListOf<School>()
val snpLinks = startPage.select(".panel.linkownia.pracownik.klient .appLink a")
val snpLinks = startPage.select(".panel.linkownia.pracownik.klient a[href*=\"uonetplus-opiekun\"]")
logger.debug("SnP links: {}", snpLinks.size)
@ -24,7 +25,7 @@ class StartPage(val client: Client) {
snpLinks.map {
schoolList.add(School(
it.text(),
getExtractedIdFromUrl(it.attr("href")),
getExtractedSchoolSymbolFromUrl(it.attr("href")),
it == snpLinks.first()
))
}
@ -32,10 +33,10 @@ class StartPage(val client: Client) {
return schoolList
}
internal fun getExtractedIdFromUrl(snpPageUrl: String): String {
val path = snpPageUrl.split(client.host).getOrNull(1)?.split("/")
internal fun getExtractedSchoolSymbolFromUrl(snpPageUrl: String): String {
val path = URL(snpPageUrl).path.split("/")
if (6 != path?.size) {
if (6 != path.size) {
logger.error("Expected snp url, got {}", snpPageUrl)
throw VulcanException("Na pewno używasz konta z dostępem do Witryny ucznia i rodzica?")
}

View File

@ -51,18 +51,18 @@ class StartPageTest {
@Test
fun getExtractedIDStandardTest() {
assertEquals("123456", StartPage(client)
.getExtractedIdFromUrl("https://uonetplus-opiekun.fakelog.cf/powiat/123456/Start/Index/"))
.getExtractedSchoolSymbolFromUrl("https://uonetplus-opiekun.fakelog.cf/powiat/123456/Start/Index/"))
}
@Test
fun getExtractedIDDemoTest() {
assertEquals("demo12345", StartPage(client)
.getExtractedIdFromUrl("https://uonetplus-opiekun.fakelog.cf/demoupowiat/demo12345/Start/Index/"))
.getExtractedSchoolSymbolFromUrl("https://uonetplus-opiekun.fakelog.cf/demoupowiat/demo12345/Start/Index/"))
}
@Test(expected = VulcanException::class)
fun getExtractedIDNotLoggedTest() {
assertEquals("123", StartPage(client)
.getExtractedIdFromUrl("https://uonetplus.NOTfakelog.cf/powiat/"))
.getExtractedSchoolSymbolFromUrl("https://uonetplus.NOTfakelog.cf/powiat/"))
}
}

View File

@ -10,14 +10,25 @@
<div class="content">
<div class="panel linkownia pracownik klient">
<div class="appLink">
<a href="https://uonetplus-opiekun.fakelog.cf/symbol/534213/Start/Index/">
<a href="http://uonetplus-opiekun.fakelog.localhost:3000/default/534213/Start/Index/">
<div class="imagedHeader directLink">
<div id="idEmptyAppUczeń">
<div id="idEmptyAppUczen">
<div class="name">Uczeń</div>
</div>
</div>
</a>
</div>
<div class="newAppLink">
<div class="link">
<a href="http://uonetplus-uczen.fakelog.localhost:3000/default/012345/">
<div class="imagedHeader directLink">
<div id="idEmptyAppUczenExt">
<div class="name">Uczeń</div>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>