diff --git a/notify-term/WNSAuth.js b/notify-term/WNSAuth.js index 4a2068b..9610a0a 100644 --- a/notify-term/WNSAuth.js +++ b/notify-term/WNSAuth.js @@ -53,7 +53,7 @@ class WNSAuth extends EventEmitter } ); } - Register( ChannelUri, handler ) + Register( uuid, ChannelUri, handler ) { var _self = this; var VerifyChannel = () => @@ -64,7 +64,14 @@ class WNSAuth extends EventEmitter , message: "Registration success" }); - var uuid = Rand.uuid(); + if( uuid ) + { + Dragonfly.Info( "Renewal request: " + uuid ); + this.__updateToken( uuid, ChannelUri, handler ); + return; + } + + uuid = Rand.uuid(); _self.__send( ChannelUri, N, ( sender, e ) => { @@ -76,24 +83,7 @@ class WNSAuth extends EventEmitter if( e.statusCode == 200 ) { - Model.Tokens.update( - { name: uuid } - , { name: uuid, token: ChannelUri } - , { upsert: true } - ) - .exec( ( err, data ) => { - - if( err ) - { - Dragonfly.Error( err ); - handler( _self, "Server Error: Cannot save channel information" ); - return; - } - - // Success - handler( _self, uuid ); - } ); - + this.__updateToken( uuid, ChannelUri, handler ); return; } @@ -147,6 +137,28 @@ class WNSAuth extends EventEmitter } ); } + __updateToken( uuid, ChannelUri, handler ) + { + var _self = this; + Model.Tokens.update( + { name: uuid } + , { name: uuid, token: ChannelUri } + , { upsert: true } + ) + .exec( ( err, data ) => { + + if( err ) + { + Dragonfly.Error( err ); + handler( _self, "Server Error: Cannot save channel information" ); + return; + } + + // Success + handler( _self, uuid ); + } ); + } + __send( ChannelUri, NotisQ, handler ) { if( !ChannelUri ) diff --git a/notify-term/app.js b/notify-term/app.js index 31404a2..4423f29 100644 --- a/notify-term/app.js +++ b/notify-term/app.js @@ -16,8 +16,24 @@ class App extends Base constructor( Http ) { super( Http ); + + // Everything here is plain text + this.HTTP.response.headers[ "Content-Type" ] = "text/plain; charset=utf-8"; + this.result = "Hello there! This is a notify-term server.\nFor more information please head to https://github.com/tgckpg/notify-term"; + if( !this.HTTP.request.isPost ) + { + if( this.HTTP.request.uri.path != "/" ) + { + this.result = "This site has no static content"; + this.HTTP.response.statusCode = 404; + } + + this.plantResult(); + return; + } + this.OAuth = new WNSAuth(); this.OAuth.addListener( "AuthComplete", this.OnAuthed.bind( this ) ); this.OAuth.Authenticate(); @@ -51,7 +67,7 @@ class App extends Base { case "register": this.OAuth.Register( - query.uri, ( sender, mesg ) => { + query.id, query.uri, ( sender, mesg ) => { _self.result = mesg; _self.plantResult(); } );