Skip to content

Commit 6a426f3

Browse files
committed
feat: added support for saving documents
1 parent 3ae6119 commit 6a426f3

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

android/src/main/java/com/cblreactnative/CblReactnativeModule.kt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,40 @@ class CblReactnativeModule(reactContext: ReactApplicationContext) :
372372
}
373373
}
374374

375+
@ReactMethod
376+
fun collection_Save(
377+
document: ReadableMap,
378+
docId: String,
379+
name: String,
380+
scopeName: String,
381+
collectionName: String,
382+
concurrencyControlValue: Double?,
383+
promise: Promise
384+
){
385+
try {
386+
var concurrencyControl:ConcurrencyControl? = null
387+
val writableMap = Arguments.createMap()
388+
if (!DataValidation.validateCollection(collectionName, scopeName, name, promise) ||
389+
!DataValidation.validateDocumentId(docId, promise)) {
390+
return
391+
}
392+
if (concurrencyControlValue != null) {
393+
concurrencyControl = DataAdapter.adaptConcurrencyControlFromInt(concurrencyControlValue.toInt())
394+
}
395+
val doc = document.toHashMap()
396+
val result = CollectionManager.saveDocument(docId, doc, concurrencyControl, collectionName, scopeName, name)
397+
writableMap.putString("_id", result.first)
398+
if (result.second != null) {
399+
writableMap.putBoolean("concurrencyControlResult", result.second!!)
400+
} else {
401+
writableMap.putNull("concurrencyControlResult")
402+
}
403+
promise.resolve(writableMap)
404+
} catch (e: Exception) {
405+
promise.reject("DOCUMENT_ERROR", e.message)
406+
}
407+
}
408+
375409
@ReactMethod
376410
fun collection_SetDocumentExpiration(
377411
expiration: String,

0 commit comments

Comments
 (0)