mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
DROID-3554 Use cases | Enhancement | Automatically open a specific object when a new space is created or account is created (#2363)
This commit is contained in:
parent
fd10386b90
commit
bcbb8368e7
17 changed files with 219 additions and 57 deletions
|
@ -214,7 +214,7 @@ class BlockMiddleware(
|
|||
|
||||
override suspend fun importGetStartedUseCase(
|
||||
space: Id
|
||||
) = middleware.objectImportUseCaseGetStarted(
|
||||
): Command.ImportUseCase.Result = middleware.objectImportUseCaseGetStarted(
|
||||
space = space
|
||||
)
|
||||
|
||||
|
@ -728,7 +728,7 @@ class BlockMiddleware(
|
|||
middleware.spaceDelete(space)
|
||||
}
|
||||
|
||||
override suspend fun createWorkspace(command: Command.CreateSpace): Id = middleware.workspaceCreate(
|
||||
override suspend fun createWorkspace(command: Command.CreateSpace): Command.CreateSpace.Result = middleware.workspaceCreate(
|
||||
command = command
|
||||
)
|
||||
|
||||
|
|
|
@ -1598,14 +1598,17 @@ class Middleware @Inject constructor(
|
|||
}
|
||||
|
||||
@Throws(Exception::class)
|
||||
fun objectImportUseCaseGetStarted(space: Id) {
|
||||
fun objectImportUseCaseGetStarted(space: Id) : Command.ImportUseCase.Result {
|
||||
val request = Rpc.Object.ImportUseCase.Request(
|
||||
spaceId = space,
|
||||
useCase = Rpc.Object.ImportUseCase.Request.UseCase.GET_STARTED
|
||||
useCase = Rpc.Object.ImportUseCase.Request.UseCase.GET_STARTED_MOBILE
|
||||
)
|
||||
logRequestIfDebug(request)
|
||||
val (response, time) = measureTimedValue { service.objectImportUseCase(request) }
|
||||
logResponseIfDebug(response, time)
|
||||
return Command.ImportUseCase.Result(
|
||||
startingObject = response.startingObjectId.ifEmpty { null }
|
||||
)
|
||||
}
|
||||
|
||||
@Throws(Exception::class)
|
||||
|
@ -1960,19 +1963,22 @@ class Middleware @Inject constructor(
|
|||
}
|
||||
|
||||
@Throws(Exception::class)
|
||||
fun workspaceCreate(command: Command.CreateSpace): Id {
|
||||
fun workspaceCreate(command: Command.CreateSpace): Command.CreateSpace.Result {
|
||||
val request = Rpc.Workspace.Create.Request(
|
||||
details = command.details,
|
||||
useCase = if (command.shouldApplyEmptyUseCase)
|
||||
Rpc.Object.ImportUseCase.Request.UseCase.EMPTY
|
||||
Rpc.Object.ImportUseCase.Request.UseCase.EMPTY_MOBILE
|
||||
else
|
||||
Rpc.Object.ImportUseCase.Request.UseCase.GET_STARTED,
|
||||
Rpc.Object.ImportUseCase.Request.UseCase.GET_STARTED_MOBILE,
|
||||
withChat = command.withChat
|
||||
)
|
||||
logRequestIfDebug(request)
|
||||
val (response, time) = measureTimedValue { service.workspaceCreate(request) }
|
||||
logResponseIfDebug(response, time)
|
||||
return response.spaceId
|
||||
return Command.CreateSpace.Result(
|
||||
space = SpaceId(response.spaceId),
|
||||
startingObject = response.startingObjectId.ifEmpty { null }
|
||||
)
|
||||
}
|
||||
|
||||
@Throws(Exception::class)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue