@@ -122,6 +122,61 @@ public function deleteAllObjectsAction($auth_key, $version)
122
122
array ("Files not deleted " => $ undeletedFiles ))));
123
123
}
124
124
125
+ public function deleteSpecificObjectsAction ($ auth_key , $ version , $ option , $ to_delete )
126
+ {
127
+ if ($ this ->container ->getParameter ('auth_key ' ) != $ auth_key )
128
+ return new Response (json_encode (array ("success " => false , "step " => 0 , "message " => "Invalid authorization key. " )));
129
+
130
+ if ($ version != "v1 " )
131
+ return new Response (json_encode (array ("success " => false , "step " => 0 , "message " => "Invalid API version. " )));
132
+
133
+ $ tempDir = $ this ->container ->getParameter ('temp_dir ' );
134
+ $ objectFilesDir = $ this ->container ->getParameter ('objdir ' );
135
+
136
+ if ($ option == "core " )
137
+ $ to_delete = str_replace (": " , "_ " , $ to_delete );
138
+
139
+ $ response = array ();
140
+ $ response ["deleted_files " ] = "" ;
141
+ $ response ["undeleted_files " ] = "" ;
142
+
143
+ if ($ handle = opendir ("$ tempDir/ $ objectFilesDir " ))
144
+ {
145
+ while (false !== ($ entry = readdir ($ handle )))
146
+ {
147
+ if ($ entry == ". " || $ entry == ".. " || $ entry == ".DS_Store " )
148
+ continue ;
149
+
150
+ if ($ option == "library " && strpos ($ entry , "______ " . $ to_delete . "_______ " ) === false )
151
+ continue ;
152
+
153
+ if ($ option == "core " && strpos ($ entry , "_ " . $ to_delete . "_ " ) === false )
154
+ continue ;
155
+
156
+
157
+ if (@unlink ("$ tempDir/ $ objectFilesDir/ $ entry " ) === false )
158
+ $ response ["undeleted_files " ] .= $ entry . "\n" ;
159
+ else
160
+ $ response ["deleted_files " ] .= $ entry . "\n" ;
161
+
162
+ }
163
+ closedir ($ handle );
164
+ }
165
+ else
166
+ {
167
+ return new Response (json_encode (array ("success " => false , "step " => 0 , "message " => "Failed to access object files directory. " )));
168
+ }
169
+
170
+ if ($ response ["undeleted_files " ] != "" )
171
+ {
172
+ $ message = ($ option == "library " ) ? "Failed to delete one or more of the specified library object files. " : "Failed to delete one or more of the specified core object files. " ;
173
+ return new Response (json_encode (array_merge (array ("success " => false , "step " => 0 , "message " => $ message ), $ response )));
174
+ }
175
+
176
+ $ message = ($ option == "library " ) ? "Library deleted successfully. " : "Core object files deleted successfully. " ;
177
+ return new Response (json_encode (array_merge (array ("success " => true , "message " => $ message ), $ response )));
178
+ }
179
+
125
180
/**
126
181
\brief Creates a list of the configuration parameters to be used in the compilation process.
127
182
0 commit comments