diff options
author | Samy Pessé <samypesse@gmail.com> | 2017-02-17 19:01:28 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2017-02-17 19:01:28 +0100 |
commit | 21884d80c311ee7888d4a59c19423643b798d29a (patch) | |
tree | 25357f7a320b3702d0b3f9cc01f381a495925751 /packages/gitbook-core/src/models | |
parent | 4e3e3e515de5da4a9926ccae38256381f2a32714 (diff) | |
download | gitbook-21884d80c311ee7888d4a59c19423643b798d29a.zip gitbook-21884d80c311ee7888d4a59c19423643b798d29a.tar.gz gitbook-21884d80c311ee7888d4a59c19423643b798d29a.tar.bz2 |
Define actions for low level gitbook.com API
Diffstat (limited to 'packages/gitbook-core/src/models')
-rw-r--r-- | packages/gitbook-core/src/models/StateApi.js | 26 | ||||
-rw-r--r-- | packages/gitbook-core/src/models/StateSummary.js | 31 | ||||
-rw-r--r-- | packages/gitbook-core/src/models/User.js | 15 |
3 files changed, 72 insertions, 0 deletions
diff --git a/packages/gitbook-core/src/models/StateApi.js b/packages/gitbook-core/src/models/StateApi.js new file mode 100644 index 0000000..430833b --- /dev/null +++ b/packages/gitbook-core/src/models/StateApi.js @@ -0,0 +1,26 @@ +const { Record } = require('immutable'); + +const DEFAULTS = { + currentUser: null +}; + +/** + * State for the API, it stores informations about the logged in user, etc. + * @type {Record} + */ +class StateApi extends Record(DEFAULTS) { + static create(state) { + return state instanceof StateApi ? + state : new StateApi(state); + } + + /** + * Check if reader is an user is loggedin. + * @return {Boolean} + */ + get isLoggedIn() { + return Boolean(this.currentUser); + } +} + +module.exports = StateApi; diff --git a/packages/gitbook-core/src/models/StateSummary.js b/packages/gitbook-core/src/models/StateSummary.js new file mode 100644 index 0000000..f268f34 --- /dev/null +++ b/packages/gitbook-core/src/models/StateSummary.js @@ -0,0 +1,31 @@ +const { Record, List } = require('immutable'); + +const File = require('../models/File'); +const SummaryPart = require('../models/SummaryPart'); + +const DEFAULTS = { + file: new File(), + parts: List() +}; + +/** + * State for the summary. + * @type {Record} + */ +class StateSummary extends Record(DEFAULTS) { + constructor(state = {}) { + super({ + ...state, + file: new File(state.file), + parts: (new List(state.parts)) + .map(article => new SummaryPart(article)) + }); + } + + static create(state) { + return state instanceof StateSummary ? + state : new StateSummary(state); + } +} + +module.exports = StateSummary; diff --git a/packages/gitbook-core/src/models/User.js b/packages/gitbook-core/src/models/User.js new file mode 100644 index 0000000..6653dc4 --- /dev/null +++ b/packages/gitbook-core/src/models/User.js @@ -0,0 +1,15 @@ +const { Record } = require('immutable'); + +const DEFAULTS = { + username: '' +}; + +/** + * An instance of a GitBook.com user (from API) + * @type {String} + */ +class User extends Record(DEFAULTS) { + +} + +module.exports = User; |