Skip to content

Commit 229bacf

Browse files
committed
Read talk updates with payload
1 parent f5d528a commit 229bacf

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

src/main/kotlin/no/java/moresleep/HttpMethod.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ enum class HttpMethod {
2424
Pair("/data/session/:id", ReadOneTalk::class),
2525
Pair("/data/conference/:conferenceId/session", ReadAllTalks::class),
2626
Pair("/data/conference/:conferenceId/substatistics", TalkSubmissionStatistics::class),
27+
Pair("/data/fullTalkUpdate/:id",TalkUpdatesWithPayload::class),
2728

2829
Pair("/data/submitter/:email/session", ReadTalksBySubmitter::class),
2930
Pair("/public/allSessions/:slug", ReadAllPublicTalks::class),

src/main/kotlin/no/java/moresleep/talk/TalkRepo.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,20 @@ class TalkUpdates(
6060
)
6161
}
6262

63+
class TalkUpdateWithPayload(
64+
val talkid: String,
65+
val updatedBy: String,
66+
val updatedAt:String,
67+
val payload:JsonObject?
68+
) {
69+
constructor(resultSet: ResultSet):this(
70+
updatedBy = SystemId.valueOf(resultSet.requiredString("updatedby")).name,
71+
updatedAt = resultSet.requiredLocalDateTime("updatedat").toString(),
72+
talkid = resultSet.requiredString("talkid"),
73+
payload = resultSet.getString("payload")?.let { JsonObject.parse(it) }
74+
)
75+
}
76+
6377

6478
object TalkRepo {
6579
fun addNewTalk(talkid:String,conferenceid:String,status: SessionStatus,postedBy:String?,data:JsonObject,lastUpdated: LocalDateTime, publicdata:JsonObject?,publishedAt:LocalDateTime?) {
@@ -155,9 +169,16 @@ object TalkRepo {
155169
statement.allFromQuery { TalkUpdates(it) }
156170
}
157171

172+
fun updatesWithPayloadOnTalk(talkid:String):List<TalkUpdateWithPayload> = ServiceExecutor.connection().preparedStatement("select * from talkupdate where talkid = ? order by updatedat") { statement ->
173+
statement.setString(1,talkid)
174+
statement.allFromQuery { TalkUpdateWithPayload(it) }
175+
}
176+
158177
fun talkUpdatesOnConference(conferenceid: String) = ServiceExecutor.connection().preparedStatement("select * from talkupdate where conferenceid = ? order by updatedat") { statement ->
159178
statement.setString(1,conferenceid)
160179
statement.allFromQuery { TalkUpdates(it) }
161180
}
162181

182+
183+
163184
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package no.java.moresleep.talk
2+
3+
import no.java.moresleep.*
4+
5+
class TalkUpdateSummary(
6+
val updateList:List<TalkUpdateWithPayload>
7+
): ServiceResult()
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package no.java.moresleep.talk
2+
3+
import no.java.moresleep.*
4+
5+
class TalkUpdatesWithPayload:Command {
6+
override fun execute(systemUser: SystemUser, parameters: Map<String, String>): TalkUpdateSummary {
7+
val talkid = parameters["id"]?:throw BadRequest("Missing id")
8+
val updateList = TalkRepo.updatesWithPayloadOnTalk(talkid)
9+
return TalkUpdateSummary(updateList)
10+
}
11+
12+
override val requiredAccess: UserType = UserType.READ_ONLY
13+
14+
}

0 commit comments

Comments
 (0)