getUrlImage static method

String getUrlImage(
  1. dynamic value, {
  2. String defaultUrl = Common.DEFAULT_IMAGE_URL,
})

value có thể là id ảnh (ID) hoặc tên ảnh (String)

Ví dụ:

ImageByID.getUrlImage(12)

ImageByID.getUrlImage('logo_8xland.png')

Implementation

static String getUrlImage(
  dynamic value, {
  String defaultUrl = Common.DEFAULT_IMAGE_URL,
}) {
  if (value == null) return defaultUrl;
  if (value is int && Common.mapImage.containsKey(value.toString())) {
    Map<String, Object> data =
        Common.mapImage[value.toString()] as Map<String, Object>;
    String pathKey = data.keys.firstWhere(
      (element) => element.endsWith('_image_path'),
      orElse: () => data.keys.firstWhere(
        (element) => element.endsWith('_path'),
        orElse: () => '',
      ),
    );
    if (pathKey.isEmpty) return defaultUrl;
    return Methods.getString(data, pathKey);
  }
  if (value is String) {
    value = value.trim();
    for (Map<String, Object?> data in Common.mapImage.values) {
      String nameKey = data.keys.firstWhere(
        (element) => element.endsWith('_image_name'),
        orElse: () => data.keys.firstWhere(
          (element) => element.endsWith('_image_path'),
          orElse: () => '',
        ),
      );
      if (nameKey.isEmpty) continue;

      String name = Methods.getString(data, nameKey);
      if (nameKey.endsWith('_path')) {
        name = name.split('/').last;
      }
      name = name.trim();
      if (name == value) {
        String pathKey = data.keys.firstWhere(
          (element) => element.endsWith('_image_path'),
          orElse: () => data.keys.firstWhere(
            (element) => element.endsWith('_path'),
            orElse: () => '',
          ),
        );
        if (pathKey.isEmpty) return defaultUrl;
        return Methods.getString(data, pathKey);
      }
    }
  }
  return defaultUrl;
}