Skip to content
Snippets Groups Projects
Commit 4fb459d7 authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Fleshed out model classes for exposed API

parent e004bc68
Branches
No related tags found
No related merge requests found
Showing
with 76 additions and 28 deletions
package io.elixxir.dapp.api.data
import io.elixxir.dapp.api.model.AccountApi
import io.elixxir.dapp.backup.model.Backup
import io.elixxir.dapp.session.repository.SessionDataSource
import io.elixxir.dapp.user.model.User
import io.elixxir.dapp.user.model.UserUpdateData
import kotlinx.coroutines.*
internal class AccountModule(
......@@ -13,7 +16,7 @@ internal class AccountModule(
+ Dispatchers.Default
)
override fun getCurrentUser() {
override fun getCurrentUser(): User {
TODO("Not yet implemented")
}
......@@ -23,13 +26,11 @@ internal class AccountModule(
}
}
override fun restoreAccount() {
scope.launch {
sessionManager.restoreSession()
}
override fun restoreAccount(backup: Backup) {
TODO("Not yet implemented")
}
override fun updateAccount() {
override fun updateAccount(updateData: UserUpdateData) {
TODO("Not yet implemented")
}
......
......@@ -20,11 +20,11 @@ internal class NetworkModule(
override val connectionStatus: Flow<ConnectionStatus> by networkManager::connectionStatus
override fun connect() {
override fun connect(): Result<ConnectionStatus> {
TODO("Not yet implemented")
}
override fun disconnect() {
override fun disconnect(): Result<ConnectionStatus> {
TODO("Not yet implemented")
}
}
\ No newline at end of file
package io.elixxir.dapp.api.model
import io.elixxir.dapp.backup.model.Backup
import io.elixxir.dapp.user.model.User
import io.elixxir.dapp.user.model.UserUpdateData
interface AccountApi {
fun getCurrentUser()
fun getCurrentUser(): User
fun createAccount(username: String)
fun restoreAccount()
fun updateAccount()
fun restoreAccount(backup: Backup)
fun updateAccount(updateData: UserUpdateData)
fun deleteAccount()
}
\ No newline at end of file
package io.elixxir.dapp.api.model
import io.elixxir.dapp.user.model.User
import io.elixxir.dapp.user.model.UserQuery
interface DirectoryApi {
fun getContacts()
fun findUser()
fun blockUser()
fun getContacts(): List<User>
fun findUser(params: UserQuery): User?
fun blockUser(user: User)
}
\ No newline at end of file
package io.elixxir.dapp.api.model
import io.elixxir.dapp.group.model.Group
import io.elixxir.dapp.messaging.model.Message
import io.elixxir.dapp.user.model.User
import kotlinx.coroutines.flow.Flow
interface GroupsApi {
val groupMessages: Flow<Message>
fun sendInvitation()
fun resendInvitation()
fun joinGroup()
fun leaveGroup()
fun sendMessage()
fun retryMessage()
fun sendInvitation(group: Group)
fun resendInvitation(member: User)
fun joinGroup(group: Group)
fun leaveGroup(group: Group)
fun sendMessage(message: Message, group: Group)
fun retryMessage(message: Message, group: Group)
}
\ No newline at end of file
package io.elixxir.dapp.api.model
import io.elixxir.dapp.messaging.model.Message
import io.elixxir.dapp.user.model.User
import kotlinx.coroutines.flow.Flow
interface MessagesApi {
val messages: Flow<Message>
fun sendMessage()
fun retryMessage()
fun sendMessage(message: Message, recipient: User)
fun retryMessage(message: Message, recipient: User)
}
\ No newline at end of file
......@@ -5,6 +5,6 @@ import kotlinx.coroutines.flow.Flow
interface NetworkApi {
val connectionStatus: Flow<ConnectionStatus>
fun connect()
fun disconnect()
fun connect(): Result<ConnectionStatus>
fun disconnect(): Result<ConnectionStatus>
}
\ No newline at end of file
package io.elixxir.dapp.api.model
import io.elixxir.dapp.request.model.IncomingRequest
import io.elixxir.dapp.request.model.Request
import io.elixxir.dapp.request.model.OutgoingRequest
import kotlinx.coroutines.flow.Flow
interface RequestsApi {
val requests: Flow<Request>
fun sendRequest()
fun acceptRequest()
fun retryRequest()
fun sendRequest(request: OutgoingRequest)
fun acceptRequest(request: IncomingRequest)
fun retryRequest(request: Request)
}
\ No newline at end of file
package io.elixxir.dapp.backup.model
interface Backup {
}
\ No newline at end of file
package io.elixxir.dapp.group.model
import io.elixxir.dapp.user.model.User
interface Group {
val groupId: GroupId
val name: String
val description: String
val members: List<User>
val creator: User
}
\ No newline at end of file
......@@ -2,3 +2,7 @@ package io.elixxir.dapp.request.model
interface Request {
}
interface OutgoingRequest : Request
interface IncomingRequest: Request
interface RequestConfirmation: Request
\ No newline at end of file
package io.elixxir.dapp.user.model
interface UserQuery {
val query: String
val queryType: QueryType
enum class QueryType {
USERNAME, USERID, PHONE, EMAIL
}
}
\ No newline at end of file
package io.elixxir.dapp.user.model
data class UserUpdateData(
val newPhone: String?,
val newEmail: String?
)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment