From ed305e14f902e2cb2b3d527d13d2ffafe573468b Mon Sep 17 00:00:00 2001 From: Beau Collins Date: Thu, 5 Jul 2012 09:43:02 -0700 Subject: [PATCH] UserSync now accepts a preconfigured wordpress client --- lib/wordpress-user-methods.js | 15 +++++++++++++++ lib/wordpress-user-sync.js | 27 ++++++++++++++++----------- 2 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 lib/wordpress-user-methods.js diff --git a/lib/wordpress-user-methods.js b/lib/wordpress-user-methods.js new file mode 100644 index 0000000..a7b821f --- /dev/null +++ b/lib/wordpress-user-methods.js @@ -0,0 +1,15 @@ + +module.exports = function( client ){ + + [ 'getUsers', 'getUser', 'newUser', 'editUser', 'deleteUser' ].forEach( function( method ){ + client[method] = function(){ + var args = Array.prototype.slice.call( arguments ); + args.unshift( 'wp.' + method ); + this.authenticatedCall.apply( this, args ); + }; + } ); + + return client; + +}; + diff --git a/lib/wordpress-user-sync.js b/lib/wordpress-user-sync.js index f53d8ef..819938e 100644 --- a/lib/wordpress-user-sync.js +++ b/lib/wordpress-user-sync.js @@ -3,9 +3,6 @@ var wordpress = require('wordpress'), url = require('url'), queue = require('./queue'); -// extend it with user management methods -require( 'wordpress/lib/wordpress-user-management' )( wordpress.Client ); - module.exports = { run : function( options, stream, callback ){ var client = new UserSync( options ); @@ -34,18 +31,26 @@ Arguments: */ var UserSync = module.exports.UserSync = function( settings ){ - var settings = settings || {}; + var settings = settings || {}, client; settings.send_email = settings.send_email || true; - if( !settings.wordpress_api_url ) - throw( "UserSync require the wordpress_api_url setting" ); - var client = module.exports = wp = wordpress.createClient({ - url: settings.wordpress_api_url, - username: settings.username, - password: settings.password - }); + if ( settings.client ){ + client = settings.client + } else { + + if( !settings.wordpress_api_url ){ throw( "UserSync requires the wordpress_api_url setting" ); } + + client = module.exports = wp = wordpress.createClient({ + url: settings.wordpress_api_url, + username: settings.username, + password: settings.password + }); + } + + // extend it with user management methods + require( './wordpress-user-methods' )( client ); var operateOnUsers = function( jq_users, wp_users, callback ){ console.log("jQuery Users: ", wp_users.length);