@@ -764,6 +764,7 @@ usersApi.merge = function(app_id, newAppUser, new_id, old_id, new_device_id, old
764764var deleteMyExport = function ( exportID ) { //tries to delete packed file, exported folder and saved export in gridfs
765765 //normally there should be only export in gridfs. Cleaning all to be sure.
766766 //rejects only if there stays any saved data for export
767+ log . d ( "deleteMyExport:" + exportID ) ;
767768 return new Promise ( function ( resolve , reject ) {
768769 //remove archive
769770 var errors = [ ] ;
@@ -775,7 +776,6 @@ var deleteMyExport = function(exportID) { //tries to delete packed file, exporte
775776 errors . push ( err ) ;
776777 }
777778 }
778-
779779 countlyFs . gridfs . deleteFile ( "appUsers" , path . resolve ( __dirname , './../../../export/AppUser/' + exportID + '.tar.gz' ) , { id : exportID + '.tar.gz' } , function ( error ) {
780780 if ( error && error . message && error . message . substring ( 0 , 12 ) !== "FileNotFound" && error . message . substring ( 0 , 14 ) !== 'File not found' ) {
781781 log . e ( error . message . substring ( 0 , 14 ) ) ;
@@ -806,6 +806,18 @@ var deleteMyExport = function(exportID) { //tries to delete packed file, exporte
806806 }
807807 } ) ;
808808
809+
810+ } ) . then ( function ( ) {
811+ return new Promise ( function ( resolve , reject ) {
812+ common . db . collection ( "exports" ) . remove ( { "_eid" : exportID } , function ( err0 ) {
813+ if ( err0 ) {
814+ reject ( err0 ) ;
815+ }
816+ else {
817+ resolve ( ) ;
818+ }
819+ } ) ;
820+ } ) ;
809821 } ) ;
810822} ;
811823
@@ -822,46 +834,42 @@ usersApi.deleteExport = function(filename, params, callback) {
822834 //remove archive
823835 deleteMyExport ( base_name [ 0 ] ) . then (
824836 function ( ) {
825- common . db . collection ( "exports" ) . remove ( { "_eid" : base_name [ 0 ] } , function ( err0 ) {
826- if ( err0 ) {
827- log . e ( err0 ) ;
828- }
829- if ( name_parts . length === 3 && name_parts [ 2 ] !== 'HASH' ) {
830- //update user info
831- common . db . collection ( 'app_users' + name_parts [ 1 ] ) . update ( { "uid" : name_parts [ 2 ] } , { $unset : { "appUserExport" : "" } } , { upsert : false , multi : true } , function ( err ) {
832- if ( err ) {
833- callback ( err , "" ) ;
834- }
835- else {
836- plugins . dispatch ( "/systemlogs" , {
837- params : params ,
838- action : "export_app_user_deleted" ,
839- data : {
840- result : "ok" ,
841- uids : name_parts [ 2 ] ,
842- id : base_name [ 0 ] ,
843- app_id : name_parts [ 1 ] ,
844- info : "Exported data deleted"
845- }
846- } ) ;
847- callback ( null , "Export deleted" ) ;
848- }
849- } ) ;
850- }
851- else {
852- plugins . dispatch ( "/systemlogs" , {
853- params : params ,
854- action : "export_app_user_deleted" ,
855- data : {
856- result : "ok" ,
857- id : base_name [ 0 ] ,
858- app_id : name_parts [ 1 ] ,
859- info : "Exported data deleted"
860- }
861- } ) ;
862- callback ( null , "Export deleted" ) ;
863- }
864- } ) ;
837+ if ( name_parts . length === 3 && name_parts [ 2 ] !== 'HASH' ) {
838+ //update user info
839+ common . db . collection ( 'app_users' + name_parts [ 1 ] ) . update ( { "uid" : name_parts [ 2 ] } , { $unset : { "appUserExport" : "" } } , { upsert : false , multi : true } , function ( err ) {
840+ if ( err ) {
841+ callback ( err , "" ) ;
842+ }
843+ else {
844+ plugins . dispatch ( "/systemlogs" , {
845+ params : params ,
846+ action : "export_app_user_deleted" ,
847+ data : {
848+ result : "ok" ,
849+ uids : name_parts [ 2 ] ,
850+ id : base_name [ 0 ] ,
851+ app_id : name_parts [ 1 ] ,
852+ info : "Exported data deleted"
853+ }
854+ } ) ;
855+ callback ( null , "Export deleted" ) ;
856+ }
857+ } ) ;
858+ }
859+ else {
860+ plugins . dispatch ( "/systemlogs" , {
861+ params : params ,
862+ action : "export_app_user_deleted" ,
863+ data : {
864+ result : "ok" ,
865+ id : base_name [ 0 ] ,
866+ app_id : name_parts [ 1 ] ,
867+ info : "Exported data deleted"
868+ }
869+ } ) ;
870+ callback ( null , "Export deleted" ) ;
871+ }
872+
865873 } ,
866874 function ( err ) {
867875 console . log ( err ) ;
@@ -1073,12 +1081,20 @@ usersApi.export = function(app_id, query, params, callback) {
10731081 // else {
10741082 // resolve();
10751083 // }
1076- new Promise ( function ( resolve ) {
1077- log . d ( "collection marked" ) ;
1078- //export data from metric_changes
10791084
1080- export_safely ( { projection : { "appUserExport" : 0 } , export_id : export_id , app_id : app_id , args : [ ...dbargs , "--collection" , "metric_changes" + app_id , "-q" , '{"uid":{"$in": ["' + res [ 0 ] . uid . join ( '","' ) + '"]}}' , "--out" , export_folder + "/metric_changes" + app_id + ".json" ] } ) . finally ( function ( ) {
1081- resolve ( ) ;
1085+ //try deleting old export
1086+ deleteMyExport ( export_id ) . then ( function ( err ) {
1087+ if ( err ) {
1088+ log . e ( err ) ;
1089+ }
1090+ log . d ( "old export deleted" ) ;
1091+ return new Promise ( function ( resolve ) {
1092+ log . d ( "collection marked" ) ;
1093+ //export data from metric_changes
1094+
1095+ export_safely ( { projection : { "appUserExport" : 0 } , export_id : export_id , app_id : app_id , args : [ ...dbargs , "--collection" , "metric_changes" + app_id , "-q" , '{"uid":{"$in": ["' + res [ 0 ] . uid . join ( '","' ) + '"]}}' , "--out" , export_folder + "/metric_changes" + app_id + ".json" ] } ) . finally ( function ( ) {
1096+ resolve ( ) ;
1097+ } ) ;
10821098 } ) ;
10831099 } ) . then ( function ( ) {
10841100 log . d ( "metric_changes exported" ) ;
0 commit comments