Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions core/src/main/kotlin/dev/usbharu/multim/api/StringIdAccountApi.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
package dev.usbharu.multim.api

import com.github.michaelbull.result.Err
import com.github.michaelbull.result.Result
import dev.usbharu.multim.Logger
import dev.usbharu.multim.error.ErrorType
import dev.usbharu.multim.error.MultiMError
import dev.usbharu.multim.error.MultiMResult
import dev.usbharu.multim.model.*

interface StringIdAccountApi : AccountApi {
suspend fun userTimeline(
accountId: String,
since: String? = null,
until: String? = null,
): MultiMResult<List<Status>>

suspend fun statuses(
accountId: String,
includeRepost: Boolean = false
): MultiMResult<List<Status>>

suspend fun profile(accountId: String): MultiMResult<Profile>
}

object NotImplStringIdAccountApi : StringIdAccountApi {
override suspend fun userTimeline(
accountId: String,
since: String?,
until: String?
): MultiMResult<List<Status>> {
Logger.debug("Account Api","Not impl account api. userTimeline by id.")
return Err(MultiMError("userTimeline by id not implements", null, ErrorType.NOT_IMPL))
}

override suspend fun userTimeline(
account: Account,
since: StatusId?,
until: StatusId?
): Result<List<Status>, MultiMError> {
Logger.debug("Account Api","Not impl account api. userTimeline.")
return Err(MultiMError("userTimeline not implements", null, ErrorType.NOT_IMPL))
}

override suspend fun statuses(
accountId: String,
includeRepost: Boolean
): MultiMResult<List<Status>> {
Logger.debug("Account Api","Not impl account api. statuses by id.")
return Err(MultiMError("statuses by id not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun follow(account: Account): Result<Unit, MultiMError> {
Logger.debug("Account Api","Not impl account api. follow.")
return Err(MultiMError("follow not implements", null, ErrorType.NOT_IMPL))
}

override suspend fun unfollow(account: Account): Result<Unit, MultiMError> {
Logger.debug("Account Api","Not impl account api. unfollow.")
return Err(MultiMError("unfollow not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun profile(account: Account): Result<Profile, MultiMError> {
Logger.debug("Account Api","Not impl account api. profile.")
return Err(MultiMError("profile not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun statuses(
account: Account,
includeRepost: Boolean
): Result<List<Status>, MultiMError> {
Logger.debug("Account Api","Not impl account api. statuses.")
return Err(MultiMError("statuses not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun profile(accountId: String): MultiMResult<Profile> {
Logger.debug("Account Api","Not impl account api. profile by id.")
return Err(MultiMError("profile by id not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun relationships(
myself: Account,
other: Account
): Result<Relation, MultiMError> {
Logger.debug("Account Api","Not impl account api. relationships.")
return Err(MultiMError("relationships not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun requestCancel(account: Account): Result<Unit, MultiMError> {
Logger.debug("Account Api","Not impl account api. requestCancel.")
return Err(MultiMError("requestCancel not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun requestAccept(account: Account): Result<Unit, MultiMError> {
Logger.debug("Account Api","Not impl account api. requestAccept.")
return Err(MultiMError("requestAccept not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun requestReject(account: Account): Result<Unit, MultiMError> {
Logger.debug("Account Api","Not impl account api. requestReject.")
return Err(MultiMError("requestReject not implements",null, ErrorType.NOT_IMPL))
}
}
108 changes: 108 additions & 0 deletions core/src/main/kotlin/dev/usbharu/multim/api/StringIdStatusApi.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
package dev.usbharu.multim.api

import com.github.michaelbull.result.Err
import com.github.michaelbull.result.Result
import dev.usbharu.multim.Logger
import dev.usbharu.multim.error.ErrorType
import dev.usbharu.multim.error.MultiMError
import dev.usbharu.multim.error.MultiMResult
import dev.usbharu.multim.model.*

interface StringIdStatusApi : StatusApi {
suspend fun findById(statusId:String):MultiMResult<Status>

suspend fun reactions(statusId: String):MultiMResult<Map<Reaction,Int>>
suspend fun replies(statusId: String):MultiMResult<List<Status>>
suspend fun getPreviousAndNext(statusId: String):MultiMResult<PreviousAndNextPosts>
}


object NotImplStringIdStatusApi : StringIdStatusApi {
override suspend fun post(status: StatusForPost): Result<Status, MultiMError> {
Logger.debug("Status Api","Not impl status api post")
return Err(MultiMError("post not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun delete(id: StatusId): Result<Unit, MultiMError> {
Logger.debug("Status Api","Not impl status api delete")
return Err(MultiMError("delete not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun findById(statusId: String): MultiMResult<Status> {
Logger.debug("Status Api","Not impl status api findById by id")
return Err(MultiMError("findById by id not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun findById(id: StatusId): Result<Status, MultiMError> {
Logger.debug("Status Api","Not impl status api findById")
return Err(MultiMError("findById not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun reactions(statusId: String): MultiMResult<Map<Reaction, Int>> {
Logger.debug("Status Api","Not impl status api reactions by id")
return Err(MultiMError("reactions by id not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun addReaction(id: StatusId, reaction: Reaction): Result<Unit, MultiMError> {
Logger.debug("Status Api","Not impl status api addReaction")
return Err(MultiMError("addReaction not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun removeReaction(
id: StatusId,
reaction: Reaction?
): Result<Unit, MultiMError> {
Logger.debug("Status Api","Not impl status api removeReaction")
return Err(MultiMError("removeReaction not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun reactions(id: StatusId): Result<Map<Reaction, Int>, MultiMError> {
Logger.debug("Status Api","Not impl status api reactions")
return Err(MultiMError("reactions not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun replies(statusId: String): MultiMResult<List<Status>> {
Logger.debug("Status Api","Not impl status api replies by id")
return Err(MultiMError("replies by id not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun replies(id: StatusId): Result<List<Status>, MultiMError> {
Logger.debug("Status Api","Not impl status api replies")
return Err(MultiMError("replies not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun getPreviousAndNext(statusId: String): MultiMResult<PreviousAndNextPosts> {
Logger.debug("Status Api","Not impl status api getPreviousAndNext by id")
return Err(MultiMError("getPreviousAndNext by id not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun repost(id: StatusId): Result<Status, MultiMError> {
Logger.debug("Status Api","Not impl status api repost")
return Err(MultiMError("repost not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun unRepost(id: StatusId): Result<Unit, MultiMError> {
Logger.debug("Status Api","Not impl status api unRepost")
return Err(MultiMError("unRepost not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun replyTo(id: StatusId, status: StatusForPost): Result<Status, MultiMError> {
Logger.debug("Status Api","Not impl status api replyTo")
return Err(MultiMError("replyTo not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun addToBookmarks(id: StatusId): Result<Unit, MultiMError> {
Logger.debug("Status Api","Not impl status api addToBookmarks")
return Err(MultiMError("addToBookmarks not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun removeFromBookmarks(id: StatusId): Result<Unit, MultiMError> {
Logger.debug("Status Api","Not impl status api removeFromBookmarks")
return Err(MultiMError("removeFromBookmarks not implements",null, ErrorType.NOT_IMPL))
}

override suspend fun getPreviousAndNext(id: StatusId): Result<PreviousAndNextPosts, MultiMError> {
Logger.debug("Status Api","Not impl status api getPreviousAndNext")
return Err(MultiMError("getPreviousAndNext not implements",null, ErrorType.NOT_IMPL))
}
}