public static VoteForRequestUserActionEntity fromUserAction(UserActionEntity userAction) { return new VoteForRequestUserActionEntity( userAction.getDatetime(), userAction.getEntityId(), getVoteTypeFromUserAction(userAction) ); }
public VoteForRequestUserActionEntity(String timestamp, String requestId, int voteType) { super(timestamp, IDoCareContract.UserActions.ENTITY_TYPE_REQUEST, requestId, getEntityParam(voteType), IDoCareContract.UserActions.ACTION_TYPE_VOTE_FOR_REQUEST, getActionParam(voteType) ); mVoteType = voteType; }
private void syncVoteForRequestUserAction(VoteForRequestUserActionEntity userAction) { mLogger.d(TAG, "syncVoteForRequestUserAction(); entity ID: " + userAction.getEntityId()); Call<ResponseBody> call = mServerApi.voteForRequest(userAction.getEntityId(), userAction.getVoteScore(), userAction.getCreatedOrClosed()); try { Response<ResponseBody> response = call.execute(); if (!response.isSuccessful()) { if (HttpUtils.isClientSideError(response.code())) { mLogger.w(TAG, "vote for request call failed due to client error; " + "response code: " + response.code() + "\nresponse: " + response.body()); } else { throw new SyncFailedException("vote for request call failed; response code: " + response.code()); } } } catch (IOException e) { throw new SyncFailedException(e); } }
public VoteForRequestUserActionEntity newVoteUpForRequestClosed(String requestId) { return new VoteForRequestUserActionEntity( getDateTime(), requestId, VoteForRequestUserActionEntity.VOTE_UP_CLOSED); }
/** * * @param userAction the user action which should be applied to request * @param requestEntity the request on which to apply the user action * @return new request which is the merge of the provided request and the information from * user action * @throws IllegalArgumentException if the provided user action is not applicable to the * provided request */ public RequestEntity applyUserActionToRequest(@NonNull UserActionEntity userAction, @NonNull RequestEntity requestEntity) { if (!userAction.getEntityType().equals(UserActions.ENTITY_TYPE_REQUEST) || !userAction.getEntityId().equals(requestEntity.getId())) { throw new IllegalArgumentException("user action is not related to the request"); } if (userAction.getActionType().equals(UserActions.ACTION_TYPE_CLOSE_REQUEST)) { return closeRequest(CloseRequestUserActionEntity.fromUserAction(userAction), requestEntity); } else if (userAction.getActionType().equals(UserActions.ACTION_TYPE_PICKUP_REQUEST)) { return pickUpRequest(PickUpRequestUserActionEntity.fromUserAction(userAction), requestEntity); } else if (userAction.getActionType().equals(UserActions.ACTION_TYPE_CREATE_REQUEST)) { // this action is just a "marker" - the actual data has already been written to requests cache return requestEntity; } else if (userAction.getActionType().equals(UserActions.ACTION_TYPE_VOTE_FOR_REQUEST)) { return voteForRequest(VoteForRequestUserActionEntity.fromUserAction(userAction), requestEntity); } else { throw new RuntimeException("invalid user action: " + userAction); } }
public String getCreatedOrClosed() { return getEntityParam(); } }
public int getVoteScore() { return Integer.valueOf(getActionParam()); }
private RequestEntity voteForRequest(@NonNull VoteForRequestUserActionEntity voteForRequestUserAction, @NonNull RequestEntity requestEntity) { int voteType = voteForRequestUserAction.getVoteType();
public VoteForRequestUserActionEntity newVoteUpForRequestCreated(String requestId) { return new VoteForRequestUserActionEntity( getDateTime(), requestId, VoteForRequestUserActionEntity.VOTE_UP_CREATED); }
syncVoteForRequestUserAction(VoteForRequestUserActionEntity.fromUserAction(userAction)); break;
public VoteForRequestUserActionEntity newVoteDownForRequestClosed(String requestId) { return new VoteForRequestUserActionEntity( getDateTime(), requestId, VoteForRequestUserActionEntity.VOTE_DOWN_CLOSED); }
public VoteForRequestUserActionEntity newVoteDownForRequestCreated(String requestId) { return new VoteForRequestUserActionEntity( getDateTime(), requestId, VoteForRequestUserActionEntity.VOTE_DOWN_CREATED); }