1
0
Fork 0
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:
Evgenii Kozlov 2025-04-28 15:22:56 +02:00
parent fd10386b90
commit bcbb8368e7
17 changed files with 219 additions and 57 deletions

View file

@ -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
)

View file

@ -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)