Search in sources :

Example 41 with Schema

use of com.google.cloud.datacatalog.v1beta1.Schema in project molgenis-emx2 by molgenis.

the class SiteMapService method getSiteMapForSchema.

public static String getSiteMapForSchema(Request request, Response response) {
    response.type("text/xml, application/xml");
    Schema schema = getSchema(request);
    final String baseUrl = request.scheme() + "://" + request.host() + "/" + schema.getName();
    return new CatalogueSiteMap(schema, baseUrl).buildSiteMap();
}
Also used : CatalogueSiteMap(org.molgenis.emx2.web.service.CatalogueSiteMap) MolgenisWebservice.getSchema(org.molgenis.emx2.web.MolgenisWebservice.getSchema) Schema(org.molgenis.emx2.Schema)

Example 42 with Schema

use of com.google.cloud.datacatalog.v1beta1.Schema in project molgenis-emx2 by molgenis.

the class ZipApi method postZip.

static String postZip(Request request, Response response) throws MolgenisException, IOException, ServletException {
    Long start = System.currentTimeMillis();
    Schema schema = getSchema(request);
    // get uploaded file
    File tempFile = File.createTempFile("temp_", ".tmp");
    try {
        request.attribute("org.eclipse.jetty.multipartConfig", new MultipartConfigElement(tempFile.getAbsolutePath()));
        try (InputStream input = request.raw().getPart("file").getInputStream()) {
            Files.copy(input, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
        }
        // depending on file extension use proper importer
        String fileName = request.raw().getPart("file").getSubmittedFileName();
        if (fileName.endsWith(".zip")) {
            if (request.queryParams("async") != null) {
                String id = TaskApi.submit(new ImportCsvZipTask(tempFile.toPath(), schema, false));
                return new TaskReference(id, schema).toString();
            } else {
                MolgenisIO.fromZipFile(tempFile.toPath(), schema, false);
            }
        } else if (fileName.endsWith(".xlsx")) {
            MolgenisIO.importFromExcelFile(tempFile.toPath(), schema, false);
        } else {
            throw new IOException("File upload failed: extension " + fileName.substring(fileName.lastIndexOf('.')) + " not supported");
        }
        response.status(200);
        return "Import success in " + (System.currentTimeMillis() - start) + "ms";
    } finally {
        if (request.queryParams("async") == null) {
            Files.delete(tempFile.toPath());
        }
    }
}
Also used : MultipartConfigElement(javax.servlet.MultipartConfigElement) InputStream(java.io.InputStream) MolgenisWebservice.getSchema(org.molgenis.emx2.web.MolgenisWebservice.getSchema) Schema(org.molgenis.emx2.Schema) IOException(java.io.IOException) ImportCsvZipTask(org.molgenis.emx2.io.ImportCsvZipTask) File(java.io.File)

Example 43 with Schema

use of com.google.cloud.datacatalog.v1beta1.Schema in project molgenis-emx2 by molgenis.

the class RunWebApi method main.

public static void main(String[] args) throws IOException {
    // create data source
    HikariDataSource dataSource = new HikariDataSource();
    String url = "jdbc:postgresql:molgenis";
    dataSource.setJdbcUrl(url);
    dataSource.setUsername("molgenis");
    dataSource.setPassword("molgenis");
    dataSource.setPassword("molgenis");
    // setup
    Database db = TestDatabaseFactory.getTestDatabase();
    Schema schema = db.dropCreateSchema("pet store");
    new PetStoreLoader().load(schema, true);
    MolgenisWebservice.start(8080);
}
Also used : HikariDataSource(com.zaxxer.hikari.HikariDataSource) Schema(org.molgenis.emx2.Schema) Database(org.molgenis.emx2.Database) PetStoreLoader(org.molgenis.emx2.datamodels.PetStoreLoader)

Example 44 with Schema

use of com.google.cloud.datacatalog.v1beta1.Schema in project molgenis-emx2 by molgenis.

the class ExcelApi method postExcel.

static Object postExcel(Request request, Response response) throws IOException, ServletException {
    Long start = System.currentTimeMillis();
    Schema schema = getSchema(request);
    // get uploaded file
    File tempFile = File.createTempFile(MolgenisWebservice.TEMPFILES_DELETE_ON_EXIT, ".tmp");
    tempFile.deleteOnExit();
    request.attribute("org.eclipse.jetty.multipartConfig", new MultipartConfigElement(tempFile.getAbsolutePath()));
    try (InputStream input = request.raw().getPart("file").getInputStream()) {
        Files.copy(input, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
    }
    if (request.queryParams("async") != null) {
        String id = TaskApi.submit(new ImportExcelTask(tempFile.toPath(), schema, false));
        return new TaskReference(id, schema).toString();
    } else {
        MolgenisIO.importFromExcelFile(tempFile.toPath(), schema, false);
        response.status(200);
        return "Import success in " + (System.currentTimeMillis() - start) + "ms";
    }
}
Also used : MultipartConfigElement(javax.servlet.MultipartConfigElement) ImportExcelTask(org.molgenis.emx2.io.ImportExcelTask) InputStream(java.io.InputStream) MolgenisWebservice.getSchema(org.molgenis.emx2.web.MolgenisWebservice.getSchema) Schema(org.molgenis.emx2.Schema) File(java.io.File)

Example 45 with Schema

use of com.google.cloud.datacatalog.v1beta1.Schema in project molgenis-emx2 by molgenis.

the class TestSettingsAndMembersLoading method testExcelTypesCast.

@Test
public void testExcelTypesCast() {
    Database database = TestDatabaseFactory.getTestDatabase();
    Schema schema = database.dropCreateSchema(TestSettingsAndMembersLoading.class.getSimpleName());
    ClassLoader classLoader = getClass().getClassLoader();
    Path path = new File(classLoader.getResource("settings_and_members.xlsx").getFile()).toPath();
    new ImportExcelTask(path, schema, true).run();
    assertEquals("key1", schema.getTable("table1").getMetadata().getSettings().get(0).key());
    assertEquals("value1", schema.getTable("table1").getMetadata().getSettings().get(0).value());
    assertEquals("key2", schema.getMetadata().getSettings().get(0).key());
    assertEquals("value2", schema.getMetadata().getSettings().get(0).value());
    assertEquals(1, schema.getMembers().size());
    assertEquals("anonymous", schema.getMembers().get(0).getUser());
    assertEquals("Viewer", schema.getMembers().get(0).getRole());
    database.dropSchema(schema.getName());
}
Also used : Path(java.nio.file.Path) Schema(org.molgenis.emx2.Schema) Database(org.molgenis.emx2.Database) File(java.io.File) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)57 Schema (com.google.pubsub.v1.Schema)38 Schema (org.molgenis.emx2.Schema)38 AbstractMessage (com.google.protobuf.AbstractMessage)16 ByteString (com.google.protobuf.ByteString)16 QName (javax.xml.namespace.QName)16 File (java.io.File)15 IOException (java.io.IOException)15 Schema (org.geosdi.geoplatform.xml.xsd.v2001.Schema)15 SchemaServiceClient (com.google.cloud.pubsub.v1.SchemaServiceClient)14 ProjectName (com.google.pubsub.v1.ProjectName)14 URL (java.net.URL)14 LayerSchemaDTO (org.geosdi.geoplatform.connector.wfs.response.LayerSchemaDTO)14 StringWriter (java.io.StringWriter)13 Schema (org.oasisopen.odata.csdl.v4.Schema)13 Schema (com.reprezen.kaizen.oasparser.model3.Schema)11 ArrayList (java.util.ArrayList)10 JAXBElement (javax.xml.bind.JAXBElement)10 HashMap (java.util.HashMap)9 List (java.util.List)9