Initial code commit

This commit is contained in:
Darin Kelkhoff
2021-11-08 22:06:34 -06:00
parent 2b840ff303
commit 3b2646c04c
6 changed files with 559 additions and 0 deletions

View File

@ -0,0 +1,33 @@
package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.frontend.picocli.QPicoCliImplementation;
/*******************************************************************************
**
*******************************************************************************/
public class SampleCli
{
/*******************************************************************************
**
*******************************************************************************/
public static void main(String[] args)
{
new SampleCli().run(args);
}
/*******************************************************************************
**
*******************************************************************************/
private void run(String[] args)
{
QInstance qInstance = SampleMetaDataProvider.defineInstance();
QPicoCliImplementation qPicoCliImplementation = new QPicoCliImplementation(qInstance);
int exitCode = qPicoCliImplementation.runCli("my-sample-cli", args);
System.exit(exitCode);
}
}

View File

@ -0,0 +1,45 @@
package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.javalin.QJavalinImplementation;
import io.javalin.Javalin;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/*******************************************************************************
**
*******************************************************************************/
public class SampleJavalinServer
{
private static final Logger LOG = LogManager.getLogger(SampleJavalinServer.class);
private static final int PORT = 8000;
private QInstance qInstance;
/*******************************************************************************
**
*******************************************************************************/
public static void main(String[] args)
{
new SampleJavalinServer().startJavalinServer();
}
/*******************************************************************************
**
*******************************************************************************/
public void startJavalinServer()
{
qInstance = SampleMetaDataProvider.defineInstance();
QJavalinImplementation qJavalinImplementation = new QJavalinImplementation(qInstance);
Javalin service = Javalin.create().start(PORT);
service.routes(qJavalinImplementation.getRoutes());
}
}

View File

@ -0,0 +1,96 @@
package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QFieldType;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
/*******************************************************************************
**
*******************************************************************************/
public class SampleMetaDataProvider
{
private static final String BACKEND_NAME = "default";
/*******************************************************************************
**
*******************************************************************************/
public static QInstance defineInstance()
{
QInstance qInstance = new QInstance();
qInstance.addBackend(SampleMetaDataProvider.defineBackend());
qInstance.addTable(SampleMetaDataProvider.defineTableCarrier());
qInstance.addTable(SampleMetaDataProvider.defineTablePerson());
return (qInstance);
}
/*******************************************************************************
**
*******************************************************************************/
public static QBackendMetaData defineBackend()
{
QBackendMetaData backend = new QBackendMetaData();
backend.setName(BACKEND_NAME);
backend.setType("rdbms");
backend.setValue("vendor", "mysql");
backend.setValue("hostName", "127.0.0.1");
backend.setValue("port", "3306");
backend.setValue("databaseName", "opspath");
backend.setValue("username", "root");
backend.setValue("password", "8BNWyoav8s79oi}Lqk");
return (backend);
}
/*******************************************************************************
**
*******************************************************************************/
public static QTableMetaData defineTableCarrier()
{
QTableMetaData table = new QTableMetaData();
table.setName("carrier");
table.setBackendName(BACKEND_NAME);
table.setPrimaryKeyField("id");
table.addField(new QFieldMetaData("id", QFieldType.INTEGER));
table.addField(new QFieldMetaData("name", QFieldType.STRING));
table.addField(new QFieldMetaData("company_code", QFieldType.STRING) // todo enum
.withLabel("Company")
.withBackendName("comp_code"));
table.addField(new QFieldMetaData("service_level", QFieldType.STRING)); // todo enum
return (table);
}
/*******************************************************************************
**
*******************************************************************************/
public static QTableMetaData defineTablePerson()
{
return new QTableMetaData()
.withName("person")
.withLabel("Person")
.withBackendName(BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withField(new QFieldMetaData("createDate", QFieldType.DATE_TIME).withBackendName("create_date"))
.withField(new QFieldMetaData("modifyDate", QFieldType.DATE_TIME).withBackendName("modify_date"))
.withField(new QFieldMetaData("firstName", QFieldType.STRING).withBackendName("first_name"))
.withField(new QFieldMetaData("lastName", QFieldType.STRING).withBackendName("last_name"))
.withField(new QFieldMetaData("birthDate", QFieldType.DATE).withBackendName("birth_date"))
.withField(new QFieldMetaData("email", QFieldType.STRING));
}
}