all files / couch/couch/ session.js

66.67% Statements 8/12
50% Branches 2/4
100% Functions 4/4
66.67% Lines 8/12
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                      150× 150×                   124×                     124× 124×         24×                      
import Ember from 'ember';
 
const {
  RSVP: { reject },
  Evented
} = Ember;
 
export default Ember.Object.extend(Evented, {
 
  couch: null,
 
  request(opts={}) {
    opts.url = '_session';
    return this.get('couch').request(opts);
  },
 
  load() {
    return this.request({
      method: 'get',
      json: true
    });
  },
 
  save(name, password) {
    return this.request({
      method: 'post',
      json: true,
      body: {
        name: name || "",
        password: password || ""
      }
    }).then(data => {
      this.trigger('login');
      return data;
    }, err => {
      this.trigger('logout');
      return reject(err);
    });
  },
 
  delete() {
    return this.request({
      method: 'delete',
      json: true,
    }).then(result => {
      this.trigger('logout');
      return result;
    });
  }
 
});