Commit Graph

335 Commits

Author SHA1 Message Date
20b59847fe Small fixes and improvements to the string. 2021-11-01 01:39:11 +01:00
3ae9ae5127 Added copy assignment operator to string. 2021-11-01 01:02:18 +01:00
37ae4faa29 Add log and containers folders to the compile. 2021-11-01 00:43:22 +01:00
ef7b39bfb1 Added 2 url helpers to Request. 2021-11-01 00:38:26 +01:00
ad4e3bec3c std::string conversion operator for my string. 2021-11-01 00:32:02 +01:00
2079d5bd6e Added a few operators to String to simplify mixing it with std::strings. 2021-10-31 23:55:44 +01:00
7ef1c76e4a Added error macros and a simple logger. 2021-10-31 23:34:08 +01:00
3c1a60c898 Added my string, queue, and vector implementations. 2021-10-31 23:33:48 +01:00
304a2a19c9 Added a simple new Model and Controller class. 2021-10-31 21:44:44 +01:00
8e4bb75bcb Implement redirects. 2021-10-31 02:50:06 +02:00
001c3ee717 Fix compile. 2021-10-31 02:49:54 +02:00
dbb616b9e0 Added http status code enum. 2021-10-31 02:39:54 +02:00
6aae520ed4 Added doctype declaration. 2021-10-30 23:32:06 +02:00
b3c1b6ccac Added content quick tag. 2021-10-30 23:31:54 +02:00
74389bb71c Comment out 2 prints. 2021-08-23 00:13:16 +02:00
214b268aae Now int data in the session will be saved to the database. 2021-08-22 23:53:26 +02:00
83ea2c0587 Fix warning. 2021-08-22 23:01:39 +02:00
4546d583d1 Cleaned up Resource and User. 2021-08-22 22:38:08 +02:00
8fa6548e44 Added a reference map to Request. Also fixed 2 warnings. 2021-08-22 22:17:32 +02:00
8318e0257a Added reference support to the session. 2021-08-22 22:03:10 +02:00
928475d733 Added more things to QueryBuilder. 2021-08-22 21:44:20 +02:00
d2cff831bd Now SHA256 also from Reference. 2021-08-22 21:06:47 +02:00
4c8920777f Remove the simple getters/setters from Resource. They are not needed anymore. 2021-08-22 20:57:37 +02:00
f9df80e197 Fix Instancing Ref<>'s. 2021-08-22 20:50:26 +02:00
dd653ae60a Now QueryBuilder, QueryResult and TableBuilder are inherited from Reference. 2021-08-22 20:41:59 +02:00
2c8efb0180 More cleanups and moved save from FileBasedUser to User. 2021-08-21 20:15:29 +02:00
b309705f10 Removed the properties, as this implementation did not work with polymorphism. 2021-08-21 20:06:53 +02:00
c5dcb3106e Implemented int property serialization in to_json(). 2021-08-21 17:12:48 +02:00
f586f1ae3a Forgot to save. 2021-08-21 16:40:17 +02:00
464576468b Call parent constructors. Todo: I need to figure out how godot manages to get away without doing this. 2021-08-21 16:39:38 +02:00
c372eaa8cf Implemented properties into Resource. I used the simplest implementation I could come up with. If they work well I will make them better. 2021-08-21 16:36:52 +02:00
af37189fcf Initial Resource implementation. 2021-08-21 14:40:30 +02:00
584cff535f Added a new Resource class. Similar idea as in godot, but this will work differently. 2021-08-21 13:53:23 +02:00
f897b42b37 Added a godot's Reference class and a few smaller headers. 2021-08-21 13:47:58 +02:00
ae88f5b746 Placeholder html attribute. 2021-08-20 20:32:23 +02:00
7e8a7671e4 More work on the form vlaidator. 2021-08-20 20:32:09 +02:00
127563e6ca Implement logout. 2021-08-20 19:29:39 +02:00
f8ba0b26c5 More improvements to form validation. 2021-08-20 19:18:26 +02:00
3bc7bd98c6 Even more work on from validation. 2021-08-20 18:00:50 +02:00
0abb42bd61 More form validators. 2021-08-20 17:26:56 +02:00
cd59ae4860 Form validator initial implementation. 2021-08-20 15:54:12 +02:00
4228448fc1 Added and and or to the query builder, and implemented offset and limit for the sqlite query builder. 2021-08-20 13:14:06 +02:00
1ae34a3500 Added more getters to the query result. 2021-08-20 12:58:37 +02:00
af05bd037c More work on the query builder. 2021-08-20 12:49:57 +02:00
5050f31ba0 Update sql statement for the query builder. 2021-08-20 12:11:27 +02:00
2c5293f959 Lost of work on the query/table builders. 2021-08-20 01:32:43 +02:00
d2a0f25369 Lots of work on the table builder. 2021-08-19 23:55:16 +02:00
8ebb648d37 More work on the query builders. 2021-08-19 22:03:22 +02:00
8de082ffba Started reworking the QueryBuilder. Now instead just creating a query string (when finished) it will actually be able to handle querying, escapes, and also prepared statements. 2021-08-19 14:12:02 +02:00
711d1eed6f Added get_or_create_session helper to Request. 2021-08-05 19:34:11 +02:00
b55cb85855 implement get_parameter to Request. 2021-08-05 18:24:55 +02:00
543f1eed30 Added http method support to the request class. 2021-08-05 17:11:13 +02:00
6ea8d3e39a Added the value tag to the html builder. 2021-08-05 17:10:51 +02:00
0b8dcea37a Reword a comment. 2021-08-04 22:04:33 +02:00
2a2b3a6d60 Actually make session_setup_middleware work. 2021-08-04 21:58:25 +02:00
e62d012ec1 Added a middleware func to SessionManager that can set up request's session property. 2021-08-04 21:36:09 +02:00
8fc5eca9d4 Reset the singleton pointer in SessionManager's destructor. 2021-08-04 21:22:06 +02:00
652543ef19 Fix include guard. 2021-08-04 21:10:43 +02:00
c4dd81995e Added a session manager. 2021-08-04 21:02:34 +02:00
9e6645bad6 Added a session pointer to request. 2021-08-04 20:33:21 +02:00
2521c28a9a Added a http session class. 2021-08-04 20:32:51 +02:00
e19bd5b7ef Added a new data map property to Request for storing stuff like a session object, etc. 2021-08-04 15:44:52 +02:00
714eb02819 Added cookie support to the request. Implemented it for the drogon/trantor backend. 2021-08-04 15:36:26 +02:00
a86b5c2670 Added escape methods to the Database class. Implemented them for the MySQL, and Sqlite backend. 2021-07-08 18:52:59 +02:00
95e54b3a41 Also added an SHA256 abstract class to core, with swappable implementation support. 2021-07-07 14:21:36 +02:00
4c891a373e Fix DRequest. File support is still todo. 2021-07-06 22:06:18 +02:00
92ce00a88c Fixed routing in the brynet backend. 2021-07-06 20:23:13 +02:00
a16222e29e Fix newly introduced crash in the Brynet backend. 2021-07-06 20:15:36 +02:00
5c2d97ebbb Fix response allocation in BryRequest. 2021-07-06 20:08:11 +02:00
29dabe752f Made Request a base inheritable class, and made DRequest inherit from it. Also added BryRequest for the brynet backend. Also made DWebApplication inherit from WebApplication. 2021-07-06 20:06:38 +02:00
a47cb57da7 Renamed BryWebApplication to WebApplication, and moved it and HandlerInstance and Request to a new http folder. Their dependencies with brynet will be removed, they will have subclasses per backend when/if needed. 2021-05-27 17:37:23 +02:00
a34995e1b7 Moved every brynet based http class in core to a new bry_http folder. 2021-05-27 17:06:42 +02:00
843e8153ff Moved the html helpers to a html folder. 2021-05-27 16:57:38 +02:00
0c0123889b Renamed the Application class to BryWebApplication. 2021-05-27 16:52:53 +02:00
7279035237 Moved the database related classes in core to a subfolder aswell. 2021-05-15 13:54:28 +02:00
3a00179b3b Moved the http server to a subfolder in core. 2021-05-15 13:48:46 +02:00
679c6d37c1 Removed the namespaces from brynet. 2021-05-14 17:49:39 +02:00
c7ae476853 Add a ddb (default database) member to DatabaseManager. 2021-05-01 21:53:21 +02:00
c6033ab136 Added loop one method to http server. 2021-05-01 17:37:10 +02:00
d4ccc6775d Update brynet to the latest. 2021-04-30 16:10:14 +02:00
8c483b4f8e Removed static members from application. 2021-04-28 22:58:13 +02:00
614a496b7d Application is not a singleton anymore, as I think having multiple ones can be useful. HttpServer has an application pointer now (temporarily), it will be subclassed later. 2021-04-28 22:50:05 +02:00
c5ea34afdc Don't check for connection closed in send and send_file. Sometimes the connection closed callback gets called before send, but the connection still seems to be alive. Will work on it later. 2021-04-28 21:48:34 +02:00
b8624f190a Remove static handlers from http server. 2021-04-28 21:17:57 +02:00
23d085794c Added a mutex for writing/reading _request_map in HTTPServer. 2021-02-09 09:48:08 +01:00
67e740e35b Fix file chunking with downloads. Also fixed a bunch of std::shared_ptr misuses, and made Application::send_file use Request's file chunking. Also the framework will properly handle client disconnects now. 2021-02-09 01:25:24 +01:00
9a3404a7ac Fix a few path/folder related issues with paged article. Also improved a few error messages. 2021-02-08 11:53:04 +01:00
42758e57ad Revert everything back to bf688577fb . 2021-02-08 11:01:15 +01:00
46565958a1 Fix compile. The new drogon/trantor based server still needs lots of work/cleanups to replace brynet though. 2021-02-03 20:33:36 +01:00
7d000bb5b5 Work on fixing compile. 2021-02-03 19:43:54 +01:00
647694b576 Started migrating to trantor. Took lots of core utility classes from drogon aswell. At the moment the project doesn't compiles! 2021-02-03 02:18:37 +01:00
5cc22461fd Added an _old postfix to a few methods in HttpServer temporarily. 2021-02-02 18:26:22 +01:00
bf688577fb Updated brynet to 1.0.9. 2021-01-29 17:26:17 +01:00
4b64bf5864 Implemented chunked file downloads. For some reason if a file is too big and has to be sent in more that 43 chunks it crashes, it might be a bug in brynet (it always crashes at the 43th chunk, with every file and chunk size setting.), will figure out the problem later. 2021-01-08 02:55:41 +01:00
8e429cee7d Added file support to the paged article. Will not work well with big files at the moment. 2021-01-06 03:57:18 +01:00
d2751d83e2 Disable the emphasized parser in markdown_to_html, so links with underscores work properly. 2021-01-05 19:27:53 +01:00
f146a6a7bc Added 2 pagination helpers to Utils. 2020-12-28 23:13:54 +01:00
2e48e3c4ec Added a url stack to Request, for easier route handling. Also made the main routing middleware use it. 2020-12-28 19:15:27 +01:00
e1dd9c59a0 Added charset helper itno HTMLTag. 2020-12-27 22:38:31 +01:00
ba90610e3e Removed bbcpp. 2020-12-27 03:36:56 +01:00
6c56380d90 Added maddy and switched to markdown from bbcode in ListPage. 2020-12-27 03:35:41 +01:00
e20f1c98a2 Implemented more tags. 2020-12-27 02:38:09 +01:00
6a01c57c36 Added a new Utils class containing helper methods. 2020-12-26 17:49:59 +01:00
f2ea46f5d7 Add missing newline. 2020-12-26 17:48:00 +01:00
7e24a87c57 Add rel and rel_stylesheet into HTMLTag. 2020-12-26 00:17:59 +01:00
8f5c1fa4cc Add footer string into request. 2020-12-26 00:17:36 +01:00
4ea3702768 Added and implemented a HTML builder. 2020-12-11 19:55:19 +01:00
8d61eca08e Renamed form.h and cpp to form_validator.h and cpp. 2020-12-11 17:14:00 +01:00
195f8db964 Added a head and body string to Request, and removed themes. I think themes added unnecessary complexity, and code non-locality (The view methods would have been in a different class.). I think in a language which have headers this is unwanted (The code will be broken up with the mvc pattern, but the methods don't need to be in separate classes.). Themes are still easily implementable by either adding different css links to the new head variable, or by inheritance. 2020-12-11 16:54:41 +01:00
a6b29c04a4 Started working on settings. 2020-12-08 16:22:18 +01:00
f5441645fa Merged the 2 validate methods in FormField (still a draft). 2020-12-04 15:10:38 +01:00
f9dcdbb905 Form class initial "sketch". 2020-12-04 14:47:51 +01:00
53a2a651d6 Implement drop table for the table builder, fix a warning, and made the message page's migration runnable multiple times (for now). 2020-12-02 00:49:17 +01:00
b99cbf0164 Implemented a QueryResult object for mysql. messagepage now queries the db too. 2020-12-02 00:43:46 +01:00
b063237399 Initial TableBuilder implementation, and simple migrations. 2020-12-01 23:37:10 +01:00
7a81053ebb Now the mysql query builder is usable. 2020-12-01 22:23:28 +01:00
8b4efc530d Added the QueryBuilder class, and started working on it's api. 2020-12-01 21:48:13 +01:00
663ddb5bc9 Started work on the mysql database implementation. Mostly tests. 2020-12-01 18:29:41 +01:00
863599e554 Small comment. 2020-12-01 15:30:09 +01:00
9bddaba8bc Implement basic functionality of the DatabaseManager. Also made MysqlConnection inherint from Database, and it's now possible to create instances from it. 2020-12-01 14:47:24 +01:00
5bbe067d4e Bit more work on the database interface mockup. 2020-12-01 14:46:08 +01:00
026513c0ff Mockup for the core database classes. 2020-12-01 14:00:49 +01:00
5559b663b5 Added a MessagePage class into a new module folder. Also set up module folder compilation, and fixed compile when objects are actually used. 2020-12-01 13:47:02 +01:00
ca06a248b2 Took some of the RTTI implementation from Godot. (GDCLASS macro). 2020-12-01 13:08:48 +01:00
65f7f3a6b2 Now handlers need to have a new Object* parameter, this can be used to optionally carry class instances. (think of it as self in python object methods, except it can be null). 2020-12-01 12:56:04 +01:00
9c7be6e808 Mysql database module. Only implemented compiling / linking. 2020-11-27 23:44:56 +01:00
c3922e17d2 Moved routing to a middleware, so it's easily customizable, and also it is now able to do async things. 2020-11-26 12:10:21 +01:00
40471f0525 Now the request handling/middlewares work in a fully async way. 2020-11-26 12:02:58 +01:00
cc8de9ed7f The default 404 and generic errors html bodies are static members in Application, this makes them trivial to replace if they are static html. 2020-11-26 11:32:33 +01:00
4d6e1e5dd9 Small html syntax fix. 2020-11-26 11:27:14 +01:00
566717c075 Now requests have to be sent manually, with a new send() method. This makes it possible to handle requests in a full on async callback-like way. 2020-11-26 11:26:02 +01:00
5b22c599a9 Implemented a scons based build script based on godot's. Will need to be cleaned up when I understand how scons works better. 2020-11-25 21:48:47 +01:00
19fa2b5e67 Implement Themes, and fix middlewares. 2020-11-25 21:00:22 +01:00
4e98d05bd5 Implemented body caching and cleanups to FileCache. 2020-11-25 14:53:53 +01:00
c53c3dbfc3 Renamed the framework folder to core. 2020-11-25 13:28:34 +01:00