Search in sources :

Example 1 with Album

use of com.restfb.types.Album in project data-transfer-project by google.

the class FacebookPhotosExporter method exportAlbums.

private ExportResult<PhotosContainerResource> exportAlbums(TokensAndUrlAuthData authData, Optional<StringPaginationToken> paginationData) throws CopyExceptionWithFailureReason {
    Optional<String> paginationToken = stripTokenPrefix(paginationData, ALBUM_TOKEN_PREFIX);
    // Get albums
    Connection<Album> connection = getOrCreatePhotosInterface(authData).getAlbums(paginationToken);
    PaginationData nextPageData = null;
    String token = connection.getAfterCursor();
    if (!Strings.isNullOrEmpty(token)) {
        nextPageData = new StringPaginationToken(ALBUM_TOKEN_PREFIX + token);
    }
    ContinuationData continuationData = new ContinuationData(nextPageData);
    List<Album> albums = connection.getData();
    if (albums.isEmpty()) {
        return new ExportResult<>(ExportResult.ResultType.END, null, null);
    }
    ArrayList<PhotoAlbum> exportAlbums = new ArrayList<>();
    for (Album album : albums) {
        exportAlbums.add(new PhotoAlbum(album.getId(), album.getName(), album.getDescription()));
        continuationData.addContainerResource(new IdOnlyContainerResource(album.getId()));
    }
    return new ExportResult<>(ExportResult.ResultType.CONTINUE, new PhotosContainerResource(exportAlbums, null), continuationData);
}
Also used : PaginationData(org.datatransferproject.types.common.PaginationData) ArrayList(java.util.ArrayList) PhotoAlbum(org.datatransferproject.types.common.models.photos.PhotoAlbum) Album(com.restfb.types.Album) ContinuationData(org.datatransferproject.spi.transfer.types.ContinuationData) PhotosContainerResource(org.datatransferproject.types.common.models.photos.PhotosContainerResource) IdOnlyContainerResource(org.datatransferproject.types.common.models.IdOnlyContainerResource) PhotoAlbum(org.datatransferproject.types.common.models.photos.PhotoAlbum) StringPaginationToken(org.datatransferproject.types.common.StringPaginationToken) ExportResult(org.datatransferproject.spi.transfer.provider.ExportResult)

Example 2 with Album

use of com.restfb.types.Album in project data-transfer-project by google.

the class FacebookPhotosExporterTest method setUp.

@Before
public void setUp() throws IOException {
    FacebookPhotosInterface photosInterface = mock(FacebookPhotosInterface.class);
    // Set up example album
    Album album = new Album();
    album.setId(ALBUM_ID);
    album.setName(ALBUM_NAME);
    album.setDescription(ALBUM_DESCRIPTION);
    ArrayList<Album> albums = new ArrayList<>();
    albums.add(album);
    @SuppressWarnings("unchecked") Connection<Album> albumConnection = mock(Connection.class);
    when(photosInterface.getAlbums(Mockito.any())).thenReturn(albumConnection);
    when(albumConnection.getData()).thenReturn(albums);
    // Set up example photo
    Photo photo = new Photo();
    photo.setId(PHOTO_ID);
    photo.setCreatedTime(PHOTO_TIME);
    Photo.Image image = new Photo.Image();
    image.setSource(PHOTO_SOURCE);
    photo.addImage(image);
    photo.setName(PHOTO_NAME);
    ArrayList<Photo> photos = new ArrayList<>();
    photos.add(photo);
    @SuppressWarnings("unchecked") Connection<Photo> photoConnection = mock(Connection.class);
    when(photosInterface.getPhotos(ALBUM_ID, Optional.empty())).thenReturn(photoConnection);
    when(photoConnection.getData()).thenReturn(photos);
    final ImageStreamProvider imageStreamProvider = mock(ImageStreamProvider.class);
    InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test.jpeg");
    HttpURLConnection connection = mock(HttpURLConnection.class);
    when(imageStreamProvider.getConnection(ArgumentMatchers.anyString())).thenReturn(connection);
    when(connection.getInputStream()).thenReturn(inputStream);
    final TemporaryPerJobDataStore store = mock(TemporaryPerJobDataStore.class);
    facebookPhotosExporter = new FacebookPhotosExporter(new AppCredentials("key", "secret"), photosInterface, null, store, imageStreamProvider);
}
Also used : TemporaryPerJobDataStore(org.datatransferproject.spi.cloud.storage.TemporaryPerJobDataStore) AppCredentials(org.datatransferproject.types.transfer.auth.AppCredentials) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) ImageStreamProvider(org.datatransferproject.transfer.ImageStreamProvider) PhotoAlbum(org.datatransferproject.types.common.models.photos.PhotoAlbum) Album(com.restfb.types.Album) Photo(com.restfb.types.Photo) HttpURLConnection(java.net.HttpURLConnection) Before(org.junit.Before)

Aggregations

Album (com.restfb.types.Album)2 ArrayList (java.util.ArrayList)2 PhotoAlbum (org.datatransferproject.types.common.models.photos.PhotoAlbum)2 Photo (com.restfb.types.Photo)1 InputStream (java.io.InputStream)1 HttpURLConnection (java.net.HttpURLConnection)1 TemporaryPerJobDataStore (org.datatransferproject.spi.cloud.storage.TemporaryPerJobDataStore)1 ExportResult (org.datatransferproject.spi.transfer.provider.ExportResult)1 ContinuationData (org.datatransferproject.spi.transfer.types.ContinuationData)1 ImageStreamProvider (org.datatransferproject.transfer.ImageStreamProvider)1 PaginationData (org.datatransferproject.types.common.PaginationData)1 StringPaginationToken (org.datatransferproject.types.common.StringPaginationToken)1 IdOnlyContainerResource (org.datatransferproject.types.common.models.IdOnlyContainerResource)1 PhotosContainerResource (org.datatransferproject.types.common.models.photos.PhotosContainerResource)1 AppCredentials (org.datatransferproject.types.transfer.auth.AppCredentials)1 Before (org.junit.Before)1