Commit Graph

42 Commits

Author SHA1 Message Date
Trisha Anand
68e1bef0f6 Introduced TenantSetting to store the real setting value. Setting would exist as set of settings that can be configured for a given tenant. The TenantSetting document stores the configured values for each setting.
Also, introduced the util cascadeSave. This is done with the aim of storing the lower order documents first before storing the higher order composite documents (which contain DBRef).
2019-07-25 07:11:05 +00:00
Arpit Mohan
2a5656afbb Changing the query execution to execute by name. Will make the API a lot simpler. 2019-04-02 21:55:19 +05:30
Arpit Mohan
bbb6e511d7 Adding a working version of the rest template plugin executor. 2019-04-02 21:10:36 +05:30
Arpit Mohan
6d91ab32ce Adding the bean corsWebFilter to enable CORS in our codebase 2019-04-02 20:05:48 +05:30
Arpit Mohan
c14b34193d Refactoring the plugin implementations to have their own package.
Will keep the code more organized
2019-03-31 21:55:27 +05:30
Arpit Mohan
5570020f6d Adding Configuration annotation on CORS config class 2019-03-31 21:49:39 +05:30
Arpit Mohan
cffb83a781 Disabling CORS by effectively allowing requests to be made from all hosts 2019-03-31 21:48:50 +05:30
Arpit Mohan
303f42945c Correcting the properties reading from PostgresDBPluginExecutor
Don't use static variables if using spring to feed the config values in
2019-03-31 21:42:29 +05:30
Arpit Mohan
a82a931093 Adding mustache template substitution to QueryObj.
Now we can query postgres DB on the fly! Yipee!
2019-03-31 21:22:06 +05:30
Arpit Mohan
28ef85b893 Adding name and confirmationMsg to the query collection 2019-03-30 16:41:44 +05:30
Arpit Mohan
ad2310bae0 Adding properties to a widget 2019-03-30 16:22:14 +05:30
Arpit Mohan
3bdfd13284 Adding the APIs to add plugins and query commands
Currently, there is a single executor implemented PostgresDBPluginExecutor which returns some dummy results. The entire framework exists to choose and instantiate the appropriate executor implementation at runtime.
2019-03-30 16:14:54 +05:30
Arpit Mohan
a57d31fbb2 Adding the system.properties file for java version
Heroku needs this for determining java version
2019-03-30 13:12:49 +05:30
Arpit Mohan
8f4bfd59fc Adding application-local.properties
This is to ensure that we can provide different types of mongo configurations for different environments
2019-03-30 13:08:43 +05:30
Arpit Mohan
e553470095 Moving the code to the top level to remove one-level of folder indirection 2019-03-30 13:04:05 +05:30
Arpit Mohan
4733ebf95b Removing Go code from the repo. This is now pure Java spring boot app 2019-03-30 13:01:06 +05:30
Arpit Mohan
d786890834 Adding the staging properties with mongodb atlas setup 2019-03-30 12:58:34 +05:30
Arpit Mohan
cef6946859 Adding the LayoutController that will store the DDL for the page layouts
Also adding the getById function in the BaseController so that all CRUD APIs will automatically support that API call.
2019-03-30 12:23:21 +05:30
Arpit Mohan
f8b382940d Adding basic authentication to the server.
This will allow us to host it on a webserver for integration purposes.
2019-03-30 12:01:24 +05:30
Arpit Mohan
8ccd001652 Adding abstractions for CRUD APIs.
Now we can easily add controllers for any resource quickly by simply adding a few files.
2019-03-19 19:39:05 +05:30
Arpit Mohan
f7aaafacfb Moving to Mongo instead of Postgresql for storage.
This will allow us to store the widget, plugin & page information much more cleanly and directly into the DB.
2019-03-19 12:13:21 +05:30
Arpit Mohan
9cea9f94f2 Completing the CRUD for the widget domain. 2019-03-19 02:28:00 +05:30
Arpit Mohan
e4f59ff941 Adding the Spring java API for creating Widget.
Migrating the code to Spring Java instead of Golang
2019-03-19 01:50:32 +05:30
Arpit Mohan
7ea78bf64c Adding functionality to execute a query via mustache template. 2019-03-16 18:28:44 +05:30
Arpit Mohan
49b7051cea Moving the method comparison in gorilla mux to the end and not in the chain
This allows mux to compare and match the requests based on the HTTP method as well. If we compare the methods in the middleware chain, then mux will try to redirect the request to the first match it finds.
2019-03-16 17:05:20 +05:30
Arpit Mohan
1133b53437 Adding Google authentication via Goth. All endpoints can now be authenticated.
Other changes include:
* Also removing httprouter mux in favour of gorilla for being more mature and having more integrations and resources available for debugging.
* Adding http middlewares for logging req processing time and handling authentication.

TODO: Need to add context in the middleware as well. Will be useful for logging and debugging.
2019-03-16 15:47:47 +05:30
Arpit Mohan
edaf7e3025 Correcting the project structure as per idiomatic go 2019-03-10 15:51:19 +05:30
Arpit Mohan
ce34ff4a83 Completing the CRUD for the query API. Also being able to execute a saved query.
TODO: Handle parameters while executing a saved query.
2019-02-28 09:41:35 +05:30
Arpit Mohan
b38df1c07d Minor refactoring 2019-02-28 00:46:17 +05:30
Arpit Mohan
dc66c070d6 Adding viper configuration to make the server configurable.
The config file `config.yml` must  be in the same location as the binary. It must be named `config.yml`. For different environments, symlink the configuration file to the environment speciifc file.
2019-02-28 00:35:50 +05:30
Arpit Mohan
3cfadc1c51 Completing the CRUD API for component model. Also adding more basic structs for other models 2019-02-27 22:05:03 +05:30
Arpit Mohan
eb2af8e534 Minor comments 2019-02-27 09:44:02 +05:30
Arpit Mohan
13a0247fd7 Creating a generic map to struct function to convert any map objects into struct objects
Also creating a services package. This will hold all the business logic. The controllers will be very light.
2019-02-27 09:29:30 +05:30
Arpit Mohan
4016562f09 Making the ExecuteQuery function generic to return a map of rows instead of a struct
This will help us to execute arbitrary queries and map them to results at a later stage.
2019-02-26 23:49:20 +05:30
Arpit Mohan
acbb5a55e0 Moving gorm ORM library for Golang database connections
Also creating the Create API for components
2019-02-26 23:22:37 +05:30
Arpit Mohan
13156380ce Adding the factory pattern to switch between databases.
Also adding a basic GET API for components

Making modifications to the Makefile to create a dist/ folder.
2019-02-26 22:36:21 +05:30
Arpit Mohan
f72597051c Adding the factory method to derive postgres implementation for db 2019-02-22 10:16:46 +05:30
Arpit Mohan
6560d1005c Adding the files for the APIs 2019-02-22 08:53:03 +05:30
Arpit Mohan
2be56a1f12 Adding httprouter as the HTTP multiplexer and also setting up postgres db connection and executing a random query
This basically sets up some rough structure of the code
2019-02-22 08:48:08 +05:30
Arpit Mohan
21de87596c Adding the go module init file go.mod 2019-02-21 23:21:07 +05:30
Arpit Mohan
82289b5041 Initial commit. Adding the Makefile and hello world code 2019-02-21 10:08:45 +05:30
Arpit Mohan
53ae0ba4e5 Initial commit 2019-02-17 05:41:20 +00:00