Skip to content

Commit

Permalink
get languages from api
Browse files Browse the repository at this point in the history
  • Loading branch information
katerina20 committed Jun 6, 2024
1 parent febb955 commit e5c950e
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 387 deletions.
14 changes: 0 additions & 14 deletions src/main/java/com/crowdin/cli/properties/FileBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import static com.crowdin.cli.BaseCli.RESOURCE_BUNDLE;
import static com.crowdin.cli.properties.PropertiesBuilder.*;
import static com.crowdin.cli.utils.language.LangCodesUtil.isValidCode;

@Data
public class FileBean {
Expand Down Expand Up @@ -173,18 +171,6 @@ public List<String> checkProperties(FileBean bean) {
}
}

Map<String, Map<String, String>> languagesMapping = bean.getLanguagesMapping();

if (languagesMapping != null) {
Optional<String> invalidCode = languagesMapping.values().stream()
.flatMap(innerMap -> innerMap.keySet().stream())
.filter(code -> !isValidCode(code))
.findFirst();
if (invalidCode.isPresent()) {
errors.add(RESOURCE_BUNDLE.getString("error.config.languages_mapping"));
}
}

String updateOption = bean.getUpdateOption();
if (updateOption != null && !(updateOption.equals("update_as_unapproved") || updateOption.equals("update_without_changes"))) {
errors.add(RESOURCE_BUNDLE.getString("error.config.update_option"));
Expand Down
22 changes: 19 additions & 3 deletions src/main/java/com/crowdin/cli/properties/PropertiesWithFiles.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package com.crowdin.cli.properties;

import com.crowdin.cli.client.Clients;
import com.crowdin.cli.client.ProjectClient;
import com.crowdin.client.languages.model.Language;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;

import static com.crowdin.cli.BaseCli.IGNORE_HIDDEN_FILES_PATTERN;
Expand Down Expand Up @@ -77,6 +78,21 @@ public PropertiesBuilder.Messages checkProperties(PropertiesWithFiles props, Che
if (StringUtils.isNotEmpty(fileBean.getDest()) && !props.getPreserveHierarchy()) {
messages.addError(RESOURCE_BUNDLE.getString("error.dest_and_preserve_hierarchy"));
}
if (fileBean.getLanguagesMapping() != null) {
ProjectClient projectClient = Clients.getProjectClient(props.getApiToken(), props.getBaseUrl(), Long.parseLong(props.getProjectId()));
List<Language> languages = projectClient.listSupportedLanguages();

if (languages != null) {
Set<String> langCodes = languages.stream().map(lang -> lang.getId().toLowerCase()).collect(Collectors.toSet());

boolean hasInvalidCode = fileBean.getLanguagesMapping().values().stream()
.flatMap(innerMap -> innerMap.keySet().stream())
.anyMatch(langCode -> !langCodes.contains(langCode.toLowerCase()));
if (hasInvalidCode) {
messages.addError(RESOURCE_BUNDLE.getString("error.config.languages_mapping"));
}
}
}
}
}
if (props.getPseudoLocalization() != null) {
Expand Down
Loading

0 comments on commit e5c950e

Please sign in to comment.