Skip to content

Commit

Permalink
Simplify message data preparation (#303)
Browse files Browse the repository at this point in the history
  • Loading branch information
valfirst authored Sep 13, 2024
1 parent 63db2ca commit cdf6da7
Show file tree
Hide file tree
Showing 9 changed files with 105 additions and 130 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import java.util.Map;

import guru.qa.allure.notifications.config.base.Base;
import guru.qa.allure.notifications.formatters.Formatters;
import guru.qa.allure.notifications.model.phrases.Phrases;
import guru.qa.allure.notifications.model.summary.Summary;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;

/**
Expand All @@ -15,29 +15,36 @@
* Utility class for mapping template data for template.
*/
@Slf4j
@Getter
public class MessageData {
private final String project;
private final BuildData buildData;
private final SummaryData summaryData;
private final Base base;
private final Summary summary;
private final String suitesSummaryJson;
private final Phrases phrases;
private Map<String, Object> data;

public MessageData(Base base, Summary summary, String suitesSummaryJson, Phrases phrases) {
this.project = base.getProject();
this.buildData = new BuildData(base);
this.summaryData = new SummaryData(base, summary);
this.base = base;
this.summary = summary;
this.suitesSummaryJson = suitesSummaryJson;
this.phrases = phrases;
}

public String getProject() {
return base.getProject();
}

public Map<String, Object> getValues() {
if (data == null) {
this.data = new HashMap<>();
log.info("Collecting template data");
data.putAll(buildData.map());
data.putAll(summaryData.map());

data.put("environment", base.getEnvironment());
data.put("comment", base.getComment());
data.put("reportLink", Formatters.formatReportLink(base.getReportLink()));

data.put("time", Formatters.formatDuration(summary.getTime().getDuration(), base.getDurationFormat()));
data.put("statistic", summary.getStatistic());

data.put("suitesSummaryJson", suitesSummaryJson);
data.put("phrases", phrases);
log.info("Template data: {}", data);
Expand Down

This file was deleted.

This file was deleted.

26 changes: 18 additions & 8 deletions allure-notifications-api/src/main/resources/templates/html.ftl
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
<#import "utils.ftl" as utils>
<#compress>
<h3>${phrases.results}:</h3>
<b>${phrases.environment}: </b>${env}<br/>
<b>${phrases.comment}: </b>${comm}<br/>
<b>${phrases.environment}: </b>${environment}<br/>
<b>${phrases.comment}: </b>${comment}<br/>
<b>${phrases.scenario.duration}: </b>${time}<br/>
<b>${phrases.scenario.totalScenarios}: </b>${total}
<b>${phrases.scenario.totalScenarios}: </b>${statistic.total}
<ul>
<#if passed != 0 ><li><b>${phrases.scenario.totalPassed}: </b>${passed} <@utils.printPercentage input=passed total=total /></li></#if>
<#if failed != 0 ><li><b>${phrases.scenario.totalFailed}: </b>${failed} <@utils.printPercentage input=failed total=total /></li></#if>
<#if broken != 0 ><li><b>${phrases.scenario.totalBroken}: </b>${broken}</li></#if>
<#if unknown != 0 ><li><b>${phrases.scenario.totalUnknown}: </b>${unknown}</li></#if>
<#if skipped != 0 ><li><b>${phrases.scenario.totalSkipped}: </b>${skipped}</li></#if>
<#if statistic.passed != 0 >
<li><b>${phrases.scenario.totalPassed}: </b>${statistic.passed} <@utils.printPercentage input=statistic.passed total=statistic.total /></li>
</#if>
<#if statistic.failed != 0 >
<li><b>${phrases.scenario.totalFailed}: </b>${statistic.failed} <@utils.printPercentage input=statistic.failed total=statistic.total /></li>
</#if>
<#if statistic.broken != 0 >
<li><b>${phrases.scenario.totalBroken}: </b>${statistic.broken}</li>
</#if>
<#if statistic.unknown != 0 >
<li><b>${phrases.scenario.totalUnknown}: </b>${statistic.unknown}</li>
</#if>
<#if statistic.skipped != 0 >
<li><b>${phrases.scenario.totalSkipped}: </b>${statistic.skipped}</li>
</#if>
</ul>

<#if suitesSummaryJson??>
Expand Down
26 changes: 18 additions & 8 deletions allure-notifications-api/src/main/resources/templates/markdown.ftl
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
<#import "utils.ftl" as utils>
<#compress>
*${phrases.results}:*
*${phrases.environment}:* ${env}
*${phrases.comment}:* ${comm}
*${phrases.environment}:* ${environment}
*${phrases.comment}:* ${comment}
*${phrases.scenario.duration}:* ${time}
*${phrases.scenario.totalScenarios}:* ${total}
<#if passed != 0 > *${phrases.scenario.totalPassed}:* ${passed} <@utils.printPercentage input=passed total=total /></#if>
<#if failed != 0 > *${phrases.scenario.totalFailed}:* ${failed} <@utils.printPercentage input=failed total=total /></#if>
<#if broken != 0 > *${phrases.scenario.totalBroken}:* ${broken} </#if>
<#if unknown != 0 >*${phrases.scenario.totalUnknown}:* ${unknown} </#if>
<#if skipped != 0 >*${phrases.scenario.totalSkipped}:* ${skipped} </#if>
*${phrases.scenario.totalScenarios}:* ${statistic.total}
<#if statistic.passed != 0 >
*${phrases.scenario.totalPassed}:* ${statistic.passed} <@utils.printPercentage input=statistic.passed total=statistic.total />
</#if>
<#if statistic.failed != 0 >
*${phrases.scenario.totalFailed}:* ${statistic.failed} <@utils.printPercentage input=statistic.failed total=statistic.total />
</#if>
<#if statistic.broken != 0 >
*${phrases.scenario.totalBroken}:* ${statistic.broken}
</#if>
<#if statistic.unknown != 0 >
*${phrases.scenario.totalUnknown}:* ${statistic.unknown}
</#if>
<#if statistic.skipped != 0 >
*${phrases.scenario.totalSkipped}:* ${statistic.skipped}
</#if>

<#if suitesSummaryJson??>
<#assign suitesData = suitesSummaryJson?eval_json>
Expand Down
26 changes: 18 additions & 8 deletions allure-notifications-api/src/main/resources/templates/rocket.ftl
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
<#import "utils.ftl" as utils>
<#compress>
**${phrases.results}:**
**-${phrases.environment}:** ${env}
**-${phrases.comment}:** ${comm}
**-${phrases.environment}:** ${environment}
**-${phrases.comment}:** ${comment}
**-${phrases.scenario.duration}:** **${time}**
**-${phrases.scenario.totalScenarios}:** ${total}
<#if passed != 0 > **-${phrases.scenario.totalPassed}:** ${passed} **<@utils.printPercentage input=passed total=total />**</#if>
<#if failed != 0 > **-${phrases.scenario.totalFailed}:** ${failed} **<@utils.printPercentage input=failed total=total />** </#if>
<#if broken != 0 > **-${phrases.scenario.totalBroken}:** ${broken} </#if>
<#if unknown != 0 > **-${phrases.scenario.totalUnknown}:** ${unknown} </#if>
<#if skipped != 0 > **-${phrases.scenario.totalSkipped}:** ${skipped} </#if>
**-${phrases.scenario.totalScenarios}:** ${statistic.total}
<#if statistic.passed != 0 >
**-${phrases.scenario.totalPassed}:** ${statistic.passed} **<@utils.printPercentage input=statistic.passed total=statistic.total />**
</#if>
<#if statistic.failed != 0 >
**-${phrases.scenario.totalFailed}:** ${statistic.failed} **<@utils.printPercentage input=statistic.failed total=statistic.total />**
</#if>
<#if statistic.broken != 0 >
**-${phrases.scenario.totalBroken}:** ${statistic.broken}
</#if>
<#if statistic.unknown != 0 >
**-${phrases.scenario.totalUnknown}:** ${statistic.unknown}
</#if>
<#if statistic.skipped != 0 >
**-${phrases.scenario.totalSkipped}:** ${statistic.skipped}
</#if>

<#if suitesSummaryJson??>
<#assign suitesData = suitesSummaryJson?eval_json>
Expand Down
26 changes: 18 additions & 8 deletions allure-notifications-api/src/main/resources/templates/telegram.ftl
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
<#import "utils.ftl" as utils>
<#compress>
<b>${phrases.results}:</b>
<b>${phrases.environment}: </b>${env}
<b>${phrases.comment}: </b>${comm}
<b>${phrases.environment}: </b>${environment}
<b>${phrases.comment}: </b>${comment}
<b>${phrases.scenario.duration}: </b>${time}
<b>${phrases.scenario.totalScenarios}: </b>${total}
<#if passed != 0 ><b>${phrases.scenario.totalPassed}: </b>${passed} <@utils.printPercentage input=passed total=total /></#if>
<#if failed != 0 ><b>${phrases.scenario.totalFailed}: </b>${failed} <@utils.printPercentage input=failed total=total /></#if>
<#if broken != 0 ><b>${phrases.scenario.totalBroken}: </b>${broken}</#if>
<#if unknown != 0 ><b>${phrases.scenario.totalUnknown}: </b>${unknown}</#if>
<#if skipped != 0 ><b>${phrases.scenario.totalSkipped}: </b>${skipped}</#if>
<b>${phrases.scenario.totalScenarios}: </b>${statistic.total}
<#if statistic.passed != 0 >
<b>${phrases.scenario.totalPassed}: </b>${statistic.passed} <@utils.printPercentage input=statistic.passed total=statistic.total />
</#if>
<#if statistic.failed != 0 >
<b>${phrases.scenario.totalFailed}: </b>${statistic.failed} <@utils.printPercentage input=statistic.failed total=statistic.total />
</#if>
<#if statistic.broken != 0 >
<b>${phrases.scenario.totalBroken}: </b>${statistic.broken}
</#if>
<#if statistic.unknown != 0 >
<b>${phrases.scenario.totalUnknown}: </b>${statistic.unknown}
</#if>
<#if statistic.skipped != 0 >
<b>${phrases.scenario.totalSkipped}: </b>${statistic.skipped}
</#if>

<#if suitesSummaryJson??>
<#assign suitesData = suitesSummaryJson?eval_json>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,23 @@
<b>${environment}: </b>${env}<br/>
<b>${comment}: </b>${comm}<br/>
<b>${duration}: </b>${time}<br/>
<b>${totalScenarios}: </b>${total}
<b>${totalScenarios}: </b>${statistic.total}
<ul>
<#if passed != 0 ><li><b>${totalPassed}: </b>${passed} <@utils.printPercentage input=passed total=total /></li></#if>
<#if failed != 0 ><li><b>${totalFailed}: </b>${failed} <@utils.printPercentage input=failed total=total /></li></#if>
<#if broken != 0 ><li><b>${totalBroken}: </b>${broken}</li></#if>
<#if unknown != 0 ><li><b>${totalUnknown}: </b>${unknown}</li></#if>
<#if skipped != 0 ><li><b>${totalSkipped}: </b>${skipped}</li></#if>
<#if statistic.passed != 0 >
<li><b>${totalPassed}: </b>${statistic.passed} <@utils.printPercentage input=statistic.passed total=statistic.total /></li>
</#if>
<#if statistic.failed != 0 >
<li><b>${totalFailed}: </b>${statistic.failed} <@utils.printPercentage input=statistic.failed total=statistic.total /></li>
</#if>
<#if statistic.broken != 0 >
<li><b>${totalBroken}: </b>${statistic.broken}</li>
</#if>
<#if statistic.unknown != 0 >
<li><b>${totalUnknown}: </b>${statistic.unknown}</li>
</#if>
<#if statistic.skipped != 0 >
<li><b>${totalSkipped}: </b>${statistic.skipped}</li>
</#if>
</ul>
<#if reportLink??><b>${reportAvailableAtLink}:</b> <a href=${reportLink}>${reportLink}</a></#if>
</#compress>

0 comments on commit cdf6da7

Please sign in to comment.