Skip to content

Commit

Permalink
Merge pull request #144 from Automattic/add/site-wordads-endpoints
Browse files Browse the repository at this point in the history
Add site.wordAds() stuff
  • Loading branch information
retrofox authored and jsnajdr committed Jan 27, 2020
1 parent c9d63ec commit 861fea6
Show file tree
Hide file tree
Showing 8 changed files with 519 additions and 50 deletions.
17 changes: 17 additions & 0 deletions packages/wpcom.js/lib/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ var Category = require( './site.category' );
var Tag = require( './site.tag' );
var Media = require( './site.media' );
var Comment = require( './site.comment' );
var SiteWordAds = require( './site.wordads' );
var Follow = require( './site.follow' );
var debug = require( 'debug' )( 'wpcom:site' );

Expand Down Expand Up @@ -350,6 +351,22 @@ Site.prototype.statsPostViews = function( postId, query, fn ) {
return this.wpcom.req.get( path, query, fn );
};

/**
* Return a `SiteWordAds` instance.
*
* *Example:*
* // Create a SiteWordAds instance
*
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds();
*
* @return {SiteWordAds} SiteWordAds instance
*/
Site.prototype.wordAds = function() {
return new SiteWordAds( this._id, this.wpcom );
};

/**
* Expose `Site` module
*/
Expand Down
56 changes: 56 additions & 0 deletions packages/wpcom.js/lib/site.wordads.earnings.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/**
* `SiteWordAdsEarnings` constructor.
*
* *Example:*
* // Require `wpcom-unpublished` library
* import wpcomUnpublished from 'wpcom-unpublished';
*
* // Create a `wpcomUnpublished` instance
* var wpcom = wpcomUnpublished();
*
* // Create a `SiteWordAdsEarnings` instance
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .earnings();
*
*
* @param {String} sid - site identifier
* @param {WPCOM} wpcom - wpcom instance
* @return {Null} null
*/
function SiteWordAdsEarnings( sid, wpcom ) {
if ( ! ( this instanceof SiteWordAdsEarnings ) ) {
return new SiteWordAdsEarnings( sid, wpcom );
}

this._sid = sid;
this.wpcom = wpcom;
}

/**
* Get detailed WordAds earnings information about the site.
*
* *Example:*
* // Get site earnings information
* wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .earnings()
* .get( function( err, data ) {
* // `earnings` information object
* } );
*
* @param {Object} [query] - query object parameter
* @param {Function} fn - callback function
* @return {Function} request handler
*/
SiteWordAdsEarnings.prototype.get = function( query, fn ) {
return this.wpcom.req.get( '/sites/' + this._sid + '/wordads/earnings', query, fn );
};

/**
* Expose `SiteWordAdsEarnings` module
*/

module.exports = SiteWordAdsEarnings;
94 changes: 94 additions & 0 deletions packages/wpcom.js/lib/site.wordads.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/**
* Module dependencies.
*/
import SiteWordAdsSettings from './site.wordads.settings';
import SiteWordAdsEarnings from './site.wordads.earnings';
import SiteWordAdsTOS from './site.wordads.tos';

/**
* `SiteWordAds` constructor.
*
* Use a `WPCOM#Me` instance to create a new `SiteWordAds` instance.
*
* *Example:*
* // Require `wpcom-unpublished` library
* import wpcomUnpublished from 'wpcom-unpublished';
*
* // Create a `wpcomUnpublished` instance
* var wpcom = wpcomUnpublished();
*
* // Create a `SiteWordAds` instance
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds();
*
* @param {String} sid - site identifier
* @param {WPCOM} wpcom - wpcom instance
* @return {Null} null
*/
function SiteWordAds( sid, wpcom ) {
if ( ! ( this instanceof SiteWordAds ) ) {
return new SiteWordAds( sid, wpcom );
}

this._sid = sid;
this.wpcom = wpcom;
}

/**
* Return a `SiteWordAdsSettings` instance.
*
* *Example:*
* // Create a SiteWordAdsSettings instance
*
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .settings();
*
* @return {SiteWordAdsSettings} site WordAds settings instance
*/
SiteWordAds.prototype.settings = function() {
return new SiteWordAdsSettings( this._sid, this.wpcom );
};

/**
* Return a `SiteWordAdsEarnings` instance.
*
* *Example:*
* // Create a SiteWordAdsEarnings instance
*
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .earnings();
*
* @return {SiteWordAdsEarnings} site WordAds earnings instance
*/
SiteWordAds.prototype.earnings = function() {
return new SiteWordAdsEarnings( this._sid, this.wpcom );
};

/**
* Return a `SiteWordAdsTOS` instance.
*
* *Example:*
* // Create a SiteWordAdsTOS instance
*
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .tos();
*
* Return SiteWordAdsTOS object for the site.
*
* @return {SiteWordAdsTOS} site wordAds TOS instance
*/
SiteWordAds.prototype.tos = function() {
return new SiteWordAdsTOS( this._sid, this.wpcom );
};

