Search in sources :

Example 1 with NewPostResponse

use of com.android.example.devsummit.archdemo.api.NewPostResponse in project dev-summit-architecture-demo by yigit.

the class SaveNewPostJob method onRun.

@Override
public void onRun() throws Throwable {
    Post post = mPostModel.loadByClientIdAndUserId(mClientId, mUserId);
    if (post != null && !post.isPending()) {
        // looks like post probably arrived from somewhere else. Good Job!
        mEventBus.post(new UpdatedPostEvent(post));
        return;
    }
    Response<NewPostResponse> response = mApiService.sendPost(mText, mClientId, mUserId).execute();
    if (response.isSuccess()) {
        NewPostResponse body = response.body();
        body.getPost().setPending(false);
        mPostModel.save(body.getPost());
        mUserModel.save(body.getUser());
        mEventBus.post(new UpdatedPostEvent(body.getPost()));
    } else {
        throw new NetworkException(response.code());
    }
}
Also used : NewPostResponse(com.android.example.devsummit.archdemo.api.NewPostResponse) Post(com.android.example.devsummit.archdemo.vo.Post) UpdatedPostEvent(com.android.example.devsummit.archdemo.event.post.UpdatedPostEvent) NetworkException(com.android.example.devsummit.archdemo.job.NetworkException)

Example 2 with NewPostResponse

use of com.android.example.devsummit.archdemo.api.NewPostResponse in project dev-summit-architecture-demo by yigit.

the class FeedModelTest method loadFeed.

@Test
public void loadFeed() {
    NewPostResponse response = new NewPostResponse();
    Post post = TestUtil.createDummyPost();
    User user = TestUtil.createDummyUser();
    post.setUserId(user.getId());
    response.setUser(user);
    response.setPost(post);
    mPostModel.save(post);
    mUserModel.save(user);
    assertThat(mUserModel.load(user.getId()), notNullValue());
    assertThat(mPostModel.load(post.getId()), notNullValue());
    List<FeedItem> feed = mFeedModel.loadFeed(0, user.getId());
    assertThat(feed, notNullValue());
    assertThat(feed.size(), is(1));
    FeedItem loaded = feed.get(0);
    assertThat(loaded.getUser().getId(), is(user.getId()));
    assertThat(loaded.getPost().getId(), is(post.getId()));
}
Also used : NewPostResponse(com.android.example.devsummit.archdemo.api.NewPostResponse) User(com.android.example.devsummit.archdemo.vo.User) FeedItem(com.android.example.devsummit.archdemo.vo.FeedItem) Post(com.android.example.devsummit.archdemo.vo.Post) Test(org.junit.Test) BaseTest(com.android.example.devsummit.archdemo.BaseTest)

Aggregations

NewPostResponse (com.android.example.devsummit.archdemo.api.NewPostResponse)2 Post (com.android.example.devsummit.archdemo.vo.Post)2 BaseTest (com.android.example.devsummit.archdemo.BaseTest)1 UpdatedPostEvent (com.android.example.devsummit.archdemo.event.post.UpdatedPostEvent)1 NetworkException (com.android.example.devsummit.archdemo.job.NetworkException)1 FeedItem (com.android.example.devsummit.archdemo.vo.FeedItem)1 User (com.android.example.devsummit.archdemo.vo.User)1 Test (org.junit.Test)1