Skip to content

Commit 1d65725

Browse files
committed
Deleting documents now returns a boolean response
1 parent b4b1a56 commit 1d65725

File tree

6 files changed

+21
-8
lines changed

6 files changed

+21
-8
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414

1515
```ts
16-
import { Couchbase } from 'nativescript-couchbase-plugin';
16+
import { Couchbase, ConcurrencyMode } from 'nativescript-couchbase-plugin';
1717
const database = new Couchbase('my-database');
1818

1919
const documentId = database.createDocument({
@@ -34,7 +34,8 @@ database.updateDocument(documentId, {
3434
"twitter": "https://www.twitter.com/triniwiz"
3535
});
3636

37-
const isDeleted = database.deleteDocument(documentId);
37+
// Default concurrency mode is FailOnConflict if you don't pass it
38+
const isDeleted = database.deleteDocument(documentId, ConcurrencyMode.FailOnConflict);
3839
```
3940

4041
### Synchronization with Couchbase Sync Gateway and Couchbase Server

demo/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"declaration": false,
66
"removeComments": true,
77
"noLib": false,
8+
"skipLibCheck": true,
89
"emitDecoratorMetadata": true,
910
"experimentalDecorators": true,
1011
"lib": [

src/couchbase-plugin.android.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
BlobBase,
33
Common,
4+
ConcurrencyMode,
45
Query,
56
QueryComparisonOperator,
67
QueryLogicalOperator,
@@ -377,10 +378,11 @@ export class Couchbase extends Common {
377378
return item < -Math.pow(2, 31) + 1 || item > Math.pow(2, 31) - 1;
378379
}
379380

380-
deleteDocument(documentId: string) {
381+
deleteDocument(documentId: string, concurrencyMode: ConcurrencyMode = 1) {
381382
try {
382383
const doc = this.android.getDocument(documentId);
383-
return this.android.delete(doc);
384+
return this.android.delete(doc, concurrencyMode === 1 ? com.couchbase.lite.ConcurrencyControl.FAIL_ON_CONFLICT :
385+
com.couchbase.lite.ConcurrencyControl.LAST_WRITE_WINS);
384386
} catch (e) {
385387
console.error(e.message);
386388
return false;

src/couchbase-plugin.common.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,8 @@ export abstract class BlobBase {
141141
this.blob = blob;
142142
}
143143
}
144+
145+
export enum ConcurrencyMode {
146+
'LastWriteWins' = 0,
147+
'FailOnConflict' = 1
148+
}

src/couchbase-plugin.ios.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import {
55
QueryComparisonOperator,
66
QueryLogicalOperator,
77
QueryMeta,
8-
ReplicatorBase
8+
ReplicatorBase,
9+
ConcurrencyMode
910
} from './couchbase-plugin.common';
1011
import * as types from 'tns-core-modules/utils/types';
1112
import * as fs from 'tns-core-modules/file-system';
@@ -336,9 +337,12 @@ export class Couchbase extends Common {
336337
this.ios.saveDocumentError(newDoc);
337338
}
338339

339-
deleteDocument(documentId: string) {
340+
deleteDocument(documentId: string, concurrencyMode: ConcurrencyMode = 1) {
341+
340342
const doc = this.ios.documentWithID(documentId);
341-
return this.ios.deleteDocumentError(doc);
343+
return this.ios.deleteDocumentConcurrencyControlError(doc,
344+
concurrencyMode === 1 ? CBLConcurrencyControl.kCBLConcurrencyControlFailOnConflict :
345+
CBLConcurrencyControl.kCBLConcurrencyControlLastWriteWins);
342346
}
343347

344348
destroyDatabase() {

src/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Common, Query, ReplicatorBase } from './couchbase-plugin.common';
22

33
export {
4-
Query, QueryMeta, QueryArrayOperator, QueryComparisonOperator, QueryLogicalOperator, QueryOrderItem, QueryWhereItem
4+
ConcurrencyMode, Query, QueryMeta, QueryArrayOperator, QueryComparisonOperator, QueryLogicalOperator, QueryOrderItem, QueryWhereItem
55
}from './couchbase-plugin.common';
66

77
export declare class Couchbase extends Common {

0 commit comments

Comments
 (0)