UNPKG

opds-web-client

Version:
290 lines (289 loc) 12.3 kB
"use strict"; var ActionCreator = (function () { function ActionCreator(fetcher) { this.FETCH_COLLECTION_REQUEST = "FETCH_COLLECTION_REQUEST"; this.FETCH_COLLECTION_SUCCESS = "FETCH_COLLECTION_SUCCESS"; this.FETCH_COLLECTION_FAILURE = "FETCH_COLLECTION_FAILURE"; this.LOAD_COLLECTION = "LOAD_COLLECTION"; this.CLEAR_COLLECTION = "CLEAR_COLLECTION"; this.FETCH_PAGE_REQUEST = "FETCH_PAGE_REQUEST"; this.FETCH_PAGE_SUCCESS = "FETCH_PAGE_SUCCESS"; this.FETCH_PAGE_FAILURE = "FETCH_PAGE_FAILURE"; this.LOAD_PAGE = "LOAD_PAGE"; this.FETCH_BOOK_REQUEST = "FETCH_BOOK_REQUEST"; this.FETCH_BOOK_SUCCESS = "FETCH_BOOK_SUCCESS"; this.FETCH_BOOK_FAILURE = "FETCH_BOOK_FAILURE"; this.LOAD_BOOK = "LOAD_BOOK"; this.CLEAR_BOOK = "CLEAR_BOOK"; this.LOAD_SEARCH_DESCRIPTION = "LOAD_SEARCH_DESCRIPTION"; this.CLOSE_ERROR = "CLOSE_ERROR"; this.UPDATE_BOOK_REQUEST = "UPDATE_BOOK_REQUEST"; this.UPDATE_BOOK_SUCCESS = "UPDATE_BOOK_SUCCESS"; this.UPDATE_BOOK_FAILURE = "UPDATE_BOOK_FAILURE"; this.LOAD_UPDATE_BOOK_DATA = "LOAD_UPDATE_BOOK_DATA"; this.FULFILL_BOOK_REQUEST = "FULFILL_BOOK_REQUEST"; this.FULFILL_BOOK_SUCCESS = "FULFILL_BOOK_SUCCESS"; this.FULFILL_BOOK_FAILURE = "FULFILL_BOOK_FAILURE"; this.FETCH_LOANS_REQUEST = "FETCH_LOANS_REQUEST"; this.FETCH_LOANS_SUCCESS = "FETCH_LOANS_SUCCESS"; this.FETCH_LOANS_FAILURE = "FETCH_LOANS_FAILURE"; this.LOAD_LOANS = "LOAD_LOANS"; this.SHOW_AUTH_FORM = "SHOW_AUTH_FORM"; this.HIDE_AUTH_FORM = "HIDE_AUTH_FORM"; this.SAVE_AUTH_CREDENTIALS = "SAVE_AUTH_CREDENTIALS"; this.CLEAR_AUTH_CREDENTIALS = "CLEAR_AUTH_CREDENTIALS"; this.fetcher = fetcher; } ActionCreator.prototype.fetchCollection = function (url) { var _this = this; return function (dispatch) { dispatch(_this.fetchCollectionRequest(url)); return new Promise(function (resolve, reject) { _this.fetcher.fetchOPDSData(url).then(function (data) { dispatch(_this.fetchCollectionSuccess()); dispatch(_this.loadCollection(data, url)); resolve(data); }).catch(function (err) { dispatch(_this.fetchCollectionFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.fetchPage = function (url) { var _this = this; return function (dispatch) { dispatch(_this.fetchPageRequest(url)); return new Promise(function (resolve, reject) { _this.fetcher.fetchOPDSData(url).then(function (data) { dispatch(_this.fetchPageSuccess()); dispatch(_this.loadPage(data)); resolve(data); }).catch(function (err) { dispatch(_this.fetchPageFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.fetchBook = function (url) { var _this = this; return function (dispatch) { dispatch(_this.fetchBookRequest(url)); return new Promise(function (resolve, reject) { _this.fetcher.fetchOPDSData(url).then(function (data) { dispatch(_this.fetchBookSuccess()); dispatch(_this.loadBook(data, url)); resolve(data); }).catch(function (err) { dispatch(_this.fetchBookFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.fetchSearchDescription = function (url) { var _this = this; return function (dispatch) { return new Promise(function (resolve, reject) { _this.fetcher.fetchSearchDescriptionData(url).then(function (data) { dispatch(_this.loadSearchDescription(data)); resolve(data); }).catch(function (err) { return reject(err); }); }); }; }; ActionCreator.prototype.fetchCollectionRequest = function (url) { return { type: this.FETCH_COLLECTION_REQUEST, url: url }; }; ActionCreator.prototype.fetchCollectionSuccess = function () { return { type: this.FETCH_COLLECTION_SUCCESS }; }; ActionCreator.prototype.fetchCollectionFailure = function (error) { return { type: this.FETCH_COLLECTION_FAILURE, error: error }; }; ActionCreator.prototype.loadCollection = function (data, url) { return { type: this.LOAD_COLLECTION, data: data, url: url }; }; ActionCreator.prototype.fetchPageRequest = function (url) { return { type: this.FETCH_PAGE_REQUEST, url: url }; }; ActionCreator.prototype.fetchPageSuccess = function () { return { type: this.FETCH_PAGE_SUCCESS }; }; ActionCreator.prototype.fetchPageFailure = function (error) { return { type: this.FETCH_PAGE_FAILURE, error: error }; }; ActionCreator.prototype.loadPage = function (data) { return { type: this.LOAD_PAGE, data: data }; }; ActionCreator.prototype.clearCollection = function () { return { type: this.CLEAR_COLLECTION }; }; ActionCreator.prototype.loadSearchDescription = function (data) { return { type: this.LOAD_SEARCH_DESCRIPTION, data: data }; }; ActionCreator.prototype.closeError = function () { return { type: this.CLOSE_ERROR }; }; ActionCreator.prototype.fetchBookRequest = function (url) { return { type: this.FETCH_BOOK_REQUEST, url: url }; }; ActionCreator.prototype.fetchBookSuccess = function () { return { type: this.FETCH_BOOK_SUCCESS }; }; ActionCreator.prototype.fetchBookFailure = function (error) { return { type: this.FETCH_BOOK_FAILURE, error: error }; }; ActionCreator.prototype.loadBook = function (data, url) { return { type: this.LOAD_BOOK, data: data, url: url }; }; ActionCreator.prototype.clearBook = function () { return { type: this.CLEAR_BOOK }; }; ActionCreator.prototype.updateBook = function (url) { var _this = this; return function (dispatch) { dispatch(_this.updateBookRequest()); return new Promise(function (resolve, reject) { _this.fetcher.fetchOPDSData(url).then(function (data) { dispatch(_this.updateBookSuccess()); dispatch(_this.loadUpdateBookData(data)); resolve(data); }).catch(function (err) { dispatch(_this.updateBookFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.updateBookRequest = function () { return { type: this.UPDATE_BOOK_REQUEST }; }; ActionCreator.prototype.updateBookSuccess = function () { return { type: this.UPDATE_BOOK_SUCCESS }; }; ActionCreator.prototype.updateBookFailure = function (error) { return { type: this.UPDATE_BOOK_FAILURE, error: error }; }; ActionCreator.prototype.loadUpdateBookData = function (data) { return { type: this.LOAD_UPDATE_BOOK_DATA, data: data }; }; ActionCreator.prototype.fulfillBook = function (url) { var _this = this; return function (dispatch) { return new Promise(function (resolve, reject) { dispatch(_this.fulfillBookRequest()); _this.fetcher.fetch(url) .then(function (response) { if (response.ok) { return response.blob(); } else { throw ({ status: response.status, response: "Could not fulfill book", url: url }); } }) .then(function (blob) { dispatch(_this.fulfillBookSuccess()); resolve(blob); }) .catch(function (err) { dispatch(_this.fulfillBookFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.indirectFulfillBook = function (url, type) { var _this = this; return function (dispatch) { return new Promise(function (resolve, reject) { dispatch(_this.fulfillBookRequest()); _this.fetcher.fetchOPDSData(url).then(function (book) { var link = book.fulfillmentLinks.find(function (link) { return link.type === type; }); if (link) { dispatch(_this.fulfillBookSuccess()); resolve(link.url); } else { throw ({ status: 200, response: "Couldn't fulfill book", url: url }); } }).catch(function (err) { dispatch(_this.fulfillBookFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.fulfillBookRequest = function () { return { type: this.FULFILL_BOOK_REQUEST }; }; ActionCreator.prototype.fulfillBookSuccess = function () { return { type: this.FULFILL_BOOK_SUCCESS }; }; ActionCreator.prototype.fulfillBookFailure = function (error) { return { type: this.FULFILL_BOOK_FAILURE, error: error }; }; ActionCreator.prototype.fetchLoans = function (url) { var _this = this; return function (dispatch) { dispatch(_this.fetchLoansRequest(url)); return new Promise(function (resolve, reject) { _this.fetcher.fetchOPDSData(url).then(function (data) { dispatch(_this.fetchLoansSuccess()); dispatch(_this.loadLoans(data.books)); resolve(data); }).catch(function (err) { dispatch(_this.fetchLoansFailure(err)); reject(err); }); }); }; }; ActionCreator.prototype.fetchLoansRequest = function (url) { return { type: this.FETCH_LOANS_REQUEST, url: url }; }; ActionCreator.prototype.fetchLoansSuccess = function () { return { type: this.FETCH_LOANS_SUCCESS }; }; ActionCreator.prototype.fetchLoansFailure = function (error) { return { type: this.FETCH_LOANS_FAILURE, error: error }; }; ActionCreator.prototype.loadLoans = function (books) { return { type: this.LOAD_LOANS, books: books }; }; ActionCreator.prototype.showAuthForm = function (callback, cancel, providers, title, error) { return { type: this.SHOW_AUTH_FORM, callback: callback, cancel: cancel, providers: providers, title: title, error: error }; }; ActionCreator.prototype.closeErrorAndHideAuthForm = function () { var _this = this; return function (dispatch) { dispatch(_this.closeError()); dispatch(_this.hideAuthForm()); }; }; ActionCreator.prototype.hideAuthForm = function () { return { type: this.HIDE_AUTH_FORM }; }; ActionCreator.prototype.saveAuthCredentials = function (credentials) { this.fetcher.setAuthCredentials(credentials); return { type: this.SAVE_AUTH_CREDENTIALS, credentials: credentials }; }; ActionCreator.prototype.clearAuthCredentials = function () { this.fetcher.clearAuthCredentials(); return { type: this.CLEAR_AUTH_CREDENTIALS }; }; return ActionCreator; }()); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ActionCreator;