all files / firebase/modules/database/ OnDisconnect.js

0% Statements 0/7
100% Branches 0/0
0% Functions 0/5
0% Lines 0/7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69                                                                                                                                         
/**
 * @flow
 * OnDisconnect representation wrapper
 */
import { typeOf } from '../../utils';
import { getNativeModule } from '../../utils/native';
import type Database from './';
import type Reference from './Reference';
 
/**
 * @url https://firebase.google.com/docs/reference/js/firebase.database.OnDisconnect
 * @class OmDisconnect
 */
export default class OnDisconnect {
  _database: Database;
  ref: Reference;
  path: string;
 
  /**
   *
   * @param ref
   */
  constructor(ref: Reference) {
    this.ref = ref;
    this.path = ref.path;
    this._database = ref._database;
  }
 
  /**
   * @url https://firebase.google.com/docs/reference/js/firebase.database.OnDisconnect#set
   * @param value
   * @returns {*}
   */
  set(value: string | Object): Promise<void> {
    return getNativeModule(this._database).onDisconnectSet(this.path, {
      type: typeOf(value),
      value,
    });
  }
 
  /**
   * @url https://firebase.google.com/docs/reference/js/firebase.database.OnDisconnect#update
   * @param values
   * @returns {*}
   */
  update(values: Object): Promise<void> {
    return getNativeModule(this._database).onDisconnectUpdate(
      this.path,
      values
    );
  }
 
  /**
   * @url https://firebase.google.com/docs/reference/js/firebase.database.OnDisconnect#remove
   * @returns {*}
   */
  remove(): Promise<void> {
    return getNativeModule(this._database).onDisconnectRemove(this.path);
  }
 
  /**
   * @url https://firebase.google.com/docs/reference/js/firebase.database.OnDisconnect#cancel
   * @returns {*}
   */
  cancel(): Promise<void> {
    return getNativeModule(this._database).onDisconnectCancel(this.path);
  }
}