@@ -764,6 +764,7 @@ usersApi.merge = function(app_id, newAppUser, new_id, old_id, new_device_id, old
764
764
var deleteMyExport = function ( exportID ) { //tries to delete packed file, exported folder and saved export in gridfs
765
765
//normally there should be only export in gridfs. Cleaning all to be sure.
766
766
//rejects only if there stays any saved data for export
767
+ log . d ( "deleteMyExport:" + exportID ) ;
767
768
return new Promise ( function ( resolve , reject ) {
768
769
//remove archive
769
770
var errors = [ ] ;
@@ -775,7 +776,6 @@ var deleteMyExport = function(exportID) { //tries to delete packed file, exporte
775
776
errors . push ( err ) ;
776
777
}
777
778
}
778
-
779
779
countlyFs . gridfs . deleteFile ( "appUsers" , path . resolve ( __dirname , './../../../export/AppUser/' + exportID + '.tar.gz' ) , { id : exportID + '.tar.gz' } , function ( error ) {
780
780
if ( error && error . message && error . message . substring ( 0 , 12 ) !== "FileNotFound" && error . message . substring ( 0 , 14 ) !== 'File not found' ) {
781
781
log . e ( error . message . substring ( 0 , 14 ) ) ;
@@ -806,6 +806,18 @@ var deleteMyExport = function(exportID) { //tries to delete packed file, exporte
806
806
}
807
807
} ) ;
808
808
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
+ } ) ;
809
821
} ) ;
810
822
} ;
811
823
@@ -822,46 +834,42 @@ usersApi.deleteExport = function(filename, params, callback) {
822
834
//remove archive
823
835
deleteMyExport ( base_name [ 0 ] ) . then (
824
836
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
+
865
873
} ,
866
874
function ( err ) {
867
875
console . log ( err ) ;
@@ -1073,12 +1081,20 @@ usersApi.export = function(app_id, query, params, callback) {
1073
1081
// else {
1074
1082
// resolve();
1075
1083
// }
1076
- new Promise ( function ( resolve ) {
1077
- log . d ( "collection marked" ) ;
1078
- //export data from metric_changes
1079
1084
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
+ } ) ;
1082
1098
} ) ;
1083
1099
} ) . then ( function ( ) {
1084
1100
log . d ( "metric_changes exported" ) ;
0 commit comments