Commit Graph

1317 Commits

Author SHA1 Message Date
Daniele Teti
4349f20d95 TransactionContext (WIP) 2024-03-31 18:09:13 +02:00
Daniele Teti
b41e245bbc articles_crud migrated to services container 2024-03-30 00:30:14 +01:00
Daniele Teti
6142c2d929 Container (WIP) - almost ready to be merged into master 2024-03-28 23:57:59 +01:00
Daniele Teti
1920249eb9 ServiceContainerDecorator (WIP) 2024-03-28 16:31:44 +01:00
Daniele Teti
9035aed2e7 ServiceContainer (WIP) - removed params in Resolve 2024-03-27 00:24:00 +01:00
Daniele Teti
cf2450465b ServiceContainer (WIP) 2024-03-27 00:10:48 +01:00
Daniele Teti
b592963a78 ServiceContainer (wip) 2024-03-25 00:15:50 +01:00
Daniele Teti
8aa4ab5f7b ServiceContainer (WIP) - singleton is "singleton per webmodule" 2024-03-24 16:58:08 +01:00
Daniele Teti
f69583373a Injector (WIP) 2024-03-21 18:57:41 +01:00
Daniele Teti
fea6b0c273 Added support for TSQLTimeStampOffset in dataset derialization and deserialization 2024-03-19 16:05:17 +01:00
Daniele Teti
cbc971aaf6 Any exception in TMVCWebResponse.Destroy on logged 2024-03-14 15:03:51 +01:00
Daniele Teti
17747dcf19 Completed new field options (foDoNot*) 2024-03-13 16:45:09 +01:00
Daniele Teti
ab92225d12 First implementation for foDoNotInsert and foDoNotUpdate 2024-03-13 13:00:11 +01:00
João Antônio Duarte
2793808115 Swagger: adding support for defining request body parameters as an array of objects.
Fix https://github.com/danieleteti/delphimvcframework/issues/713
2024-03-09 18:24:20 -03:00
Daniele Teti
eb8d535c9b Merge branch 'master' of https://github.com/danieleteti/delphimvcframework 2024-03-08 16:17:42 +01:00
Daniele Teti
3dc4592837 Removed ViewDataSets and all related methods from TMVCController. Use ViewData instead.
https://github.com/danieleteti/delphimvcframework/issues/729
2024-03-08 16:17:30 +01:00
Graham Murt
ec5a804576
Fixed issue where an exception is raised if KEYS() finds no matches and returns null (#733) 2024-03-08 15:26:35 +01:00
Daniele Teti
b9fcc04647 https://github.com/danieleteti/delphimvcframework/issues/728 2024-03-08 12:10:15 +01:00
Francisco Zanini
a7ea6c8369
Return 401 instead 403 when authenticating an user (#734)
Co-authored-by: Francisco Zanini <francisco@digifort.com.br>
2024-02-27 21:17:34 +01:00
Daniele Teti
833195243e Added proper handling of TimeStampWithOffset 2024-02-23 00:30:04 +01:00
Daniele Teti
02c0ae0f37 Added TEXT serializer - Improved content type handling in case of errors and no_route_found cases. 2024-02-22 19:18:34 +01:00
Daniele Teti
f9076a4732 Merge branch 'master' of https://github.com/danieleteti/delphimvcframework 2024-02-21 23:40:34 +01:00
Daniele Teti
b0e3cfc424 Added functional utils: Filter, Map, Reduce, ForEach 2024-02-21 23:40:25 +01:00
Graham Murt
0ceb7180fa
Added DeleteCacheKey method to TMVCCacheController (#731)
Deletes the specified key(s) from the Redis cache. Pattern matching can be used to delete multiple keys
2024-02-21 23:33:25 +01:00
Daniele Teti
cc5789d56e Now "NoRouteFound" error returns the correct content-type 2024-02-21 14:41:25 +01:00
Daniele Teti
49bbce0959 URLEncoding uses new TNetEncoding broader 2024-02-14 18:03:44 +01:00
Daniele Teti
2be3ba60b7 Removed SimpleConsoleAppender from MOBILE platforms 2024-02-14 18:02:25 +01:00
Daniele Teti
b2ce859b4e https://github.com/danieleteti/delphimvcframework/issues/730 2024-02-12 18:11:48 +01:00
Daniele Teti
8b0d370a85 Merge commit '547fec74b9dcbf32887aad4fdd6348685c654ef2' into feature_filters
# Conflicts:
#	sources/MVCFramework.Filters.CORS.pas
#	sources/MVCFramework.pas
#	unittests/general/Several/LiveServerTestU.pas
2024-02-05 16:30:02 +01:00
Daniele Teti
d1b14eb24a Optimized pooling and cache of frequently used object in mustache and partitioning 2024-01-31 16:00:56 +01:00
Daniele Teti
b42feddffd Less string concats in router 2024-01-25 19:32:04 +01:00
Daniele Teti
745cf3c24b ThereIsBody -> HasBody 2024-01-25 19:31:27 +01:00
Daniele Teti
59afaec81a Updated wizard to use ConsoleLogger 2024-01-24 00:14:26 +01:00
Daniele Teti
40c445668c Now console app logs on console 2024-01-23 17:25:32 +01:00
Daniele Teti
0ccf2b699d UseCommonHeaders for Page and PageFragment 2024-01-23 17:19:48 +01:00
Daniele Teti
7a11512347 Breaking Change! TMVCActiveRecordController uses (and requires) TMVCActiveRecordMiddleware - it doesn't require a TFDConnection on constructor 2024-01-20 10:36:45 +01:00
Daniele Teti
dbe638222e new beta version 3.4.2-magnesium-beta 2024-01-09 09:24:47 +01:00
Daniele Teti
40b709b318 https://github.com/danieleteti/delphimvcframework/issues/721 2024-01-08 16:39:49 +01:00
Daniele Teti
300c7b4d13 Version bump 3.4.1-sodium 2024-01-06 15:23:07 +01:00
Daniele Teti
a2e19a7689 FIX some encoding problems introduced by VSCode replace-in-files >:| 2024-01-03 14:31:28 +01:00
Daniele Teti
f23dd2fa88 Added support for table name and field name with spaces for MySQL and MariaDB 2024-01-03 11:39:53 +01:00
Daniele Teti
90dcd3bdfe Copyright updated to 2010-2024 2024-01-02 17:04:27 +01:00
Daniele Teti
b761b9ac9a Improved encoding caching 2023-12-07 12:14:08 +01:00
Daniele Teti
1121eb4f04 https://github.com/danieleteti/delphimvcframework/issues/716 2023-12-04 16:33:14 +01:00
Daniele Teti
28bd67477e Improved error message in case of HTML responses 2023-11-29 11:22:12 +01:00
Daniele Teti
e0190b3fe8 foVersion (WIP + new sample) 2023-11-27 18:11:49 +01:00
Daniele Teti
3a748821ce Aligned for foVersion 2023-11-27 12:04:30 +01:00
Daniele Teti
d68b102d14 Added TMVCActiveRecord.GetCustomTableName which allows to overwrite the tablename defined in the MVCTableName attribute. Just overwrite the method in descendant classes and return the tablename to use for the current instance. 2023-11-23 22:58:07 +01:00
Daniele Teti
5aa1e07056 Added bit Time Professionals ITA as sponsor 2023-11-13 16:46:35 +01:00
Daniele Teti
4b9cb8b5be Defined conditional "ATHENSORBETTER" (was DELPHI12ORBETTER) 2023-11-07 22:41:44 +01:00
Daniele Teti
e1aa50dd86 Delphi12 compatibility 2023-11-06 12:37:33 +01:00
Daniele Teti
9296a57711 https://github.com/danieleteti/delphimvcframework/issues/707 2023-11-05 10:25:45 +01:00
Daniele Teti
869dd457b2 Refactored method which gets multiple parameters with same name in URLEncodedDeserializer 2023-11-04 16:58:37 +01:00
Daniele Teti
6d57a9dcff Added GetParamMulti for MVCFromContent - Added support for TArray<String>, TArray<Integer>, TArray<Int64> in injection 2023-11-04 11:51:52 +01:00
Daniele Teti
a2f190df44 New feature: ObjectVersioning for TMVCActiveRecord - see foVersion
- TMVCActiveRecord.TableName is now readonly
2023-11-02 17:36:19 +01:00
Daniele Teti
ed1697c616 MVCActiveRecord: Improved exception message for entity without MVCTable 2023-11-01 23:11:50 +01:00
Daniele Teti
3c9ce3097c Removed SetDefaultColors where should not be 2023-11-01 23:11:25 +01:00
Daniele Teti
afafecf8cb dotEnv: Renamed WithStrategy -> UseStrategy, Added SkipDefaultEnv 2023-11-01 23:10:39 +01:00
Daniele Teti
72fd459537 - dotEnv parser allows empty values
- dotEnv names adhere to [a-z,A-Z,_,\.][0-9,a-z,A-Z,_,\.]*
- better dotEnv error reporting
2023-10-21 23:46:12 +02:00
Daniele Teti
83cf604f30 Improved logged message for Exception using LogException 2023-10-18 16:57:02 +02:00
Daniele Teti
dd5d5e6ee8 Added IMVCDotEnv.RequireKeys(const Keys: TArray<String>) -- more info https://github.com/bkeepers/dotenv#required-keys 2023-10-18 15:54:03 +02:00
Daniele Teti
7f6c3e2ea2 Added TMVCActiveRecord.TryGetSQLQuery<T> and TMVCActiveRecord.TryGetRQLQuery<T> 2023-10-17 18:07:09 +02:00
Daniele Teti
62a1344896 Renamed "TMVCURLEncodedDataSerializer" to "TMVCURLEncodedSerializer" 2023-10-17 18:06:21 +02:00
Daniele Teti
ef6edd5c58 ViewData[] is now a TValue dictionary 2023-10-14 12:26:05 +02:00
Daniele Teti
9175963c12 Added ObjectToJSONObject helper method 2023-10-13 17:37:14 +02:00
Daniele Teti
d26008fd8a Sanitized SSE data 2023-10-13 17:36:52 +02:00
Daniele Teti
9c70a6244c Added method Page, PageFragment, SetPagesCommonHeaders and SetPagesCommonFooters. Removed the old LoadViewFragment method. 2023-10-10 18:17:44 +02:00
Daniele Teti
11550c0056 URLEncoded Serializer is able to deserialize data as JSONObject 2023-10-07 00:02:20 +02:00
Daniele Teti
5f88ef2713 https://github.com/danieleteti/delphimvcframework/issues/657 2023-10-06 12:40:53 +02:00
Daniele Teti
7baf93d73d https://github.com/danieleteti/delphimvcframework/issues/684 2023-10-06 12:30:40 +02:00
Daniele Teti
eb3d269188 https://github.com/danieleteti/delphimvcframework/issues/701 2023-10-06 10:45:42 +02:00
Daniele Teti
7cb33e8615 Cleanup 2023-10-06 10:42:49 +02:00
Daniele Teti
d935c3fcc3 https://github.com/danieleteti/delphimvcframework/pull/699 2023-10-06 00:52:49 +02:00
David Moorhouse
21aa47328b Added Mustache Helpers to default Renderer. Added a virtual method to allow application writer to subclass the Mustache Renderer to add additional features such as new Mustache lambdas (callbacks) and Translation callbacks. 2023-10-05 18:03:23 +13:00
Daniele Teti
a92deebae9 New sample to explain how to use ADO connections in TMVCActiveRecord 2023-10-04 08:03:10 +02:00
Daniele Teti
649e7a825f FIX for older versions 2023-10-03 13:01:59 +02:00
Daniele Teti
9356cca93d Imrpovements over the Entity Generator 2023-10-03 11:11:01 +02:00
Daniele Teti
ec9140f2a7 Added MVCActiveRecord feature which allows to map a boolean object attribute to integer field on the actual table. 2023-10-01 15:22:43 +02:00
Daniele Teti
88127a7b44 Improved HTML error page look&feel 2023-10-01 15:22:05 +02:00
Daniele Teti
2e07107948 MVCActiveRecord - in case of "integer field types" specified in the MVCTableField attribute "DataFieldName", if the entity property is a boolean value, 1 and 0 are mapped as true and false. 2023-09-28 15:37:10 +02:00
Daniele Teti
e1a95bded7 Updated HTML exception rendering 2023-09-28 10:44:44 +02:00
Daniele Teti
af8f572a00 Improved console handling for MVCFramework.Console.pas 2023-09-27 15:10:13 +02:00
Daniele Teti
3d910bdfed New sample: HTMX_mustache, fix for some unit test, workaround for IdCustomHTTP strange behaviour in case of empty response and HTTP 200 OK. 2023-09-25 23:55:28 +02:00
Daniele Teti
b8bb07b2c4 Added function TMVCController.GetRenderedView(const AViewNames: TArray<string>; const JSONModel: TJSONObject): string; 2023-09-23 00:22:52 +02:00
Daniele Teti
0f35452954 https://github.com/danieleteti/delphimvcframework/issues/694 2023-09-22 09:43:35 +02:00
Daniele Teti
ed9a0cbe0e Allows to run code like this: C:\Projects\Win32\Debug>set dmvc.server.port = 9999 & Project6.exe 2023-09-22 09:41:37 +02:00
Daniele Teti
f52c973e44 Improved reverse proxy headers handling 2023-09-15 10:16:21 +02:00
Daniele Teti
42c58d92f7 https://github.com/danieleteti/delphimvcframework/issues/692 2023-09-14 16:35:49 +02:00
Daniele Teti
a879d127a4 FIX for Tokyo. Removed absolute paths in dpk. 2023-09-13 10:11:17 +02:00
Daniele Teti
480463a6f9 FIX for Tokyo - thanks Mark Lobanov 2023-09-13 00:00:04 +02:00
Daniele Teti
ca3f874b38 Update build const 2023-09-07 19:22:03 +02:00
Daniele Teti
d30e3ea585 Added support for NamedQuery using ClassRef 2023-09-05 14:32:04 +02:00
Daniele Teti
36d7a938b6 Refactored MVCResponseBuilder 2023-09-05 12:29:38 +02:00
Daniele Teti
68aa8c8f1c Improved "MVCResponseBuilder" 2023-09-05 09:56:57 +02:00
Daniele Teti
d57c79480d Improved rendering of TMVCErrorResponse. Clean-up of functional_actions_sample. 2023-09-04 17:09:41 +02:00
Daniele Teti
7ebb0681d5 no message 2023-09-04 11:29:05 +02:00
David Moorhouse
ac94f2d070 Added HTMK helpers for MVCWebRequest/Respons
Added sample application
2023-09-04 12:56:16 +12:00
Daniele Teti
7b828d78f2 Code clean up in the samples 2023-09-01 12:49:10 +02:00
Daniele Teti
0775315682 Improved "renders" sample - added sensible defaults for MVCResponseBuilder 2023-08-30 17:38:14 +02:00
Daniele Teti
f21bb1144b https://github.com/danieleteti/delphimvcframework/issues/682 2023-08-30 16:34:36 +02:00
Daniele Teti
f5f9220f70 Improved CORS middleware 2023-08-30 11:58:50 +02:00
Daniele Teti
56573899d3 TMVCResponseBuilder and IMVCResponseBuilder (WIP) 2023-08-29 23:51:08 +02:00
Daniele Teti
be3f8c8290 Removed HINT 2023-08-18 20:36:12 +02:00
Daniele Teti
1af61e82d7 https://github.com/danieleteti/delphimvcframework/issues/681 2023-08-16 17:15:11 +02:00
Daniele Teti
ec799cf573 https://github.com/danieleteti/delphimvcframework/issues/679 2023-08-16 11:40:36 +02:00
Daniele Teti
dfe3943d86 https://github.com/danieleteti/delphimvcframework/issues/679 2023-08-15 21:25:46 +02:00
Daniele Teti
e93f9e5ae7 https://github.com/danieleteti/delphimvcframework/issues/679
(WIP)
2023-08-15 18:24:17 +02:00
Daniele Teti
376e3ea9c2 https://github.com/danieleteti/delphimvcframework/issues/680 2023-08-15 11:43:47 +02:00
Daniele Teti
85eef8920f Added server side session with file persistence 2023-08-12 01:24:10 +02:00
Daniele Teti
cbdb7b684f Improved ISAPI sample 2023-08-09 15:57:28 +02:00
Daniele Teti
b59f8f6421 Added MVCNamedSQLQuery and MVCNamedRQLQuery (Named queries support is complete) 2023-08-09 10:55:34 +02:00
Daniele Teti
636341d822 NamedSQLQuery (WIP) 2023-08-09 01:23:24 +02:00
Daniele Teti
47c3003f15 Better organization of method between TMVCActiveRecord and TMVCActiveRecordHelper 2023-08-09 00:46:31 +02:00
Daniele Teti
0053885bc1 Better exception description and better recognize of boolean type when database doesn't know boolean field types 2023-08-08 18:54:44 +02:00
Daniele Teti
c201c916cb https://github.com/danieleteti/delphimvcframework/issues/675 2023-08-08 14:31:23 +02:00
Daniele Teti
8631a155ff - Added IMVCResponse with related helper methods "MVCResponse(...)"
- IMVCObjectDictionary can be serialized as attribute and not only as root object (required to serialize IMVCObjectDictionary from TMVCResponse)
2023-08-04 13:09:05 +02:00
Daniele Teti
7e451ae1d6 Added specific rendering case for TMVCResponse and its child classes 2023-08-03 17:04:28 +02:00
João Antônio Duarte
1d50399b4f Fixed data decompression in TMVCRestClient. On MACOS/iOS clients the decompression is automatic. 2023-07-25 15:42:08 -03:00
Daniele Teti
49ed5c7824 Fixed a default initialization for JWT (thanks to Flavio Basile) 2023-07-20 16:47:48 +02:00
Daniele Teti
34bddfc8fd Improved TMVCResponse to better suit the new functional actions 2023-07-20 16:40:39 +02:00
Daniele Teti
329aaa9190 Added more tests on "functional actions" 2023-07-19 12:29:16 +02:00
Daniele Teti
61d021b92a Improved dataset handling for functional actions. 2023-07-19 11:10:21 +02:00
Daniele Teti
e6fc21dff9 Merge branch 'master' into feature_642_functions_as_action
# Conflicts:
#	packages/d113/dmvcframework_group.groupproj
#	sources/MVCFramework.Commons.pas
2023-07-18 13:44:14 +02:00
Daniele Teti
69d9780b02 TMVCActiveRecord correnctly handle "DirectExecute" params in Exec* methods 2023-07-12 15:01:58 +02:00
Daniele Teti
2b65a1d503 In case of MVCPartitioning and DefaultFiltering are both present, DefaultFiltering wins.
While the partitioning in enforced at insert, the update doesn't enforce partitioning. This allows to implement proper OOP architecture (person -> employee -> manager)
2023-07-07 20:29:09 +02:00
Daniele Teti
7a3ad403f8 Added RenderFile and RenderStream as aliases for SendFile and SendStream 2023-07-07 20:27:24 +02:00
Daniele Teti
17d9afc58e https://github.com/danieleteti/delphimvcframework/issues/667 2023-06-21 12:56:21 +02:00
Daniele Teti
0374d8fa4b Added MSHeap.pas (https://github.com/RDP1974/DelphiMSHeap) 2023-06-21 12:30:29 +02:00
Daniele Teti
2e11e63926 Improved dotEnv parser to better handling border cases 2023-06-16 14:58:17 +02:00
Daniele Teti
2365be432b Wrong comparison in checks for ro/RW/PK fields 2023-06-16 00:59:51 +02:00
Daniele Teti
2e2d3a499e Added support for configuration; better handling for topics cleaning. 2023-06-15 23:42:07 +02:00
Daniele Teti
9c5cdecccc Removed dotEnv(<instance>), introduced dotEnvConfigure(TFunc<IMVCDotEnv>); ide expert updated accordingly 2023-06-14 17:57:33 +02:00
Daniele Teti
93ee4225f4 Small improvements on shutdown 2023-06-06 17:34:24 +02:00
Daniele Teti
fd19c463f2 Wizard uses dotEnv configurations 2023-06-06 13:00:21 +02:00
Daniele Teti
2604c3a52f Integrating dotEnv engine in dmvcframework projects - starting with the concurrency_speed_test 2023-06-06 10:16:34 +02:00
Daniele Teti
607a30a3f0 https://github.com/danieleteti/delphimvcframework/issues/664 2023-06-04 18:19:50 +02:00
Daniele Teti
23927c806c Merge branch 'master' into feature_642_functions_as_action 2023-05-30 12:52:10 +02:00
Daniele Teti
85389b8fb6 Splitted IMVCDotEnv in IMVCDotEnvBuilder and IMVCDotEnv 2023-05-30 12:03:20 +02:00
Daniele Teti
724c797cbf Improved some unit tests - fix some failing tests 2023-05-27 12:20:24 +02:00
Daniele Teti
a05060b18c https://github.com/danieleteti/delphimvcframework/issues/663
Reverted commit ba537b2ad9 related to issue https://github.com/danieleteti/delphimvcframework/issues/658
2023-05-26 18:46:59 +02:00
Daniele Teti
3ddda59e33 Added support for dotEnv multiline keys - added dotEnv show case (WIP) 2023-05-25 00:48:03 +02:00
Daniele Teti
d892c21cc4 Support for .env (WIP) 2023-05-24 10:55:43 +02:00
Daniele Teti
bb30db152d Removed a potential memory leak when a JSONRPC with dinamically allocated parameters method raises exception. 2023-05-23 11:45:58 +02:00
Daniele Teti
ba537b2ad9 https://github.com/danieleteti/delphimvcframework/issues/658 2023-05-18 16:52:35 +02:00
Daniele Teti
d122bf300d (WIP) 2023-05-18 09:09:05 +02:00
João Antônio Duarte
b0035f3e59 Improvements to TMVCRestClient when adding files to multipart/form-data type requests 2023-04-25 10:27:55 -03:00
Daniele Teti
2d5f4c5f36 Merge branch 'master' into feature_642_functions_as_action
# Conflicts:
#	README.md
2023-04-21 16:41:21 +02:00
Daniele Teti
6cac1a790d https://github.com/danieleteti/delphimvcframework/issues/652 2023-04-17 12:34:30 +02:00
Daniele Teti
ad3aea9d98 Added "Profiler.LogsOnlyIfOverThreshold" which logs only if over the defined threshold 2023-04-06 14:47:01 +02:00
Francisco Zanini
317d97ce2e
Fixed wrong data type for NullableTGUID (#651)
Co-authored-by: Francisco Zanini <francisco@digifort.com.br>
2023-03-28 17:08:58 +02:00