Skip to content

Commit 6e3e592

Browse files
committed
AC-826 Added repository layer abstraction
1 parent feb5c00 commit 6e3e592

8 files changed

Lines changed: 182 additions & 83 deletions

File tree

openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientPresenter.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.openmrs.mobile.api.repository.PatientRepository;
2828
import org.openmrs.mobile.dao.PatientDAO;
2929
import org.openmrs.mobile.listeners.retrofit.DefaultResponseCallback;
30+
import org.openmrs.mobile.listeners.retrofit.PatientDeferredResponseCallback;
3031
import org.openmrs.mobile.models.ConceptAnswers;
3132
import org.openmrs.mobile.models.Module;
3233
import org.openmrs.mobile.models.Patient;
@@ -143,13 +144,14 @@ private boolean validate(Patient patient) {
143144

144145
if (!isPatientUnidentified) {
145146

146-
mPatientInfoView.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, genderError, addressError, countryError, countryNull, stateError, cityError, postalError);
147+
mPatientInfoView
148+
.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, genderError, addressError, countryError, countryNull, stateError, cityError, postalError);
147149

148150
// Validate names
149151
PersonName currentPersonName = patient.getName();
150152

151153
if (StringUtils.isBlank(currentPersonName.getGivenName())
152-
|| !ViewUtils.validateText(currentPersonName.getGivenName(), ViewUtils.ILLEGAL_CHARACTERS)) {
154+
|| !ViewUtils.validateText(currentPersonName.getGivenName(), ViewUtils.ILLEGAL_CHARACTERS)) {
153155
givenNameError = true;
154156
}
155157

@@ -159,7 +161,7 @@ private boolean validate(Patient patient) {
159161
}
160162

161163
if (StringUtils.isBlank(currentPersonName.getFamilyName())
162-
|| !ViewUtils.validateText(currentPersonName.getFamilyName(), ViewUtils.ILLEGAL_CHARACTERS)) {
164+
|| !ViewUtils.validateText(currentPersonName.getFamilyName(), ViewUtils.ILLEGAL_CHARACTERS)) {
163165
familyNameError = true;
164166
}
165167

@@ -168,9 +170,9 @@ private boolean validate(Patient patient) {
168170
String patientAddress2 = patient.getAddress().getAddress2();
169171

170172
if ((StringUtils.isBlank(patientAddress1)
171-
&& StringUtils.isBlank(patientAddress2)
172-
|| !ViewUtils.validateText(patientAddress1, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)
173-
|| !ViewUtils.validateText(patientAddress2, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS))) {
173+
&& StringUtils.isBlank(patientAddress2)
174+
|| !ViewUtils.validateText(patientAddress1, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)
175+
|| !ViewUtils.validateText(patientAddress2, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS))) {
174176
addressError = true;
175177
}
176178

@@ -208,14 +210,14 @@ private boolean validate(Patient patient) {
208210
return true;
209211
} else {
210212
mPatientInfoView
211-
.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, addressError, countryError, genderError, countryNull, stateError, cityError, postalError);
213+
.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, addressError, countryError, genderError, countryNull, stateError, cityError, postalError);
212214
return false;
213215
}
214216
}
215217

