diff --git a/steam/UserAuth.js b/steam/UserAuth.js new file mode 100644 index 0000000..79bcf7e --- /dev/null +++ b/steam/UserAuth.js @@ -0,0 +1,57 @@ +module.exports = (function(){ + "use strict"; + var Client = require('./Client'), + q = require('q'), + AuthContainer = require('./containers/Auth'); + + function UserAuth() { + Client.apply(this, arguments); + this.setInterface('ISteamUserAuth'); + } + + UserAuth.prototype = Object.create(Client.prototype); + UserAuth.prototype.constructor = UserAuth; + + UserAuth.prototype.AuthenticateUserTicket = function AuthenticateUserTicket(appId, sessionTicket) { + var deferred = q.defer(), + args, + client, + authStatus; + + this.setMethod('AuthenticateUserTicket'); + this.setVersion(1); + + if(!appId || !Number.isSafeInteger(appId)) + { + deferred.reject(new Error("Invalid appId")); + } + if(!sessionTicket) + { + deferred.reject(new Error("Invalid sessionTicket")); + } + + args = { + 'appid': appId, + 'ticket': sessionTicket + }; + + client = this.setupClient(args); + + client.then(function(result){ + if(result.data.response.error != null && result.data.response.error != null) { + deferred.reject(result.data.response); + } + else { + var auth = new AuthContainer(result.data.response.params); + deferred.resolve(auth); + } + }) + .catch(function(result){ + deferred.reject(result); + }); + + return deferred.promise; + }; + + return UserAuth; +})(); diff --git a/steam/api.js b/steam/api.js index 48cfadd..56f52f2 100644 --- a/steam/api.js +++ b/steam/api.js @@ -7,6 +7,7 @@ mixin(exports, { News: require('./News'), App: require('./App'), User: require('./User'), + UserAuth: require('./UserAuth'), Player: require('./Player'), UserStats: require('./User/Stats'), Community: require('./Community'), diff --git a/steam/containers/Auth.js b/steam/containers/Auth.js new file mode 100644 index 0000000..cfabdc1 --- /dev/null +++ b/steam/containers/Auth.js @@ -0,0 +1,13 @@ +module.exports = (function(undefined){ + "use strict"; + + function Auth(auth) { + this.result = auth.result; + this.steamid = auth.steamid; + this.ownersteamid = auth.ownersteamid; + this.vacbanned = auth.vacbanned; + this.publisherbanned = auth.publisherbanned; + } + + return Auth; +})();