@Override
  public ActionResponseDTO<OrganizationSetting> saveOrUpdateOrganizationSetting(
      String organizationUid, OrganizationSetting organizationSetting) throws Exception {
    boolean isUpdateOrInsertDone = false;
    if (organizationUid != null
        && organizationSetting != null
        && organizationSetting.getValue() != null) {
      OrganizationSetting existingOrganizationSetting =
          organizationSettingRepository.getOrganizationSettings(
              organizationUid, organizationSetting.getKey());
      if (existingOrganizationSetting == null) {
        OrganizationSetting newOrganizationSetting = new OrganizationSetting();
        newOrganizationSetting.setOrganization(
            organizationRepository.getOrganizationByUid(organizationUid));
        newOrganizationSetting.setKey(organizationSetting.getKey());
        newOrganizationSetting.setValue(organizationSetting.getValue());
        organizationSettingRepository.save(newOrganizationSetting);
        isUpdateOrInsertDone = true;
      } else {
        if (existingOrganizationSetting != null) {
          existingOrganizationSetting.setValue(organizationSetting.getValue());
          organizationSetting.setOrganization(
              organizationRepository.getOrganizationByUid(organizationUid));
          organizationSettingRepository.save(existingOrganizationSetting);
          organizationSetting = existingOrganizationSetting;
          isUpdateOrInsertDone = true;
        }
      }
      if (isUpdateOrInsertDone) {
        settingService.resetOrganizationSettings(organizationSetting.getKey());
      }
    } else {
      throw new BadRequestException("Values should not be null !");
    }

    return new ActionResponseDTO<OrganizationSetting>(organizationSetting, null);
  }