Skip to content

Latest commit

 

History

History
251 lines (188 loc) · 9.37 KB

File metadata and controls

251 lines (188 loc) · 9.37 KB

c8osdkjscoreFullSyncPolicy

Class: FullSyncPolicy

Hierarchy

  • FullSyncPolicy

Index

Constructors

Properties

Methods

Constructors

constructor

+ new FullSyncPolicy(value: string, action: function): FullSyncPolicy

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:948

Parameters:

value: string

action: function

▸ (_Object: any, Object: any): any

Parameters:

Name Type
_Object any
Object any

Returns: FullSyncPolicy

Properties

action

action: function

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:948

Type declaration:

▸ (PouchDB: any, Object: any, subPolicy?: any): any

Parameters:

Name Type
PouchDB any
Object any
subPolicy? any

value

value: string

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:947


Static CREATE

CREATE: FullSyncPolicy = new FullSyncPolicy(C8oCore.FS_POLICY_CREATE, (database: any, newProperties: Object) => { return new Promise((resolve, reject) => { try { delete newProperties[C8oFullSync.FULL_SYNC__ID]; delete newProperties[C8oFullSync.FULL_SYNC__REV]; database.post(newProperties).then((createdDocument) => { resolve(createdDocument); }); } catch (error) { reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error)); } }); })

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:840


Static MERGE

MERGE: FullSyncPolicy = new FullSyncPolicy(C8oCore.FS_POLICY_MERGE, (database: any, newProperties: Object, subPolicy = null) => { return new Promise((resolve, reject) => { try { const documentId: string = C8oUtilsCore.getParameterStringValue(newProperties, C8oFullSync.FULL_SYNC__ID, false); // delete newProperties[C8oFullSync.FULL_SYNC__ID]; delete newProperties[C8oFullSync.FULL_SYNC__REV]; // copy newProperties object to be able to apply subPolicy merge let copyNewProperties = C8oFullSyncCbl.deepCloneObject(newProperties); if (documentId == null) { // Apply subPolicy for merge (here can only be delete since, there is no previous doc) C8oFullSyncCbl.applySubPolicyForMerge(false, copyNewProperties, newProperties , subPolicy); // Put document database.put(newProperties) .then((createdDocument) => { resolve(createdDocument); }).catch((error) => { reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error)); });

            } else {
                database.get(documentId)
                    .then((doc) => {
                        // Apply Policy merge
                        C8oFullSyncCbl.mergeProperties(newProperties, doc);
                        // Apply subPolicy for merge
                        C8oFullSyncCbl.applySubPolicyForMerge(true, copyNewProperties, newProperties , subPolicy);
                        // Put document
                        database.put(newProperties)
                            .then((createdDocument) => {
                                resolve(createdDocument);
                            })
                            .catch((error) => {
                                reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error));
                            });

                    }).catch((error) => {
                        if (error.status === 404) {
                            // Apply subPolicy for merge (here can only be delete since, there is no previous doc)
                            C8oFullSyncCbl.applySubPolicyForMerge(false, copyNewProperties, newProperties , subPolicy);
                            // Put document
                            database.put(newProperties)
                                .then((createdDocument) => {
                                    resolve(createdDocument);
                                })
                                .catch((error) => {
                                    reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error));
                                });
                        } else {
                            reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error));
                        }
                    });
            }
        } catch (error) {
            reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error));
        }
    });
})

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:889


Static NONE

NONE: FullSyncPolicy = new FullSyncPolicy(C8oCore.FS_POLICY_NONE, (database: any, newProperties: Object) => { let documentId = C8oUtilsCore.getParameterStringValue(newProperties, C8oFullSync.FULL_SYNC__ID, false); if (documentId === "") { documentId = null; } return new Promise((resolve, reject) => { database.post(newProperties).then((createdDocument) => { resolve(createdDocument); }).catch((error) => { reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error)); }); }); })

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:826


Static OVERRIDE

OVERRIDE: FullSyncPolicy = new FullSyncPolicy(C8oCore.FS_POLICY_OVERRIDE, (database: any, newProperties: Object) => { return new Promise((resolve, reject) => { try { const documentId: string = C8oUtilsCore.getParameterStringValue(newProperties, C8oFullSync.FULL_SYNC__ID, false); delete newProperties[C8oFullSync.FULL_SYNC__ID]; delete newProperties[C8oFullSync.FULL_SYNC__REV]; if (documentId == null) { database.post(newProperties).then((createdDocument) => { resolve(createdDocument); }); } else { database.get(documentId).then((doc) => { newProperties["_id"] = documentId; newProperties["_rev"] = doc._rev; return database.put(newProperties); }).then((createdDocument) => { resolve(createdDocument); }).catch((error) => { if (error.status === "404" || error.status === 404) { newProperties["_id"] = documentId; return database.post(newProperties); } else { reject(error); } }, ).then((createdDocument) => { resolve(createdDocument); }); } } catch (error) { reject(new C8oCouchBaseLiteException(C8oExceptionMessage.fullSyncPutProperties(newProperties), error)); } }); })

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:854

Methods

Static getFullSyncPolicy

getFullSyncPolicy(value: string): FullSyncPolicy

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:960

Parameters:

Name Type
value string

Returns: FullSyncPolicy


Static values

values(): FullSyncPolicy[]

Defined in c8osdk-js-core/src/c8o/c8oCore.ts:956

Returns: FullSyncPolicy[]