package com.mavlushechka.a1qa.project.utils; import com.mavlushechka.a1qa.framework.utils.JsonParser; import com.mavlushechka.a1qa.framework.utils.UrlConnectionManager; import com.mavlushechka.a1qa.project.constants.SiteApiMethod; import com.mavlushechka.a1qa.project.models.Test; import java.io.IOException; import java.util.Base64; public class SiteApiUtils { private static final String url = "%s/api".formatted(JsonParser.parseData("config", "browser.url")); private SiteApiUtils() { } public static String generateToken(int variant) throws IOException { return UrlConnectionManager.post("%s%s?variant=%d".formatted(url, SiteApiMethod.TOKEN_GET.url, variant)); } public static String getTestsJson(int projectId) throws IOException { return UrlConnectionManager.post("%s%s?projectId=%d".formatted(url, SiteApiMethod.TEST_GET_JSON.url, projectId)); } public static int putTest(String sid, String projectName, Test test, String env) throws IOException { return Integer.parseInt( UrlConnectionManager.post( "%s%s?SID=%s&projectName=%s&testName=%s&methodName=%s&env=%s" .formatted(url, SiteApiMethod.TEST_PUT.url, sid, projectName, test.name(), test.method(), env) ) ); } public static void putLogToTest(int testId, String content) throws IOException { UrlConnectionManager.post("%s%s?testId=%d&content=%s".formatted(url, SiteApiMethod.TEST_PUT_LOG.url, testId, content)); } public static void putAttachmentToTest(int testId, byte[] content, String contentType) throws IOException { UrlConnectionManager.post( "%s%s?testId=%d&content=%s&contentType=%s" .formatted(url, SiteApiMethod.TEST_PUT_ATTACHMENT.url, testId, Base64.getEncoder().encodeToString(content), contentType) ); } }