[Content] Storage type usage removed
[platform/core/api/webapi-plugins.git] / src / content / content_manager.cc
index f7f5064..ae956a8 100644 (file)
@@ -49,17 +49,6 @@ static const std::string uri_prefix = "file://";
 static const std::string uri_absolute_prefix = "file:///";
 }
 
-const std::map<std::string, media_content_orientation_e> orientationMap = {
-    {"NORMAL", MEDIA_CONTENT_ORIENTATION_NORMAL},
-    {"FLIP_HORIZONTAL", MEDIA_CONTENT_ORIENTATION_HFLIP},
-    {"ROTATE_180", MEDIA_CONTENT_ORIENTATION_ROT_180},
-    {"FLIP_VERTICAL", MEDIA_CONTENT_ORIENTATION_VFLIP},
-    {"TRANSPOSE", MEDIA_CONTENT_ORIENTATION_TRANSPOSE},
-    {"ROTATE_90", MEDIA_CONTENT_ORIENTATION_ROT_90},
-    {"TRANSVERSE", MEDIA_CONTENT_ORIENTATION_TRANSVERSE},
-    {"ROTATE_270", MEDIA_CONTENT_ORIENTATION_ROT_270},
-};
-
 std::string get_date(char* tmpStr) {
   ScopeLogger();
   if (tmpStr) {
@@ -360,8 +349,7 @@ void ContentToJson(media_info_h info, picojson::object& o) {
 void ContentDirToJson(media_folder_h folder, picojson::object& o) {
   ScopeLogger();
   int ret;
-  char* tmpStr = NULL;
-  media_content_storage_e storage_type;
+  char *tmpStr = NULL;
 
   // id
   ret = media_folder_get_folder_id(folder, &tmpStr);
@@ -396,21 +384,6 @@ void ContentDirToJson(media_folder_h folder, picojson::object& o) {
     }
   }
 
-  // storageType
-  ret = media_folder_get_storage_type(folder, &storage_type);
-  // TODO: The function media_folder_get_storage_type is marked as deprecated since 5.0.
-  // As an alternative, it is recommended to use storage_get_type_dev function. However,
-  // this function does not work with internal storages. The media_folder_get_storage_type
-  // function should be kept or moved to internal header by Native API.
-  if (ret == MEDIA_CONTENT_ERROR_NONE) {
-    if (storage_type == MEDIA_CONTENT_STORAGE_INTERNAL) {
-      o["storageType"] = picojson::value(std::string("INTERNAL"));
-    } else {
-      LoggerD("storageType = %d, assuming EXTERNAL as storage type", storage_type);
-      o["storageType"] = picojson::value(std::string("EXTERNAL"));
-    }
-  }
-
   // modifiedDate
   struct stat stat_res;
   if (stat(folder_path.c_str(), &stat_res) == 0) {
@@ -422,10 +395,7 @@ void ContentDirToJson(media_folder_h folder, picojson::object& o) {
 static int setContent(media_info_h media, const picojson::value& content) {
   ScopeLogger();
 
-  int ret;
-  std::string name = content.get("name").to_str();
-  std::string description = content.get("description").to_str();
-  int rating = std::stoi(content.get("rating").to_str());
+  int ret = MEDIA_CONTENT_ERROR_NONE;
   bool is_fav = content.get("isFavorite").get<bool>();
 
   if (NULL == media) {
@@ -440,21 +410,6 @@ static int setContent(media_info_h media, const picojson::value& content) {
     return ret;
   }
 
-  ret = media_info_set_display_name(media, name.c_str());
-  if (ret != MEDIA_CONTENT_ERROR_NONE) {
-    LoggerE("Updating name failed.");
-  }
-
-  ret = media_info_set_description(media, description.c_str());
-  if (ret != MEDIA_CONTENT_ERROR_NONE) {
-    LoggerE("Updating description failed.");
-  }
-
-  ret = media_info_set_rating(media, rating);
-  if (ret != MEDIA_CONTENT_ERROR_NONE) {
-    LoggerE("Updating rating failed.");
-  }
-
   ret = media_info_set_favorite(media, is_fav);
   if (ret != MEDIA_CONTENT_ERROR_NONE) {
     LoggerE("Updating isFavorite failed.");
@@ -464,43 +419,38 @@ static int setContent(media_info_h media, const picojson::value& content) {
     LoggerE("Updating favorite failed.");
   }
 
-  if (type == MEDIA_CONTENT_TYPE_IMAGE) {
-    std::string orientation = content.get("orientation").to_str();
-    auto orientationToSet = orientationMap.find(orientation);
-
-    if (orientationToSet != orientationMap.end()) {
-      image_meta_h img;
-      if (MEDIA_CONTENT_ERROR_NONE == media_info_get_image(media, &img) &&
-          MEDIA_CONTENT_ERROR_NONE == image_meta_set_orientation(img, orientationToSet->second) &&
-          MEDIA_CONTENT_ERROR_NONE == image_meta_update_to_db(img)) {
-        LoggerD("orientation update was successful");
-      } else {
-        LoggerE("orientation update failed");
-      }
-      image_meta_destroy(img);
-    }
-  }
+  return MEDIA_CONTENT_ERROR_NONE;
+}
 
-  if (type == MEDIA_CONTENT_TYPE_IMAGE || type == MEDIA_CONTENT_TYPE_VIDEO) {
-    picojson::value geo = content.get("geolocation");
-    if (geo.evaluate_as_boolean()) {
-      LoggerD("geolocation is not null");
-      double latitude = atof(geo.get("latitude").to_str().c_str());
-      double longitude = atof(geo.get("longitude").to_str().c_str());
-      ret = media_info_set_latitude(media, latitude);
-      if (ret != MEDIA_CONTENT_ERROR_NONE) {
-        LoggerE("Updating geolocation is failed.");
-      }
-      ret = media_info_set_longitude(media, longitude);
-      if (ret != MEDIA_CONTENT_ERROR_NONE) {
-        LoggerD("Updating geolocation is failed.");
-      }
-    } else {
-      LoggerD("geolocation is null");
+static int updateContent(const picojson::value& content) {
+  ScopeLogger();
+
+  int ret = MEDIA_CONTENT_ERROR_NONE;
+  std::string id = content.get("id").to_str();
+  media_info_h media = nullptr;
+  SCOPE_EXIT {
+    if (media) {
+      media_info_destroy(media);
     }
+  };
+
+  ret = media_info_get_media_from_db(id.c_str(), &media);
+  if (ret != MEDIA_CONTENT_ERROR_NONE) {
+    LoggerE("media_info_get_media_from_db failed: %d", ret);
+    return ret;
+  }
+  ret = setContent(media, content);
+  if (ret != MEDIA_CONTENT_ERROR_NONE) {
+    LoggerE("setContent failed: %d", ret);
+    return ret;
+  }
+  ret = media_info_update_to_db(media);
+  if (ret != MEDIA_CONTENT_ERROR_NONE) {
+    LoggerE("media_info_update_to_db failed: %d", ret);
+    return ret;
   }
 
-  return MEDIA_CONTENT_ERROR_NONE;
+  return ret;
 }
 
 static void FolderToJson(media_folder_h folder, picojson::object* out) {
@@ -510,7 +460,6 @@ static void FolderToJson(media_folder_h folder, picojson::object* out) {
   char* id = NULL;
   char* path = NULL;
   time_t date;
-  media_content_storage_e storageType;
 
   int ret;
 
@@ -544,27 +493,10 @@ static void FolderToJson(media_folder_h folder, picojson::object* out) {
   }
   date = stat_res.st_mtime;
 
-  ret = media_folder_get_storage_type(folder, &storageType);
-  // TODO: The function media_folder_get_storage_type is marked as deprecated since 5.0.
-  // As an alternative, it is recommended to use storage_get_type_dev function. However,
-  // this function does not work with internal storages. The media_folder_get_storage_type
-  // function should be kept or moved to internal header by Native API.
-  if (ret != MEDIA_CONTENT_ERROR_NONE) {
-    LogAndReportError(ContentManager::convertError(ret), out,
-                      ("Failed: media_folder_get_storage_type"));
-    return;
-  }
-
   (*out)["id"] = picojson::value(std::string(id));
   (*out)["directoryURI"] = picojson::value(std::string(path));
   (*out)["title"] = picojson::value(std::string(name));
 
-  if (storageType == MEDIA_CONTENT_STORAGE_INTERNAL) {
-    (*out)["storageType"] = picojson::value(std::string("INTERNAL"));
-  } else if (storageType == MEDIA_CONTENT_STORAGE_EXTERNAL) {
-    (*out)["storageType"] = picojson::value(std::string("EXTERNAL"));
-  }
-
   (*out)["modifiedDate"] = picojson::value(static_cast<double>(date));
 }
 
@@ -691,22 +623,10 @@ bool ContentManager::isConnected() {
 void ContentManager::getDirectories(const std::shared_ptr<ReplyCallbackData>& user_data) {
   ScopeLogger();
   int ret;
-  filter_h filter = NULL;
-  ret = media_filter_create(&filter);
-  if (ret != MEDIA_CONTENT_ERROR_NONE) {
-    LoggerE("Failed: media_filter_create failed");
-    return;
-  }
-
-  SCOPE_EXIT {
-    media_filter_destroy(filter);
-  };
-
-  std::string condition = "(FOLDER_STORAGE_TYPE = 0 OR FOLDER_STORAGE_TYPE = 1)";
-  media_filter_set_condition(filter, condition.c_str(), MEDIA_CONTENT_COLLATE_DEFAULT);
 
   picojson::array pico_dirs;
-  ret = media_folder_foreach_folder_from_db(filter, media_foreach_directory_cb, &pico_dirs);
+  ret = media_folder_foreach_folder_from_db(nullptr, media_foreach_directory_cb,
+                                            &pico_dirs);
   if (ret != MEDIA_CONTENT_ERROR_NONE) {
     PlatformResult err = LogAndCreateResult(
         ErrorCode::UNKNOWN_ERR, "Getting the directories failed.",
@@ -987,46 +907,25 @@ void ContentManager::removePlaylist(std::string playlistId,
 
 int ContentManager::update(const picojson::value& args) {
   ScopeLogger();
-
-  int ret;
-  picojson::value content = args.get("content");
-  std::string id = content.get("id").to_str();
-
-  media_info_h media = NULL;
-  ret = media_info_get_media_from_db(id.c_str(), &media);
-  if (ret == MEDIA_CONTENT_ERROR_NONE) {
-    setContent(media, content);
-    ret = media_info_update_to_db(media);
-    media_info_destroy(media);
+  const picojson::value content = args.get("content");
+  int ret = updateContent(content);
+  if (ret != MEDIA_CONTENT_ERROR_NONE) {
+    LoggerE("updateContent failed: %d", ret);
   }
-
   return ret;
 }
 
 int ContentManager::updateBatch(const picojson::value& args) {
   ScopeLogger();
-  int ret = 0;
+  int ret = MEDIA_CONTENT_ERROR_NONE;
   std::vector<picojson::value> contents = args.get("contents").get<picojson::array>();
 
   for (picojson::value::array::iterator it = contents.begin(); it != contents.end(); ++it) {
-    picojson::value content = *it;
-    std::string id = content.get("id").to_str();
-    media_info_h media = NULL;
-    ret = media_info_get_media_from_db(id.c_str(), &media);
-    if (media != NULL && ret == MEDIA_CONTENT_ERROR_NONE) {
-      ret = setContent(media, content);
-      if (ret != MEDIA_CONTENT_ERROR_NONE) {
-        LoggerE("setContent failed");
-        return ret;
-      }
-
-      ret = media_info_update_to_db(media);
-      if (ret != MEDIA_CONTENT_ERROR_NONE) {
-        LoggerE("update to db failed");
-      }
-      media_info_destroy(media);
-    } else {
-      return ret;
+    const picojson::value content = *it;
+    ret = updateContent(content);
+    if (ret != MEDIA_CONTENT_ERROR_NONE) {
+      LoggerE("updateContent failed: %d", ret);
+      break;
     }
   }
   return ret;