Skip to content

Commit 812e525

Browse files
author
Ben Lei
committed
Update save record APIs on Database
1 parent 228c8e1 commit 812e525

File tree

2 files changed

+34
-130
lines changed

2 files changed

+34
-130
lines changed

skygear/src/main/java/io/skygear/skygear/Database.java

+34-12
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,25 @@ public final void onFailure(Error error) {
239239
* @param record the record
240240
* @param handler the response handler
241241
*/
242-
public void save(Record record, RecordSaveResponseLegacyHandler handler) {
243-
this.save(new Record[]{ record }, handler);
242+
public void save(Record record, RecordSaveResponseHandler handler) {
243+
final RecordSaveResponseHandler responseHandler = handler;
244+
this.presave(new Record[]{record}, new ResultHandling<Record[]>() {
245+
@Override
246+
public void onSuccess(Record[] result) {
247+
Record theRecord = result[0];
248+
RecordSaveRequest request = new RecordSaveRequest(theRecord, Database.this);
249+
request.setResponseHandler(responseHandler);
250+
251+
Database.this.getContainer().sendRequest(request);
252+
}
253+
254+
@Override
255+
public void onFailure(Error error) {
256+
if (responseHandler != null) {
257+
responseHandler.onFailure(error);
258+
}
259+
}
260+
});
244261
}
245262

246263
/**
@@ -249,9 +266,8 @@ public void save(Record record, RecordSaveResponseLegacyHandler handler) {
249266
* @param records the records
250267
* @param handler the response handler
251268
*/
252-
public void save(final Record[] records, RecordSaveResponseLegacyHandler handler) {
253-
final Record[] recordsToSave = records;
254-
final RecordSaveResponseLegacyHandler responseHandler = handler;
269+
public void save(final Record[] records, MultiRecordSaveResponseHandler handler) {
270+
final MultiRecordSaveResponseHandler responseHandler = handler;
255271
this.presave(records, new ResultHandling<Record[]>() {
256272
@Override
257273
public final void onSuccess(Record[] result) {
@@ -263,33 +279,39 @@ public final void onSuccess(Record[] result) {
263279

264280
@Override
265281
public final void onFailure(Error error) {
266-
responseHandler.onSaveFail(error);
282+
if (responseHandler != null) {
283+
responseHandler.onSaveFail(error);
284+
}
267285
}
268286
});
269287
}
270288

271289
/**
272-
* Save multiple records atomically.
290+
* Save records non-atomically.
273291
*
274292
* @param records the records
275293
* @param handler the response handler
276294
*/
277-
public void saveAtomically(final Record[] records, RecordSaveResponseLegacyHandler handler) {
278-
final Record[] recordsToSave = records;
279-
final RecordSaveResponseLegacyHandler responseHandler = handler;
295+
public void saveNonAtomically(
296+
final Record[] records,
297+
RecordNonAtomicSaveResponseHandler handler
298+
) {
299+
final RecordNonAtomicSaveResponseHandler responseHandler = handler;
280300
this.presave(records, new ResultHandling<Record[]>() {
281301
@Override
282302
public final void onSuccess(Record[] result) {
283303
RecordSaveRequest request = new RecordSaveRequest(result, Database.this);
284-
request.setAtomic(true);
304+
request.setAtomic(false);
285305
request.setResponseHandler(responseHandler);
286306

287307
Database.this.getContainer().sendRequest(request);
288308
}
289309

290310
@Override
291311
public final void onFailure(Error error) {
292-
responseHandler.onSaveFail(error);
312+
if (responseHandler != null) {
313+
responseHandler.onSaveFail(error);
314+
}
293315
}
294316
});
295317
}

skygear/src/main/java/io/skygear/skygear/RecordSaveResponseLegacyHandler.java

-118
This file was deleted.

0 commit comments

Comments
 (0)