Search in sources :

Example 1 with TaskModel

use of org.dataportabilityproject.types.transfer.models.tasks.TaskModel in project data-transfer-project by google.

the class GoogleTasksExporter method getTasks.

private ExportResult getTasks(Tasks tasksService, IdOnlyContainerResource resource, PaginationData paginationData) throws IOException {
    Tasks.TasksOperations.List query = tasksService.tasks().list(resource.getId()).setMaxResults(PAGE_SIZE);
    if (paginationData != null) {
        query.setPageToken(((StringPaginationToken) paginationData).getToken());
    }
    com.google.api.services.tasks.model.Tasks result = query.execute();
    List<TaskModel> newTasks = result.getItems().stream().map(t -> new TaskModel(resource.getId(), t.getTitle(), t.getNotes())).collect(Collectors.toList());
    PaginationData newPage = null;
    ResultType resultType = ResultType.END;
    if (result.getNextPageToken() != null) {
        newPage = new StringPaginationToken(result.getNextPageToken());
        resultType = ResultType.CONTINUE;
    }
    TaskContainerResource taskContainerResource = new TaskContainerResource(null, newTasks);
    return new ExportResult<>(resultType, taskContainerResource, new ContinuationData(newPage));
}
Also used : ExportInformation(org.dataportabilityproject.spi.transfer.types.ExportInformation) IdOnlyContainerResource(org.dataportabilityproject.spi.transfer.types.IdOnlyContainerResource) Exporter(org.dataportabilityproject.spi.transfer.provider.Exporter) StringPaginationToken(org.dataportabilityproject.spi.transfer.types.StringPaginationToken) TaskModel(org.dataportabilityproject.types.transfer.models.tasks.TaskModel) BearerToken(com.google.api.client.auth.oauth2.BearerToken) ExportResult(org.dataportabilityproject.spi.transfer.provider.ExportResult) ResultType(org.dataportabilityproject.spi.transfer.provider.ExportResult.ResultType) TaskContainerResource(org.dataportabilityproject.types.transfer.models.tasks.TaskContainerResource) IOException(java.io.IOException) Tasks(com.google.api.services.tasks.Tasks) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) TokensAndUrlAuthData(org.dataportabilityproject.types.transfer.auth.TokensAndUrlAuthData) TaskListModel(org.dataportabilityproject.types.transfer.models.tasks.TaskListModel) List(java.util.List) TaskList(com.google.api.services.tasks.model.TaskList) ImmutableList(com.google.common.collect.ImmutableList) ContinuationData(org.dataportabilityproject.spi.transfer.types.ContinuationData) Credential(com.google.api.client.auth.oauth2.Credential) VisibleForTesting(com.google.common.annotations.VisibleForTesting) TaskLists(com.google.api.services.tasks.model.TaskLists) GoogleStaticObjects(org.dataportabilityproject.datatransfer.google.common.GoogleStaticObjects) PaginationData(org.dataportabilityproject.spi.transfer.types.PaginationData) PaginationData(org.dataportabilityproject.spi.transfer.types.PaginationData) ContinuationData(org.dataportabilityproject.spi.transfer.types.ContinuationData) ResultType(org.dataportabilityproject.spi.transfer.provider.ExportResult.ResultType) TaskContainerResource(org.dataportabilityproject.types.transfer.models.tasks.TaskContainerResource) TaskModel(org.dataportabilityproject.types.transfer.models.tasks.TaskModel) StringPaginationToken(org.dataportabilityproject.spi.transfer.types.StringPaginationToken) ExportResult(org.dataportabilityproject.spi.transfer.provider.ExportResult)

Example 2 with TaskModel

use of org.dataportabilityproject.types.transfer.models.tasks.TaskModel in project data-transfer-project by google.

the class GoogleTasksImporter method importItem.

@Override
public ImportResult importItem(UUID jobId, TokensAndUrlAuthData authData, TaskContainerResource data) {
    Tasks tasksService = getOrCreateTasksService(authData);
    TempTasksData tempTasksData = jobStore.findData(TempTasksData.class, jobId);
    if (tempTasksData == null) {
        tempTasksData = new TempTasksData(jobId.toString());
        jobStore.create(jobId, tempTasksData);
    }
    for (TaskListModel oldTasksList : data.getLists()) {
        // TempTasksData shouldn't be null since we added it.
        tempTasksData = jobStore.findData(TempTasksData.class, jobId);
        TaskList newTaskList = new TaskList().setTitle("Imported copy - " + oldTasksList.getName());
        TaskList insertedTaskList;
        try {
            insertedTaskList = tasksService.tasklists().insert(newTaskList).execute();
        } catch (IOException e) {
            return new ImportResult(ResultType.ERROR, "Error inserting taskList: " + e.getMessage());
        }
        logger.info("Storing {} as {}", oldTasksList.getId(), insertedTaskList.getId());
        tempTasksData.addTaskListId(oldTasksList.getId(), insertedTaskList.getId());
        jobStore.update(jobId, tempTasksData);
    }
    tempTasksData = jobStore.findData(TempTasksData.class, jobId);
    for (TaskModel oldTask : data.getTasks()) {
        Task newTask = new Task().setTitle(oldTask.getText()).setNotes(oldTask.getNotes());
        String newTaskId = tempTasksData.lookupNewTaskListId(newTask.getId());
        try {
            tasksService.tasks().insert(newTaskId, newTask).execute();
        } catch (IOException e) {
            return new ImportResult(ResultType.ERROR, "Error inserting task: " + e.getMessage());
        }
    }
    return new ImportResult(ResultType.OK);
}
Also used : TempTasksData(org.dataportabilityproject.spi.transfer.types.TempTasksData) Task(com.google.api.services.tasks.model.Task) Tasks(com.google.api.services.tasks.Tasks) ImportResult(org.dataportabilityproject.spi.transfer.provider.ImportResult) TaskList(com.google.api.services.tasks.model.TaskList) IOException(java.io.IOException) TaskListModel(org.dataportabilityproject.types.transfer.models.tasks.TaskListModel) TaskModel(org.dataportabilityproject.types.transfer.models.tasks.TaskModel)

Aggregations

Tasks (com.google.api.services.tasks.Tasks)2 TaskList (com.google.api.services.tasks.model.TaskList)2 IOException (java.io.IOException)2 TaskListModel (org.dataportabilityproject.types.transfer.models.tasks.TaskListModel)2 TaskModel (org.dataportabilityproject.types.transfer.models.tasks.TaskModel)2 BearerToken (com.google.api.client.auth.oauth2.BearerToken)1 Credential (com.google.api.client.auth.oauth2.Credential)1 Task (com.google.api.services.tasks.model.Task)1 TaskLists (com.google.api.services.tasks.model.TaskLists)1 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 ImmutableList (com.google.common.collect.ImmutableList)1 List (java.util.List)1 UUID (java.util.UUID)1 Collectors (java.util.stream.Collectors)1 GoogleStaticObjects (org.dataportabilityproject.datatransfer.google.common.GoogleStaticObjects)1 ExportResult (org.dataportabilityproject.spi.transfer.provider.ExportResult)1 ResultType (org.dataportabilityproject.spi.transfer.provider.ExportResult.ResultType)1 Exporter (org.dataportabilityproject.spi.transfer.provider.Exporter)1 ImportResult (org.dataportabilityproject.spi.transfer.provider.ImportResult)1 ContinuationData (org.dataportabilityproject.spi.transfer.types.ContinuationData)1