From 3598b09f110d7eafe6debe2d796ea221dec3f8a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Go=CC=88llner?= Date: Thu, 23 May 2019 09:18:25 +0200 Subject: [PATCH 1/9] Taking ember-cli-fastboot-dotenv in advance fot fetching wordpress host variable. --- .gitignore | 1 + addon/adapters/wordpress.js | 60 ++++++++++++++++++++++++++++++++----- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 7a5e43a..c11247b 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ testem.log .node_modules.ember-try/ bower.json.ember-try package.json.ember-try +package-lock.json # JetBrain IDE files /.idea diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index eb29089..58b1ad0 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -1,13 +1,59 @@ import DS from 'ember-data'; import config from 'ember-get-config'; import getHeader from '../utils/get-header'; +import { + computed +} from '@ember/object'; +import { + getOwner +} from '@ember/application'; // The WP API requires a rest adapter. export default DS.RESTAdapter.extend({ - // Where your Wordpress installation is. - host: config.emberWordpress.host, - // Whether to send many requests or to one-big request. + /** + * Load this adapter after 'ember-cli-fastboot-dotenv' has loaded. + */ + after: 'ember-cli-fastboot-dotenv', + + /** + * --- was "host: config.emberWordpress.host " but has been modified to + * use ember-cli-fastboot-dotenv for fetching the wordpress host from the + * .env file (or any set environment variable) + */ + host: computed(function() { + if (this.get('WORDPRESS_HOST')) { + // Wordpress Hostb is already fetched, just return it! + return this.get('WORDPRESS_HOST'); + } + + // host was not fetched yet, let’s ask dotenv service for the variable... + let dotenv = getOwner(this).lookup('service:dotenv'); + + if (dotenv) { + // dotenv was found and loaded, let’s fetch the variable + let { + WORDPRESS_HOST + } = dotenv.getProperties('WORDPRESS_HOST'); + + if (WORDPRESS_HOST) { + // we could find a WORDPRESS_HOST variable, let’s store it. + this.set('WORDPRESS_HOST', WORDPRESS_HOST); + + // ...and return it. + return this.get('WORDPRESS_HOST'); + } + } + + // either dotenv was not found or it did not contain any WORDPRESS_HOST variable, + // let’s get the host from the config... + this.set('WORDPRESS_HOST', config.emberWordpress.host); + + // ...and return it. + return this.get('WORDPRESS_HOST'); + }), + + // Whether to send many requests or to one-big request. coalesceFindRequests: config.emberWordpress.coalesceFindRequests || false, // This is the default namespace for WP API v2. @@ -26,8 +72,8 @@ export default DS.RESTAdapter.extend({ return this._super(status, headers, payload, requestData); }, - pathForType: function(modelName) { - modelName = modelName.replace('wordpress/', ''); - return this._super(modelName); - } + pathForType: function(modelName) { + modelName = modelName.replace('wordpress/', ''); + return this._super(modelName); + } }); From 4843860b357a49b324a10973dac5062fd6f1d52f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Go=CC=88llner?= Date: Thu, 23 May 2019 11:34:40 +0200 Subject: [PATCH 2/9] Accepting WORDPRESS_HOST_FASTBOOT as additional parameter to be used apart from WORDPRESS_HOST variable --- addon/adapters/wordpress.js | 70 ++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 20 deletions(-) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index 58b1ad0..128a9fe 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -21,37 +21,67 @@ export default DS.RESTAdapter.extend({ * use ember-cli-fastboot-dotenv for fetching the wordpress host from the * .env file (or any set environment variable) */ - host: computed(function() { + _host_fb: computed('_host', function() { + if (this.get('WORDPRESS_HOST_FASTBOOT')) { + return this.get('WORDPRESS_HOST_FASTBOOT'); + } + + const HOST = this.getFromDotEnv('WORDPRESS_HOST_FASTBOOT'); + if (HOST) { + this.set('WORDPRESS_HOST_FASTBOOT', HOST); + } else if (this.get('_host')) { + this.set('WORDPRESS_HOST_FASTBOOT', this.get('_host')); + } else { + this.set('WORDPRESS_HOST_FASTBOOT', config.emberWordpress.host); + } + + return this.get('WORDPRESS_HOST_FASTBOOT'); + }), + _host: computed(function() { if (this.get('WORDPRESS_HOST')) { - // Wordpress Hostb is already fetched, just return it! return this.get('WORDPRESS_HOST'); } - // host was not fetched yet, let’s ask dotenv service for the variable... + const HOST = this.getFromDotEnv('WORDPRESS_HOST'); + if (HOST) { + this.set('WORDPRESS_HOST', HOST); + } else { + this.set('WORDPRESS_HOST', config.emberWordpress.host); + } + + return this.get('WORDPRESS_HOST'); + }), + host: computed(function() { + let fastboot = getOwner(this).lookup('service:fastboot'); + + if (fastboot) { + if (fastboot.get('isFastBoot')) { + return this.get('_host_fb'); + } + } + return this.get('_host'); + }), + + getFromDotEnv(key) { let dotenv = getOwner(this).lookup('service:dotenv'); - if (dotenv) { - // dotenv was found and loaded, let’s fetch the variable - let { - WORDPRESS_HOST - } = dotenv.getProperties('WORDPRESS_HOST'); + if (!dotenv) { + return null; + } - if (WORDPRESS_HOST) { - // we could find a WORDPRESS_HOST variable, let’s store it. - this.set('WORDPRESS_HOST', WORDPRESS_HOST); + // dotenv was found and loaded, let’s fetch the variable + const properties = dotenv.getProperties(key); - // ...and return it. - return this.get('WORDPRESS_HOST'); - } + if (typeof properties !== 'object') { + return null; } - // either dotenv was not found or it did not contain any WORDPRESS_HOST variable, - // let’s get the host from the config... - this.set('WORDPRESS_HOST', config.emberWordpress.host); + if (typeof properties[key] === 'undefined') { + return null; + } - // ...and return it. - return this.get('WORDPRESS_HOST'); - }), + return properties[key]; + }, // Whether to send many requests or to one-big request. coalesceFindRequests: config.emberWordpress.coalesceFindRequests || false, From 05466e2b1f3a4f5cd6822ac33114179f3fd4dba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6llner?= <50580728+ujam-tgoellner@users.noreply.github.com> Date: Wed, 30 Oct 2019 14:44:22 +0100 Subject: [PATCH 3/9] Update wordpress.js --- addon/adapters/wordpress.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index 128a9fe..fd2d8bd 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -87,7 +87,7 @@ export default DS.RESTAdapter.extend({ coalesceFindRequests: config.emberWordpress.coalesceFindRequests || false, // This is the default namespace for WP API v2. - namespace: 'wp-json/wp/v2', + namespace: 'index.php/wp-json/wp/v2', handleResponse(status, headers, payload, requestData) { // Wordpress sends meta data (useful for pagination) in GET requests headers. From 7411af8ce4a6b00b957027efd9ceb6a2c42ba29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Go=CC=88llner?= Date: Tue, 27 Oct 2020 15:10:33 +0100 Subject: [PATCH 4/9] Added a line of code --- addon/adapters/wordpress.js | 1 + 1 file changed, 1 insertion(+) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index fd2d8bd..540a048 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -52,6 +52,7 @@ export default DS.RESTAdapter.extend({ return this.get('WORDPRESS_HOST'); }), host: computed(function() { + console.log("A line of code"); let fastboot = getOwner(this).lookup('service:fastboot'); if (fastboot) { From e5f2b38de08dd1d2d8f9184187d50b157053f959 Mon Sep 17 00:00:00 2001 From: Norman Munge Date: Tue, 27 Oct 2020 14:11:57 +0000 Subject: [PATCH 5/9] A console --- addon/adapters/wordpress.js | 1 + 1 file changed, 1 insertion(+) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index fd2d8bd..318b212 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -52,6 +52,7 @@ export default DS.RESTAdapter.extend({ return this.get('WORDPRESS_HOST'); }), host: computed(function() { + console.log('TEST PUSH') let fastboot = getOwner(this).lookup('service:fastboot'); if (fastboot) { From e39a828863982b155a8d4d18398a482745475c8d Mon Sep 17 00:00:00 2001 From: Norman Munge Date: Wed, 28 Oct 2020 09:18:11 +0000 Subject: [PATCH 6/9] Adds tiemout to reduce site load time when api server is down --- addon/adapters/wordpress.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index 318b212..7bddd50 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -52,7 +52,6 @@ export default DS.RESTAdapter.extend({ return this.get('WORDPRESS_HOST'); }), host: computed(function() { - console.log('TEST PUSH') let fastboot = getOwner(this).lookup('service:fastboot'); if (fastboot) { @@ -106,5 +105,11 @@ export default DS.RESTAdapter.extend({ pathForType: function(modelName) { modelName = modelName.replace('wordpress/', ''); return this._super(modelName); + }, + + ajaxOptions: function( url, type, options ) { + let hash = this._super(url, type, options); + hash.timeout = 8000; + return hash; } }); From 6885e23a76a7c2d2d1148adf48ece518a3a80a3d Mon Sep 17 00:00:00 2001 From: Norman Munge Date: Wed, 28 Oct 2020 09:18:47 +0000 Subject: [PATCH 7/9] Removes unncessary consoles: --- addon/adapters/wordpress.js | 1 - 1 file changed, 1 deletion(-) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index 89d6878..7bddd50 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -52,7 +52,6 @@ export default DS.RESTAdapter.extend({ return this.get('WORDPRESS_HOST'); }), host: computed(function() { - console.log("A line of code"); let fastboot = getOwner(this).lookup('service:fastboot'); if (fastboot) { From cc88fe57f5b74ab83b3bce0d9f8aa3664c6258e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Go=CC=88llner?= Date: Wed, 28 Oct 2020 15:35:26 +0100 Subject: [PATCH 8/9] Timeout setable via env variable --- addon/adapters/wordpress.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/addon/adapters/wordpress.js b/addon/adapters/wordpress.js index 123ca37..847acd7 100644 --- a/addon/adapters/wordpress.js +++ b/addon/adapters/wordpress.js @@ -107,9 +107,30 @@ export default DS.RESTAdapter.extend({ return this._super(modelName); }, + _ajaxTimeout: computed(function() { + if (this.get('WORDPRESS_API_TIMEOUT')) { + return this.get('WORDPRESS_API_TIMEOUT'); + } + + let API_TIMEOUT = parseInt( this.getFromDotEnv('WORDPRESS_API_TIMEOUT') ); + if ( !API_TIMEOUT) { + if( typeof config === 'object' && typeof config.emberWordpress === 'object' ) { + API_TIMEOUT = parseInt( config.emberWordpress.api_timeout ) || 0; + } + } + + if( !API_TIMEOUT || API_TIMEOUT <= 0) { + API_TIMEOUT = 8000; + } + + this.set('WORDPRESS_API_TIMEOUT', API_TIMEOUT); + + return this.get('WORDPRESS_API_TIMEOUT'); + }), + ajaxOptions: function( url, type, options ) { let hash = this._super(url, type, options); - hash.timeout = 8000; + hash.timeout = this.get('_ajaxTimeout'); return hash; }, From a4e8d6e04223f48df5a782116062185001622f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Go=CC=88llner?= Date: Wed, 28 Oct 2020 15:35:36 +0100 Subject: [PATCH 9/9] updated version to v.0.2.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c8812c6..4b4ac5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-wordpress", - "version": "0.2.2", + "version": "0.2.3", "description": "The bridge between Ember and Wordpress", "keywords": [ "ember-addon",