Skip to content

Commit

Permalink
Update runners
Browse files Browse the repository at this point in the history
  • Loading branch information
jmattheis committed Jun 25, 2021
1 parent b75af90 commit 71c3963
Show file tree
Hide file tree
Showing 13 changed files with 738 additions and 877 deletions.
57 changes: 57 additions & 0 deletions runner/src/main/java/de/factfinder/runner/RunnerDeltaUpdate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package de.factfinder.runner;

import de.factfinder.client.ApiException;
import de.factfinder.client.api.RecordsApi;
import de.factfinder.client.model.DeltaUpdateResult;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;

public class RunnerDeltaUpdate {
private static final Logger LOG = LogManager.getLogger(RunnerDeltaUpdate.class.getSimpleName());

private static final String RECORD_ID_1 = "036-0184-0119";

private static final String PURCHASER_ID = null;

public static void main(final String[] args) {
final RecordsApi apiInstance = new RecordsApi(Settings.getClient());

//========================================== GEO =========================================
final Boolean verbose = true;

List<Map<String, Object>> records = Collections.emptyList();

try {
LOG.info("=== GET Record ===");
records = apiInstance.getRecordsUsingGET(Settings.getChannel(), Arrays.asList(RECORD_ID_1), PURCHASER_ID, verbose).getRecords();
LOG.info(records);

} catch (final ApiException e) {
LOG.error("Exception when calling RecordsApi#getRecordsUsingGet", e);
}

try {
LOG.info("=== Update Record ===");
records.get(0).put("Price", 55.3);
final DeltaUpdateResult result = apiInstance.upsertRecordsUsingPUT(Settings.getChannel(), records, verbose).get(0);
LOG.info("Update result {}", result.getSuccess());
LOG.info("Update error {}", result.getError());
} catch (final ApiException e) {
LOG.error("Exception when calling RecordsApi#updateRecordsUsingPut", e);
}

try {
LOG.info("=== GET Record again ===");
records = apiInstance.getRecordsUsingGET(Settings.getChannel(), Arrays.asList(RECORD_ID_1), PURCHASER_ID, verbose).getRecords();
LOG.info(records);

} catch (final ApiException e) {
LOG.error("Exception when calling RecordsApi#getRecordsUsingGet", e);
}
}
}
96 changes: 53 additions & 43 deletions runner/src/main/java/de/factfinder/runner/RunnerImport.java
Original file line number Diff line number Diff line change
@@ -1,54 +1,64 @@
package de.factfinder.runner;

import java.util.Collections;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import de.factfinder.client.ApiException;
import de.factfinder.client.api.ImportApi;
import de.factfinder.client.model.ImportChannelResult;
import de.factfinder.client.model.ImportResult;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Collections;
import java.util.List;

/**
* This class demonstrates the usage of the FACT-Finder REST API to externally trigger product data and suggest imports.
*/
public final class RunnerImport {
private static final Logger LOG = LogManager.getLogger(RunnerImport.class.getSimpleName());
private static final String CHANNEL = Settings.getChannel();

private RunnerImport() {
}

public static void main(final String[] args) {
Settings.setupAuthKeyRefreshingClientWithHigherTimeout();

final ImportApi apiInstance = new ImportApi();
final List<String> channel = Collections.singletonList(CHANNEL);
final Boolean download = false;
final Boolean quiet = false;

try {
LOG.info("Start product data import");
final ImportResult productImportResult = apiInstance.startSearchImportUsingPOST(channel, download, quiet);

final ImportChannelResult channelResult = productImportResult.getMessages().get(CHANNEL);
channelResult.getErrorMessages().forEach(LOG::error);
channelResult.getStatusMessages().forEach(LOG::info);
} catch (final ApiException e) {
LOG.error("Exception when calling ImportApi#startSearchImportUsingPOST", e);
}

try {
LOG.info("Start suggest data import");
final ImportResult suggestImportResult = apiInstance.startSuggestImportUsingPOST(channel, quiet);

final ImportChannelResult channelResultForSuggest = suggestImportResult.getMessages().get(CHANNEL);
channelResultForSuggest.getErrorMessages().forEach(LOG::error);
channelResultForSuggest.getStatusMessages().forEach(LOG::info);
} catch (final ApiException e) {
LOG.error("Exception when calling ImportApi#startSuggestImportUsingPOST", e);
}
}
private static final Logger LOG = LogManager.getLogger(RunnerImport.class.getSimpleName());
private static final String CHANNEL = Settings.getChannel();

private RunnerImport() {
}

public static void main(final String[] args) {
final ImportApi importClient = new ImportApi(Settings.getClient());

final List<String> channels = Collections.singletonList(CHANNEL);
final Boolean download = false;
final Boolean cacheFlush = false;
final Boolean quiet = false;
final String importStage = "IMPORT_ONLY";

try {
LOG.info("Start product data import");
final Boolean includeCustomerPrices = false;
final List<ImportChannelResult> productImportResult = importClient.startSearchImportUsingPOST(channels, download, cacheFlush, quiet, importStage,
includeCustomerPrices);
printProductImportResult(productImportResult);
} catch (final ApiException e) {
LOG.error("Exception when calling ImportApi#startSearchImportUsingPOST", e);
}

try {
LOG.info("Start suggest data import");
final List<ImportChannelResult> suggestImportResult = importClient.startSuggestImportUsingPOST(channels, quiet);
printProductImportResult(suggestImportResult);
} catch (final ApiException e) {
LOG.error("Exception when calling ImportApi#startSuggestImportUsingPOST", e);
}
}

private static void printProductImportResult(final List<ImportChannelResult> productImportResult) {
productImportResult.forEach(result -> {
LOG.info("Import in channel {}", result.getChannel());
LOG.info("Duration of import: {}", result.getDurationInSeconds());
LOG.info("Number of imported records: {}", result.getImportedRecords());
LOG.info("Import type: {}", result.getImportType());
LOG.info("Import fields: {}", result.getImportedFields());
LOG.info("Start date: {}", result.getStartDate());
LOG.info("Number of imported wm documents: {}", result.getImportedWorldmatchDocuments());

result.getErrorMessages().forEach(LOG::error);
result.getStatusMessages().forEach(LOG::info);
});
}
}
33 changes: 33 additions & 0 deletions runner/src/main/java/de/factfinder/runner/RunnerManagement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package de.factfinder.runner;

