Skip to content

Commit

Permalink
feat: new command: distribution (brunch support added)
Browse files Browse the repository at this point in the history
  • Loading branch information
yzerk committed Aug 28, 2023
1 parent f77a6e2 commit 1aa2d63
Showing 1 changed file with 32 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,21 @@
import com.crowdin.cli.commands.Outputter;
import com.crowdin.cli.commands.functionality.RequestBuilder;
import com.crowdin.cli.properties.ProjectProperties;
import com.crowdin.cli.utils.Utils;
import com.crowdin.cli.utils.console.ConsoleSpinner;
import com.crowdin.client.distributions.model.AddDistributionRequest;
import com.crowdin.client.distributions.model.Distribution;
import com.crowdin.client.distributions.model.ExportMode;
import com.crowdin.client.sourcefiles.model.Branch;
import com.crowdin.client.sourcefiles.model.FileInfo;
import lombok.AllArgsConstructor;

import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import static com.crowdin.cli.BaseCli.RESOURCE_BUNDLE;
import static com.crowdin.cli.utils.console.ExecutionStatus.OK;
Expand All @@ -37,32 +42,43 @@ class DistributionAddAction implements NewAction<ProjectProperties, ClientDistri
@Override
public void act(Outputter out, ProjectProperties pb, ClientDistribution client) {
CrowdinProjectFull project = ConsoleSpinner.execute(
out,
"message.spinner.fetching_project_info", "error.collect_project_info",
this.noProgress,
this.plainView,
() -> this.projectClient.downloadFullProject(this.branch)
out,
"message.spinner.fetching_project_info", "error.collect_project_info",
this.noProgress,
this.plainView,
() -> this.projectClient.downloadFullProject(this.branch)

Check warning on line 49 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L49

Added line #L49 was not covered by tests
);

if (files != null) {
List<String> projectFiles = project.getFiles().stream().map(FileInfo::getPath).collect(Collectors.toList());
List<String> notExistingFiles = files.stream().filter(file -> !projectFiles.contains(file))
Map<String, Long> projectBranches = project.getBranches().values().stream()
.collect(Collectors.toMap(Branch::getName, Branch::getId));
List<String> projectFiles = project.getFiles().stream()

Check warning on line 55 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L53-L55

Added lines #L53 - L55 were not covered by tests
.filter(file -> branch == null || file.getBranchId()
.equals(projectBranches.get(
branch)))
.map(FileInfo::getPath)
.collect(Collectors.toList());
List<String> notExistingFiles = files.stream()

Check warning on line 61 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L59-L61

Added lines #L59 - L61 were not covered by tests
.map(file -> branch == null ? file : Utils.sepAtStart(Paths.get(branch, file).toString()))
.filter(file -> !projectFiles.contains(file))
.collect(Collectors.toList());

Check warning on line 64 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L64

Added line #L64 was not covered by tests
if (!notExistingFiles.isEmpty()) {
throw new RuntimeException(String.format(RESOURCE_BUNDLE.getString("error.file_not_found"),
String.join("\n", notExistingFiles)));

Check warning on line 67 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L66-L67

Added lines #L66 - L67 were not covered by tests
}
}

files = branch != null ? files.stream().map(file->Utils.sepAtStart(Paths.get(branch, file).toString()))
.collect(Collectors.toList()): files;

Check warning on line 71 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L71

Added line #L71 was not covered by tests
List<Long> fileIds = files == null ? null : project
.getFiles()
.stream()
.filter(file -> files.contains(file.getPath()))
.map(FileInfo::getId)
.collect(Collectors.toList());
.getFiles()
.stream()
.filter(file -> files.contains(file.getPath()))
.map(FileInfo::getId)
.collect(Collectors.toList());

Check warning on line 77 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L73-L77

Added lines #L73 - L77 were not covered by tests

Distribution distribution;
AddDistributionRequest addDistributionRequest = RequestBuilder.addDistribution(name, exportMode, fileIds, bundleIds);
AddDistributionRequest addDistributionRequest = RequestBuilder.addDistribution(name, exportMode, fileIds,

Check warning on line 80 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L80

Added line #L80 was not covered by tests
bundleIds);
Optional.ofNullable(name).ifPresent(addDistributionRequest::setName);
Optional.ofNullable(exportMode).ifPresent(addDistributionRequest::setExportMode);
Optional.ofNullable(fileIds).ifPresent(addDistributionRequest::setFileIds);
Expand All @@ -72,7 +88,8 @@ public void act(Outputter out, ProjectProperties pb, ClientDistribution client)
distribution = client.addDistribution(addDistributionRequest);
} catch (Exception e) {
throw new RuntimeException(
String.format(RESOURCE_BUNDLE.getString("error.distribution_is_not_added"), addDistributionRequest), e);
String.format(RESOURCE_BUNDLE.getString("error.distribution_is_not_added"), addDistributionRequest),

Check warning on line 91 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L88-L91

Added lines #L88 - L91 were not covered by tests
e);
}

Check warning on line 93 in src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/crowdin/cli/commands/actions/DistributionAddAction.java#L93

Added line #L93 was not covered by tests
if (!plainView) {
out.println(
Expand Down

0 comments on commit 1aa2d63

Please sign in to comment.