@@ -115,6 +115,33 @@ var putUser = toPromise(function (username, opts, callback) {
115
115
} ) ;
116
116
} ) ;
117
117
118
+ var deleteUser = toPromise ( function ( username , opts , callback ) {
119
+ var db = this ;
120
+ if ( typeof callback === 'undefined' ) {
121
+ callback = typeof opts === 'undefined' ? username : opts ;
122
+ opts = { } ;
123
+ }
124
+ if ( [ 'http' , 'https' ] . indexOf ( db . type ( ) ) === - 1 ) {
125
+ return callback ( new AuthError ( 'This plugin only works for the http/https adapter. ' +
126
+ 'So you should use new PouchDB("http://mysite.com:5984/mydb") instead.' ) ) ;
127
+ } else if ( ! username ) {
128
+ return callback ( new AuthError ( 'You must provide a username' ) ) ;
129
+ }
130
+
131
+ db . getUser ( username , opts , function ( error , user ) {
132
+ if ( error ) {
133
+ return callback ( error ) ;
134
+ }
135
+
136
+ var url = getUsersUrl ( db ) + '/' + encodeURIComponent ( user . _id ) + '?rev=' + user . _rev ;
137
+ var ajaxOpts = assign ( {
138
+ method : 'DELETE' ,
139
+ url : url ,
140
+ } , opts . ajax || { } ) ;
141
+ ajaxCore ( ajaxOpts , wrapError ( callback ) ) ;
142
+ } ) ;
143
+ } ) ;
144
+
118
145
var changePassword = toPromise ( function ( username , password , opts , callback ) {
119
146
var db = this ;
120
147
if ( typeof callback === 'undefined' ) {
@@ -209,4 +236,12 @@ var changeUsername = toPromise(function (oldUsername, newUsername, opts, callbac
209
236
} ) . catch ( callback ) ;
210
237
} ) ;
211
238
212
- export { getUsersDatabaseUrl , signUp , getUser , putUser , changePassword , changeUsername } ;
239
+ export {
240
+ getUsersDatabaseUrl ,
241
+ signUp ,
242
+ getUser ,
243
+ putUser ,
244
+ deleteUser ,
245
+ changePassword ,
246
+ changeUsername ,
247
+ } ;
0 commit comments