import de.factfinder.client.ApiException;
import de.factfinder.client.api.ManagementApi;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Arrays;

public class RunnerManagement {

private static final Logger LOG = LogManager.getLogger(RunnerImport.class.getSimpleName());
private static final String CHANNEL = Settings.getChannel();

public static void main(final String[] args) {
final ManagementApi managementClient = new ManagementApi(Settings.getClient());

try {
LOG.info("Cache flush");
managementClient.flushCacheUsingPOST(Arrays.asList(CHANNEL));
} catch (final ApiException e) {
LOG.error("Exception when calling ManagementApi#flushCacheUsingPOST", e);
}

try {
LOG.info("Reload configuration");
managementClient.reloadConfigurationUsingPOST(Arrays.asList(CHANNEL));
} catch (final ApiException e) {
LOG.error("Exception when calling ManagementApi#reloadConfigurationUsingPOST", e);
}

}
}
112 changes: 55 additions & 57 deletions runner/src/main/java/de/factfinder/runner/RunnerProductCampaign.java
Original file line number Diff line number Diff line change
@@ -1,76 +1,74 @@
package de.factfinder.runner;

import java.util.Arrays;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import de.factfinder.runner.print.CampaignInformationPrinter;
import de.factfinder.runner.print.SearchResultInformationPrinter;
import de.factfinder.client.ApiException;
import de.factfinder.client.api.CampaignApi;
import de.factfinder.client.model.Campaign;
import de.factfinder.runner.print.CampaignInformationPrinter;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
* This class demonstrates the usage of the FACT-Finder REST API to check for product campaigns.
*/
public final class RunnerProductCampaign {
private static final Logger LOG = LogManager.getLogger(RunnerProductCampaign.class);
private static final String CHANNEL = Settings.getChannel();

private static final boolean IDS_ONLY = false;
/** Example data for getting campaigns. Please adjust it according to your data. */
private static final String PRODUCT_NUMBER = "025-0004";
private static final List<String> SHOPPING_CART_PRODUCT_NUMBER_LIST = Arrays.asList(PRODUCT_NUMBER, "702-0011");
private static final String PAGE_ID = "landingpage";
private static final String SESSION_ID = "session123";
private static final String ADVISOR_STATUS_EXAMPLE = "advisorStatus_example";
private static final Logger LOG = LogManager.getLogger(RunnerProductCampaign.class);
private static final String CHANNEL = Settings.getChannel();

private RunnerProductCampaign() {
}
private static final boolean IDS_ONLY = false;
/**
* Example data for getting campaigns. Please adjust it according to your data.
*/
private static final String ID = "025-0004";
private static final List<String> SHOPPING_CART_PRODUCT_NUMBER_LIST = Arrays.asList(ID, "702-0011");
private static final String PAGE_ID = "landingpage";
private static final String SESSION_ID = "session123";
private static final String PURCHASER_ID = "purchaser123";

public static void main(final String[] args) {
Settings.setupAuthKeyRefreshingClientWithHigherTimeout();
private RunnerProductCampaign() {
}

final SearchResultInformationPrinter searchResultInfoPrinter = new SearchResultInformationPrinter();
final CampaignInformationPrinter campaignInfoPrinter = new CampaignInformationPrinter(searchResultInfoPrinter);
public static void main(final String[] args) {
final CampaignInformationPrinter campaignInfoPrinter = new CampaignInformationPrinter();

final CampaignApi apiInstance = new CampaignApi();
final CampaignApi campaignClient = new CampaignApi(Settings.getClient());

printProductCampaigns(campaignInfoPrinter, apiInstance);
printShoppingCartCampaigns(campaignInfoPrinter, apiInstance);
printPageCampaigns(campaignInfoPrinter, apiInstance);
}
printProductCampaigns(campaignInfoPrinter, campaignClient);
printShoppingCartCampaigns(campaignInfoPrinter, campaignClient);
printPageCampaigns(campaignInfoPrinter, campaignClient);
}

private static void printProductCampaigns(final CampaignInformationPrinter campaignInfoPrinter, final CampaignApi apiInstance) {
try {
LOG.info("------------------------- Product campaigns -------------------------");
final List<Campaign> campaigns = apiInstance.getProductCampaignsUsingGET(CHANNEL, PRODUCT_NUMBER, IDS_ONLY, SESSION_ID, ADVISOR_STATUS_EXAMPLE);
campaignInfoPrinter.printCampaigns(campaigns);
} catch (final ApiException e) {
LOG.error("Exception when using CampaignApi#getProductCampaignsUsingGET", e);
}
}
private static void printProductCampaigns(final CampaignInformationPrinter campaignInfoPrinter, final CampaignApi campaignClient) {
try {
LOG.info("------------------------- Product campaigns -------------------------");
final List<Campaign> campaigns = campaignClient.getProductCampaignsUsingGET(CHANNEL, ID, IDS_ONLY, "productNumber", PURCHASER_ID, SESSION_ID, null, null, Collections.emptyList());
campaignInfoPrinter.printCampaigns(campaigns);
} catch (final ApiException e) {
LOG.error("Exception when using CampaignApi#getProductCampaignsUsingGET", e);
}
}

private static void printShoppingCartCampaigns(final CampaignInformationPrinter campaignInfoPrinter, final CampaignApi apiInstance) {
try {
LOG.info("------------------------- Shopping cart campaigns -------------------------");
final List<Campaign> campaigns = apiInstance.getShoppingCartCampaignsUsingGET(CHANNEL, SHOPPING_CART_PRODUCT_NUMBER_LIST, IDS_ONLY, SESSION_ID,
ADVISOR_STATUS_EXAMPLE);
campaignInfoPrinter.printCampaigns(campaigns);
} catch (final ApiException e) {
LOG.error("Exception when using CampaignApi#getShoppingCartCampaignsUsingGET", e);
}
}
private static void printShoppingCartCampaigns(final CampaignInformationPrinter campaignInfoPrinter, final CampaignApi campaignClient) {
try {
LOG.info("------------------------- Shopping cart campaigns -------------------------");
final List<Campaign> campaigns = campaignClient.getShoppingCartCampaignsUsingGET(CHANNEL, SHOPPING_CART_PRODUCT_NUMBER_LIST, IDS_ONLY, PURCHASER_ID,
SESSION_ID, null, null, Collections.emptyList());
campaignInfoPrinter.printCampaigns(campaigns);
} catch (final ApiException e) {
LOG.error("Exception when using CampaignApi#getShoppingCartCampaignsUsingGET", e);
}
}

private static void printPageCampaigns(final CampaignInformationPrinter campaignInfoPrinter, final CampaignApi apiInstance) {
try {
LOG.info("------------------------- Page campaigns -------------------------");
final List<Campaign> campaigns = apiInstance.getPageCampaignsUsingGET(CHANNEL, PAGE_ID, IDS_ONLY, SESSION_ID, ADVISOR_STATUS_EXAMPLE);
campaignInfoPrinter.printCampaigns(campaigns);
} catch (final ApiException e) {
LOG.error("Exception when using CampaignApi#getPageCampaignsUsingGET", e);
}
}
private static void printPageCampaigns(final CampaignInformationPrinter campaignInfoPrinter, final CampaignApi campaignClient) {
try {
LOG.info("------------------------- Page campaigns -------------------------");
final List<Campaign> campaigns = campaignClient.getPageCampaignsUsingGET(CHANNEL, PAGE_ID, IDS_ONLY, PURCHASER_ID, SESSION_ID, null, null, Collections.emptyList());
campaignInfoPrinter.printCampaigns(campaigns);
} catch (final ApiException e) {
LOG.error("Exception when using CampaignApi#getPageCampaignsUsingGET", e);
}
}
}
Loading

0 comments on commit 71c3963

Please sign in to comment.