use of com.flickr4java.flickr.auth.Auth in project data-transfer-project by google.
the class FlickrPhotosExporter method export.
@Override
public ExportResult<PhotosContainerResource> export(UUID jobId, AuthData authData, ExportInformation exportInformation) {
Auth auth;
try {
auth = FlickrUtils.getAuth(authData, flickr);
} catch (FlickrException e) {
return new ExportResult<>(ResultType.ERROR, "Error authorizing user: " + e.getErrorMessage());
}
RequestContext.getRequestContext().setAuth(auth);
PaginationData paginationData = exportInformation.getPaginationData();
IdOnlyContainerResource resource = (IdOnlyContainerResource) exportInformation.getContainerResource();
if (resource != null) {
return getPhotos(resource, paginationData);
} else {
return getAlbums(paginationData, auth);
}
}
use of com.flickr4java.flickr.auth.Auth in project data-transfer-project by google.
the class FlickrAuth method generateAuthData.
@Override
public AuthData generateAuthData(IOInterface ioInterface) throws IOException {
AuthInterface authInterface = flickr.getAuthInterface();
Token token = authInterface.getRequestToken();
String url = authInterface.getAuthorizationUrl(token, Permission.WRITE);
String tokenKey = ioInterface.ask("Please enter the code from this authUrl: " + url);
Token requestToken = authInterface.getAccessToken(token, new Verifier(tokenKey));
try {
Auth auth = authInterface.checkToken(requestToken);
return toAuthData(requestToken);
} catch (FlickrException e) {
throw new IOException("Problem verifying auth token", e);
}
}
use of com.flickr4java.flickr.auth.Auth in project data-transfer-project by google.
the class FlickrAuth method getAuth.
public Auth getAuth(AuthData authData) throws IOException {
checkArgument(authData instanceof TokenSecretAuthData, "authData expected to be TokenSecretAuthData not %s", authData.getClass().getCanonicalName());
Token requestToken = fromAuthData(authData);
try {
Auth auth = flickr.getAuthInterface().checkToken(requestToken);
return auth;
} catch (FlickrException e) {
throw new IOException("Problem verifying auth token", e);
}
}
use of com.flickr4java.flickr.auth.Auth in project data-transfer-project by google.
the class FlickrPhotosImporter method importItem.
@Override
public ImportResult importItem(UUID jobId, AuthData authData, PhotosContainerResource data) {
Auth auth;
try {
auth = FlickrUtils.getAuth(authData, flickr);
} catch (FlickrException e) {
return new ImportResult(ImportResult.ResultType.ERROR, "Error authorizing Flickr Auth: " + e.getErrorMessage());
}
RequestContext.getRequestContext().setAuth(auth);
// Store any album data in the cache because Flickr only allows you to create an album with a
// photo in it, so we have to wait for the first photo to create the album
TempPhotosData tempPhotosData = jobStore.findData(TempPhotosData.class, jobId);
if (tempPhotosData == null) {
tempPhotosData = new TempPhotosData(jobId);
jobStore.create(jobId, tempPhotosData);
}
for (PhotoAlbum album : data.getAlbums()) {
tempPhotosData.addAlbum(CACHE_ALBUM_METADATA_PREFIX + album.getId(), album);
}
jobStore.update(jobId, tempPhotosData);
for (PhotoModel photo : data.getPhotos()) {
try {
String photoId = uploadPhoto(photo);
String oldAlbumId = photo.getAlbumId();
TempPhotosData tempData = jobStore.findData(TempPhotosData.class, jobId);
String newAlbumId = tempData.lookupNewAlbumId(oldAlbumId);
if (Strings.isNullOrEmpty(newAlbumId)) {
// This means that we havent created the new album yet, create the photoset
PhotoAlbum album = tempData.lookupAlbum(CACHE_ALBUM_METADATA_PREFIX + oldAlbumId);
Photoset photoset = photosetsInterface.create(COPY_PREFIX + album.getName(), album.getDescription(), photoId);
tempData.addAlbumId(oldAlbumId, photoset.getId());
} else {
// We've already created a new album, add the photo to the new album
photosetsInterface.addPhoto(newAlbumId, photoId);
}
jobStore.update(jobId, tempData);
} catch (FlickrException | IOException e) {
// TODO: figure out retries
return new ImportResult(ImportResult.ResultType.ERROR, "Error importing item: " + e.getMessage());
}
}
return new ImportResult(ImportResult.ResultType.OK);
}
Aggregations