@Override public void importApiDoc(final ApiImportDTO dto, final String token) throws MockImportException, ValidationException { logger.debug("importApiDoc (RAML) called"); validate(dto); File tempDir = null; try { tempDir = Files.createTempDirectory(Long.toString(System.nanoTime())).toFile(); final Api api = readContent(loadRamlFileFromUpload(dto.getFile(), tempDir)); final MockImportConfigDTO apiImportConfig = dto.getConfig(); final String conflictCtxPath = "raml_" + GeneralUtils.createFileNameUniqueTimeStamp(); debug("Keep existing mocks: " + apiImportConfig.isKeepExisting()); debug("Keep strategy: " + apiImportConfig.getKeepStrategy()); debug("Base"); debug("URI " + api.baseUri().value()); debug("version " + api.version().value()); final String defaultMimeType = api.mediaType().stream().findFirst().orElse(() -> "text/plain").value(); loadInResources(api.resources(), apiImportConfig, userTokenServiceUtils.loadCurrentUser(token), conflictCtxPath, defaultMimeType); } catch (RecordNotFoundException ex) { throw new MockImportException("Unauthorized user access"); } catch (MockImportException ex) { throw ex; } catch (Throwable ex) { logger.error("Unexpected error whilst importing RAML API", ex); throw new MockImportException("Unexpected error whilst importing RAML API"); } finally { if (!FileUtils.deleteQuietly(tempDir)) { logger.error("Error deleting temp dir"); } } }
@Override public void execute(RamlModelResult ramlModel) throws ValidationException { String uri; if(ramlModel.getApiV10() != null) { org.raml.v2.api.model.v10.system.types.FullUriTemplateString fullUriTemplateString = ramlModel.getApiV10().baseUri(); uri = fullUriTemplateString.value(); } else if(ramlModel.getApiV08() != null) { org.raml.v2.api.model.v08.system.types.FullUriTemplateString fullUriTemplateString = ramlModel.getApiV08().baseUri(); uri = fullUriTemplateString.value(); } // Model not found. else throw new ValidationException("Cannot parse model"); validateURI(uri); }