/**
* Expose `SiteWordAds` module
*/
module.exports = SiteWordAds;
80 changes: 80 additions & 0 deletions packages/wpcom.js/lib/site.wordads.settings.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/**
* `SiteWordAdsSettings` constructor.
*
* *Example:*
* // Require `wpcom-unpublished` library
* import wpcomUnpublished from 'wpcom-unpublished';
*
* // Create a `wpcomUnpublished` instance
* var wpcom = wpcomUnpublished();
*
* // Create a `SiteWordAdsSettings` instance
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .settings();
*
*
* @param {String} sid - site identifier
* @param {WPCOM} wpcom - wpcom instance
* @return {Null} null
*/
function SiteWordAdsSettings( sid, wpcom ) {
if ( ! ( this instanceof SiteWordAdsSettings ) ) {
return new SiteWordAdsSettings( sid, wpcom );
}

this._sid = sid;
this.wpcom = wpcom;
}

/**
* Get detailed WordAds settings information about the site.
*
* *Example:*
* // Get site settings information
* wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .settings()
* .get( function( err, data ) {
* // `settings` information object
* } );
*
* @param {Object} [query] - query object parameter
* @param {Function} fn - callback function
* @return {Function} request handler
*/
SiteWordAdsSettings.prototype.get = function( query, fn ) {
return this.wpcom.req.get( '/sites/' + this._sid + '/wordads/settings', query, fn );
};

/**
* Update WordAds settings for the site.
*
* *Example:*
* var settings = {}; // your settings here
*
* // Get site settings information
* wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .settings()
* .update( settings, function( err, data ) {
* // data settings information object
* } );
*
* @param {Object} [query] - query object parameter
* @param {Object} body - body object parameter
* @param {Function} fn - callback function
* @return {Function} request handler
*/
SiteWordAdsSettings.prototype.update = function( query, body, fn ) {
var path = '/sites/' + this._sid + '/wordads/settings';
return this.wpcom.req.post( path, query, body, fn );
};

/**
* Expose `SiteWordAdsSettings` module
*/
module.exports = SiteWordAdsSettings;
99 changes: 99 additions & 0 deletions packages/wpcom.js/lib/site.wordads.tos.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/**
* `SiteWordAdsTOS` constructor.
*
* *Example:*
* // Require `wpcom-unpublished` library
* import wpcomUnpublished from 'wpcom-unpublished';
*
* // Create a `wpcomUnpublished` instance
* var wpcom = wpcomUnpublished();
*
* // Create a `SiteWordAdsTOS` instance
* var wordAds = wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .tos();
*
* @param {String} sid - site identifier
* @param {WPCOM} wpcom - wpcom instance
* @return {Null} null
*/
function SiteWordAdsTOS( sid, wpcom ) {
if ( ! ( this instanceof SiteWordAdsTOS ) ) {
return new SiteWordAdsTOS( sid, wpcom );
}

this._sid = sid;
this.wpcom = wpcom;
}

/**
* GET site's WordAds TOS
*
* *Example:*
* // Get site TOS information
* wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .tos()
* .get( function( err, data ) {
* // `settings` information object
* } );

* @param {Object} [query] - query object parameter
* @param {Function} fn - callback function
* @return {Function} request handler
*/
SiteWordAdsTOS.prototype.get = function( query, fn ) {
return this.wpcom.req.get( '/sites/' + this._sid + '/wordads/tos', query, fn );
};

/**
* UPDATE site's WordAds TOS
*
* *Example:*
* // Update TOS
* wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .tos()
* .update( { tos: 'signed' }, function( err, data ) {
* // data settings information object
* } );
*
* @param {Object} [query] - query object parameter
* @param {Object} body - body object parameter
* @param {Function} fn - callback function
* @return {Function} request handler
*/
SiteWordAdsTOS.prototype.update = function( query, body, fn ) {
var path = '/sites/' + this._sid + '/wordads/tos';
return this.wpcom.req.post( path, query, body, fn );
};

/**
* SIGN site's WordAds TOS
*
* *Example:*
* // Sign TOS
* wpcom
* .site( 'my-blog.wordpress.com' )
* .wordAds()
* .tos()
* .sign( function( err, data ) {
* // data settings information object
* } );
*
* @param {Object} [query] - query object parameter
* @param {Function} fn - callback function
* @return {Function} request handler
*/
SiteWordAdsTOS.prototype.sign = function( query, fn ) {
var path = '/sites/' + this._sid + '/wordads/tos';
return this.wpcom.req.post( path, query, { tos: 'signed' }, fn );
};

/**
* Expose `SiteWordAdsTOS` module
*/
module.exports = SiteWordAdsTOS;
Loading

0 comments on commit 861fea6

Please sign in to comment.