[Filesystem] Refactor: Add PrepareError function
authorKamil Lysik <k.lysik@samsung.com>
Wed, 18 Feb 2015 15:43:31 +0000 (16:43 +0100)
committerWojciech Kosowicz <w.kosowicz@samsung.com>
Thu, 19 Feb 2015 12:43:00 +0000 (13:43 +0100)
This function is used to report Filesystem errors
in unified way.

Change-Id: I9a197ca19d4202b3ed3b3d110587cd4e86f76fdf
Signed-off-by: Kamil Lysik <k.lysik@samsung.com>
src/filesystem/filesystem_instance.cc
src/filesystem/filesystem_instance.h

index a6aa27fa8c4229a72a3110247186ca370ab54701..23f6dfddc5ce8206ba0f000c04bbf51383e40db2 100644 (file)
@@ -70,20 +70,7 @@ void FilesystemInstance::FileStat(const picojson::value& args,
     picojson::value response = picojson::value(picojson::object());
     picojson::object& obj = response.get<picojson::object>();
     obj["callbackId"] = picojson::value(callback_id);
-    switch (e) {
-      case FilesystemError::None:
-        ReportError(UnknownException("PLATFORM ERROR"), obj);
-        break;
-      case FilesystemError::NotFound:
-        ReportError(NotFoundException("PLATFORM ERROR"), obj);
-        break;
-      case FilesystemError::Other:
-        ReportError(UnknownException("PLATFORM ERROR"), obj);
-        break;
-      default:
-        ReportError(UnknownException("PLATFORM ERROR"), obj);
-        break;
-    }
+    PrepareError(e, obj);
     PostMessage(response.serialize().c_str());
   };
 
@@ -106,20 +93,7 @@ void FilesystemInstance::FileStatSync(const picojson::value& args,
 
   auto onError = [&](FilesystemError e) {
     LoggerD("enter");
-    switch (e) {
-      case FilesystemError::None:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-      case FilesystemError::NotFound:
-        ReportError(NotFoundException("PLATFORM ERROR"), out);
-        break;
-      case FilesystemError::Other:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-      default:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-    }
+    PrepareError(e, out);
   };
 
   FilesystemManager::GetInstance().StatPath(location, onSuccess, onError);
@@ -140,20 +114,7 @@ void FilesystemInstance::FilesystemGetWidgetPaths(const picojson::value& args,
 
   auto onError = [&](FilesystemError e) {
     LoggerD("enter");
-    switch (e) {
-      case FilesystemError::None:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-      case FilesystemError::NotFound:
-        ReportError(NotFoundException("PLATFORM ERROR"), out);
-        break;
-      case FilesystemError::Other:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-      default:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-    }
+    PrepareError(e, out);
   };
 
   FilesystemManager::GetInstance().GetWidgetPaths(onSuccess, onError);
@@ -176,25 +137,34 @@ void FilesystemInstance::FileSystemManagerFetchStorages(
 
   auto onError = [&](FilesystemError e) {
     LoggerD("enter");
-    switch (e) {
-      case FilesystemError::None:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-      case FilesystemError::NotFound:
-        ReportError(NotFoundException("PLATFORM ERROR"), out);
-        break;
-      case FilesystemError::Other:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-      default:
-        ReportError(UnknownException("PLATFORM ERROR"), out);
-        break;
-    }
+    PrepareError(e, out);
   };
 
   FilesystemManager::GetInstance().FetchStorages(onSuccess, onError);
 }
 
+void FilesystemInstance::PrepareError(const FilesystemError& error, picojson::object& out)
+{
+  LoggerD("enter");
+  switch (error) {
+    case FilesystemError::None:
+      ReportError(UnknownException("PLATFORM ERROR"), out);
+      break;
+    case FilesystemError::NotFound:
+      ReportError(NotFoundException("PLATFORM ERROR"), out);
+      break;
+    case FilesystemError::PermissionDenied:
+      ReportError(IOException("Permission denied"), out);
+      break;
+    case FilesystemError::Other:
+      ReportError(UnknownException("PLATFORM ERROR"), out);
+      break;
+    default:
+      ReportError(UnknownException("PLATFORM ERROR"), out);
+      break;
+  }
+}
+
 #undef CHECK_EXIST
 
 }  // namespace filesystem
index 9b29cdf0a7ace05e347ce14511aecbc058a0fae3..94ee6702cceb20ad8ed12dfc6a63ff0c92102da2 100644 (file)
@@ -6,6 +6,7 @@
 #define FILESYSTEM_FILESYSTEM_INSTANCE_H_
 
 #include "common/extension.h"
+#include "filesystem_utils.h"
 
 namespace extension {
 namespace filesystem {
@@ -22,6 +23,8 @@ class FilesystemInstance : public common::ParsedInstance {
                                 picojson::object& out);
   void FileSystemManagerFetchStorages(const picojson::value& args,
                                       picojson::object& out);
+
+  void PrepareError(const FilesystemError& error, picojson::object& out);
 };
 
 }  // namespace filesystem