/*
* Generated by Robotoworks Mechanoid
*/
package com.robotoworks.example.ghissues.ops;
import java.util.List;
import android.content.ContentValues;
import android.util.Log;
import com.robotoworks.example.ghissues.BuildConfig;
import com.robotoworks.example.ghissues.db.GithubDBContract.Issues;
import com.robotoworks.example.ghissues.net.GetIssuesForRepositoryRequest;
import com.robotoworks.example.ghissues.net.GetIssuesForRepositoryResult;
import com.robotoworks.example.ghissues.net.GithubClient;
import com.robotoworks.example.ghissues.net.Issue;
import com.robotoworks.mechanoid.db.BulkInsertHelper;
import com.robotoworks.mechanoid.net.Response;
import com.robotoworks.mechanoid.net.ServiceException;
import com.robotoworks.mechanoid.ops.OperationContext;
import com.robotoworks.mechanoid.ops.OperationResult;
public class GetIssuesForRepositoryOperation extends AbstractGetIssuesForRepositoryOperation {
private static final String TAG = GetIssuesForRepositoryOperation.class.getSimpleName();
@Override
protected OperationResult onExecute(OperationContext context, final Args args) {
GithubClient client = new GithubClient(BuildConfig.DEBUG);
try {
GetIssuesForRepositoryRequest request = new GetIssuesForRepositoryRequest(args.owner,args.repo);
Response<GetIssuesForRepositoryResult> response = client.getIssuesForRepository(request);
response.checkResponseCodeOk();
GetIssuesForRepositoryResult result = response.parse();
List<Issue> issues = result.getIssues();
new BulkInsertHelper<Issue>() {
@Override
protected ContentValues createValues(Issue item) {
return Issues.newBuilder()
.setGhid(item.getId())
.setNumber(item.getNumber())
.setOwner(args.owner)
.setRepo(args.repo)
.setTitle(item.getTitle())
.setBody(item.getBody())
.getValues();
}
}.insert(Issues.CONTENT_URI, issues);
return OperationResult.ok();
} catch (ServiceException e) {
Log.e(TAG, Log.getStackTraceString(e));
return OperationResult.error(e);
}
}
}