1 |
|
2 |
|
3 |
|
4 | var wpcomFactory = require( '../' );
|
5 | var qs = require( 'qs' );
|
6 | var oauthCors = require( 'wpcom-oauth-cors' );
|
7 | var fixture = require( './fixture' );
|
8 | var configFactory;
|
9 |
|
10 | try {
|
11 | configFactory = require( './config' );
|
12 | } catch ( ex ) {
|
13 | configFactory = {};
|
14 | }
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | const isClientSide = 'undefined' !== typeof window;
|
20 | let qryString;
|
21 | let reqHandler;
|
22 |
|
23 | const env = isClientSide && (
|
24 | /^automattic\.github\.io/.test( document.location.host ) ||
|
25 | /wpcomjs\.com/.test( document.location.host )
|
26 | )
|
27 | ? 'production'
|
28 | : 'development';
|
29 |
|
30 | console.log( `environment: %o`, env );
|
31 |
|
32 | const config = configFactory[ env ];
|
33 |
|
34 | if ( isClientSide ) {
|
35 | const clientId = config.oauth.client_id;
|
36 | console.log( 'clientId: %o', clientId );
|
37 |
|
38 | qryString = qs.parse( document.location.search.replace( /^\?/, '' ) );
|
39 | reqHandler = qryString.handler || 'wpcom-proxy-request';
|
40 | console.log( `reqHandler: %o`, reqHandler );
|
41 |
|
42 | if (
|
43 | 'wpcom-xhr-request' === reqHandler ||
|
44 | /access_token/.test( document.location.hash )
|
45 | ) {
|
46 | let wpoauth = oauthCors( clientId, config.oauth.options );
|
47 |
|
48 | wpoauth.get( function( auth ) {
|
49 | console.log( 'auth: ', auth );
|
50 | } );
|
51 | }
|
52 | }
|
53 |
|
54 | module.exports = {
|
55 | wpcom: wpcom,
|
56 | wpcomPublic: function() {
|
57 | return wpcomFactory();
|
58 | },
|
59 | site: function() {
|
60 |
|
61 | var site = config && config.site ? config.site : null;
|
62 |
|
63 | return site || fixture.site || process.env.SITE;
|
64 | },
|
65 | wordAds: function() {
|
66 | return config.wordads;
|
67 | }
|
68 | };
|
69 |
|
70 | function wpcom() {
|
71 | let _wpcom;
|
72 | if ( isClientSide ) {
|
73 | reqHandler = qryString.handler || 'wpcom-proxy-request';
|
74 |
|
75 | if ( 'wpcom-proxy-request' === reqHandler ) {
|
76 | console.log( 'PROXY request handler' );
|
77 | let proxy = require( 'wpcom-proxy-request' );
|
78 | _wpcom = wpcomFactory( proxy );
|
79 | _wpcom.request( {
|
80 | metaAPI: { accessAllUsersBlogs: true }
|
81 | }, function( err ) {
|
82 | if ( err ) throw err;
|
83 | console.log( 'proxy now running in "access all user\'s blogs" mode' );
|
84 | } );
|
85 | } else {
|
86 | console.log( 'XHR request handler' );
|
87 | let oauthToken = JSON.parse( localStorage.wp_oauth ).access_token;
|
88 | _wpcom = wpcomFactory( oauthToken );
|
89 | }
|
90 |
|
91 | window.wpcom = _wpcom;
|
92 | } else {
|
93 | _wpcom = wpcomFactory( process.env.TOKEN || config.token );
|
94 | }
|
95 | return _wpcom;
|
96 | }
|