/*
* Generated by Robotoworks Mechanoid
*/
package com.robotoworks.example.movies.ops;
import java.util.List;
import android.util.Log;
import com.robotoworks.example.movies.MoviesApplication;
import com.robotoworks.example.movies.db.MovieDBContract.Movies;
import com.robotoworks.example.movies.net.GetMoviesResult;
import com.robotoworks.example.movies.net.Movie;
import com.robotoworks.example.movies.net.MoviesApiClient;
import com.robotoworks.mechanoid.net.Response;
import com.robotoworks.mechanoid.ops.OperationContext;
import com.robotoworks.mechanoid.ops.OperationResult;
public class GetMoviesOperation extends AbstractGetMoviesOperation {
private static final String TAG = GetMoviesOperation.class.getSimpleName();
private void saveMovies(List<Movie> movies) {
Movies.delete();
for(Movie movie : movies) {
Movies.newBuilder()
.setTitle(movie.getTitle())
.setDescription(movie.getDescription())
.setYear(movie.getYear())
.insert(false);
}
}
@Override
protected OperationResult onExecute(OperationContext context, Args args) {
MoviesApiClient client = MoviesApplication.getMoviesApiClient();
try {
Response<GetMoviesResult> response = client.getMovies();
// Throws UnexpectedHttpStatusException if not 200 OK
response.checkResponseCodeOk();
GetMoviesResult result = response.parse();
saveMovies(result.getMovies());
return OperationResult.ok();
} catch (Exception e) {
Log.e(TAG, Log.getStackTraceString(e));
return OperationResult.error(e);
}
}
}