216218
@Override
217219
public void registerPatient() {
218-
patientRepository.registerPatient(mPatient, new DefaultResponseCallback() {
220+
patientRepository.registerPatient(mPatient, new PatientDeferredResponseCallback() {
219221
@Override
220222
public void onResponse() {
221223
mPatientInfoView.startPatientDashbordActivity(mPatient);
@@ -230,6 +232,7 @@ public void onErrorResponse(String errorMessage) {
230232
});
231233
}
232234

235+
233236
@Override
234237
public void updatePatient(Patient patient) {
235238
patientRepository.updatePatient(patient, new DefaultResponseCallback() {

openmrs-client/src/main/java/org/openmrs/mobile/activities/matchingpatients/MatchingPatientsPresenter.java

Lines changed: 70 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,22 @@
1414

1515
package org.openmrs.mobile.activities.matchingpatients;
1616

17-
import androidx.annotation.NonNull;
18-
1917
import org.openmrs.mobile.R;
2018
import org.openmrs.mobile.activities.BasePresenter;
2119
import org.openmrs.mobile.api.RestApi;
2220
import org.openmrs.mobile.api.RestServiceBuilder;
21+
import org.openmrs.mobile.api.promise.SimpleDeferredObject;
2322
import org.openmrs.mobile.api.repository.PatientRepository;
2423
import org.openmrs.mobile.dao.PatientDAO;
24+
import org.openmrs.mobile.listeners.retrofit.DefaultResponseCallback;
25+
import org.openmrs.mobile.listeners.retrofit.PatientDeferredResponseCallback;
2526
import org.openmrs.mobile.models.Patient;
26-
import org.openmrs.mobile.models.PatientDto;
27-
import org.openmrs.mobile.models.PatientDtoUpdate;
28-
import org.openmrs.mobile.utilities.ApplicationConstants;
2927
import org.openmrs.mobile.utilities.PatientAndMatchingPatients;
3028
import org.openmrs.mobile.utilities.PatientMerger;
29+
import org.openmrs.mobile.utilities.ToastUtil;
3130

3231
import java.util.Queue;
3332

34-
import retrofit2.Call;
35-
import retrofit2.Callback;
36-
import retrofit2.Response;
37-
3833
import static com.google.common.collect.ComparisonChain.start;
3934

4035
public class MatchingPatientsPresenter extends BasePresenter implements MatchingPatientsContract.Presenter {
@@ -85,7 +80,7 @@ public void mergePatients() {
8580
if (selectedPatient != null) {
8681
Patient patientToMerge = matchingPatientsList.poll().getPatient();
8782
Patient mergedPatient = new PatientMerger().mergePatient(selectedPatient, patientToMerge);
88-
updatePatient(mergedPatient);
83+
updateMatchingPatient(mergedPatient);
8984
removeSelectedPatient();
9085
if (matchingPatientsList.peek() != null) {
9186
start();
@@ -97,37 +92,83 @@ public void mergePatients() {
9792
}
9893
}
9994

100-
private void updatePatient(final Patient patient) {
101-
PatientDtoUpdate patientDto = patient.getUpdatedPatientDto();
102-
patient.setUuid(null);
103-
Call<PatientDto> call = restApi.updatePatient(patientDto, patient.getUuid(), ApplicationConstants.API.FULL);
104-
call.enqueue(new Callback<PatientDto>() {
95+
public void updateMatchingPatient(final Patient patient) {
96+
patientRepository.updateMatchingPatient(patient, new DefaultResponseCallback() {
10597
@Override
106-
public void onResponse(@NonNull Call<PatientDto> call, @NonNull Response<PatientDto> response) {
107-
if (response.isSuccessful()) {
108-
if (patientDAO.isUserAlreadySaved(patient.getUuid())) {
109-
Long id = patientDAO.findPatientByUUID(patient.getUuid()).getId();
110-
patientDAO.updatePatient(id, patient);
111-
patientDAO.deletePatient(patient.getId());
112-
} else {
113-
patientDAO.updatePatient(patient.getId(), patient);
114-
}
98+
public void onResponse() {
99+
if (patientDAO.isUserAlreadySaved(patient.getUuid())) {
100+
Long id = patientDAO.findPatientByUUID(patient.getUuid()).getId();
101+
patientDAO.updatePatient(id, patient);
102+
patientDAO.deletePatient(patient.getId());
115103
} else {
116-
view.showErrorToast(response.message());
104+
patientDAO.updatePatient(patient.getId(), patient);
117105
}
118106
}
119107

120108
@Override
121-
public void onFailure(@NonNull Call<PatientDto> call, @NonNull Throwable t) {
122-
view.showErrorToast(t.getMessage());
109+
public void onErrorResponse(String errorMessage) {
110+
view.showErrorToast(errorMessage);
123111
}
124112
});
125113
}
126114

115+
116+
117+
// public void updateMatchingPatient(final Patient patient) {
118+
// PatientDtoUpdate patientDto = patient.getUpdatedPatientDto();
119+
// patient.setUuid(null);
120+
// Call<PatientDto> call = restApi.updatePatient(patientDto, patient.getUuid(), ApplicationConstants.API.FULL);
121+
// call.enqueue(new Callback<PatientDto>() {
122+
// @Override
123+
// public void onResponse(@NonNull Call<PatientDto> call, @NonNull Response<PatientDto> response) {
124+
// if (response.isSuccessful()) {
125+
// if (patientDAO.isUserAlreadySaved(patient.getUuid())) {
126+
// Long id = patientDAO.findPatientByUUID(patient.getUuid()).getId();
127+
// patientDAO.updatePatient(id, patient);
128+
// patientDAO.deletePatient(patient.getId());
129+
// } else {
130+
// patientDAO.updatePatient(patient.getId(), patient);
131+
// }
132+
// } else {
133+
// view.showErrorToast(response.message());
134+
// }
135+
// }
136+
//
137+
// @Override
138+
// public void onFailure(@NonNull Call<PatientDto> call, @NonNull Throwable t) {
139+
// view.showErrorToast(t.getMessage());
140+
// }
141+
// });
142+
// }
143+
144+
145+
127146
@Override
128147
public void registerNewPatient() {
129148
final Patient patient = matchingPatientsList.poll().getPatient();
130-
patientRepository.syncPatient(patient);
149+
patientRepository.syncPatient(patient, new PatientDeferredResponseCallback() {
150+
@Override
151+
public void onErrorResponse(String errorMessage) {
152+
153+
}
154+
155+
@Override
156+
public void onResponse(SimpleDeferredObject<Patient> response) {
157+
response.resolve(patient);
158+
}
159+
160+
@Override
161+
public void onErrorResponse(String errorMessage, SimpleDeferredObject<Patient> errorResponse) {
162+
errorResponse.reject(new RuntimeException(errorMessage));
163+
ToastUtil.error(errorMessage);
164+
}
165+
166+
@Override
167+
public void onNotifyResponse(String notifyMessage) {
168+
ToastUtil.notify(notifyMessage);
169+
}
170+
});
171+
131172
removeSelectedPatient();
132173
if (matchingPatientsList.peek() != null) {
133174
subscribe();
@@ -136,6 +177,7 @@ public void registerNewPatient() {
136177
}
137178
}
138179

180+
139181
private void setSelectedIfOnlyOneMatching() {
140182
if (matchingPatientsList.peek().getMatchingPatientList().size() == 1) {
141183
selectedPatient = matchingPatientsList.peek().getMatchingPatientList().get(0);

openmrs-client/src/main/java/org/openmrs/mobile/api/repository/AllergyRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
import org.jetbrains.annotations.NotNull;
2626
import org.openmrs.mobile.R;
27-
import org.openmrs.mobile.api.CustomApiCallback;
2827
import org.openmrs.mobile.api.RestApi;
2928
import org.openmrs.mobile.api.workers.allergy.DeleteAllergyWorker;
3029
import org.openmrs.mobile.application.OpenMRS;

0 commit comments

Comments
 (0)