Commit Graph

1355 Commits

Author SHA1 Message Date
Daniele Teti
bdeca614c4 Updated sqids ext lib 2024-05-27 09:07:37 +02:00
Daniele Teti
1f06210979 Added sample for nested and internal partials with Mustache 2024-05-23 15:30:50 +02:00
Daniele Teti
43478dbdbf Added TMVCSqidsEncoder, IMVCSqidsEncoder and relative sample (sqids_showcase.dproj) 2024-05-23 10:04:31 +02:00
Daniele Teti
9edc977bc4 Added OKResponse(const Message: String): IMVCResponse; 2024-05-23 10:02:54 +02:00
Daniele Teti
1a10545794 Improved Sqids in not-nullable types 2024-05-14 23:44:08 +02:00
Daniele Teti
9cd1181e88 Better handling of sqids in nullable types 2024-05-14 23:26:10 +02:00
Daniele Teti
d06d470e45 Added "MVCSerializeAsSqids" attribute. Added Sqids support in Wizard. Renamed ":sqid" converter to ":sqids". Added more tests. 2024-05-10 16:16:47 +02:00
Daniele Teti
7420015c5c Sqids support - base classes + converter mechanism. Added ":sqid" converter. 2024-05-09 23:50:01 +02:00
Daniele Teti
fe5f7d4a72 Preparing for dmvcframework-3.4.2-magnesium-rc1 2024-05-03 00:13:08 +02:00
Daniele Teti
9b414b8665 Delphi Tokyo Compat 2024-05-02 19:14:59 +02:00
rjantz2
d0c3414a5e
Fix crash caused by null value set as a nested record. (#750) 2024-05-01 11:03:49 +02:00
Daniele Teti
d743333741 Updated dmustache to version 2 2024-04-29 15:40:45 +02:00
Marcelo Varela
493d2f21ae
Add Http Only Cookie support (#738)
* HTTP Only Cookie support

* Unit name

* Without chaning the formatting

* Without chaning the formatting

* On logoff check if UseHttpOnly is true
2024-04-29 14:55:58 +02:00
Francisco Zanini
f0bf273e0b
Check if the field is writeable when mapping value to param (#735)
* Return 401 instead 403 when authenticating an user

* Check if the field is writeable when mapping value to param

---------

Co-authored-by: Francisco Zanini <francisco@digifort.com.br>
2024-04-29 14:48:31 +02:00
Daniele Teti
dc29941164 https://github.com/danieleteti/delphimvcframework/issues/746 2024-04-29 12:50:25 +02:00
Daniele Teti
8e7e14151d Profiling can be enabled by the wizard 2024-04-24 17:03:05 +02:00
Daniele Teti
b5b18792d4 Added HTTP Status Code in logs in case of global exception handling 2024-04-23 14:35:20 +02:00
Daniele Teti
2a7a840b13 Added OnSendData callback in TMVCRESTClient 2024-04-23 14:34:40 +02:00
Daniele Teti
2559a00084 Aligned sample data database for activerecorddb 2024-04-22 18:11:53 +02:00
Daniele Teti
c297081c07 Polished some log messages for dotEnv 2024-04-19 18:17:57 +02:00
Daniele Teti
453d4571e2 Wizard can generate or not the dotEnvConfigure call - if not called, a defuault configuration for dotEnv is provided. 2024-04-19 15:58:19 +02:00
Daniele Teti
4c191c3742 Preparing for release 2024-04-19 13:21:45 +02:00
João Antônio Duarte
eba712e902 Fix Linux compilation 2024-04-17 08:11:47 -03:00
João Antônio Duarte
0816f12ed8 Compatibility fix with Delphi 10.4 Sydney 2024-04-17 08:11:16 -03:00
Daniele Teti
d231ebf3cb Changed param order for RegisterType 2024-04-17 09:57:22 +02:00
Daniele Teti
563f184eb2 Code cleanup between TMVCRenderer and TMVCController 2024-04-16 16:39:41 +02:00
Daniele Teti
deff8e6d91 Simplifies content handling in Render(string) 2024-04-16 15:20:50 +02:00
Daniele Teti
80354984e5 Clean some comments 2024-04-16 15:20:18 +02:00
Daniele Teti
51a457e5ec Packages update 2024-04-16 09:30:19 +02:00
Daniele Teti
dea575f3df Modernized FileUpload sample 2024-04-10 17:12:42 +02:00
Daniele Teti
6d1ea32678 Fixed incompatibilities with Delphi Sydney and previous (thanks Mark Lobanov) 2024-04-10 14:19:21 +02:00
Daniele Teti
7332259f25 Default log size = 10KiB 2024-04-09 17:15:11 +02:00
Daniele Teti
9fe57246d4 foAutoGenerated is converted to [foDoNotInsert , foDoNotUpdate] 2024-04-09 17:05:22 +02:00
Daniele Teti
ac78f902ca Small refactoring of JSONRPC controller 2024-04-05 00:01:04 +02:00
Daniele Teti
ff8124742e Sample articles_crud_server updated to use db logger 2024-04-04 16:21:45 +02:00
Daniele Teti
af0984e050 Added
function OKResponse(const Body: TObject): IMVCResponse; overload;
    function OKResponse: IMVCResponse; overload;
    function NotFoundResponse(const Body: TObject): IMVCResponse; overload;
    function NotFoundResponse: IMVCResponse; overload;
    function NoContentResponse: IMVCResponse;
    function UnauthorizedResponse: IMVCResponse;
    function BadRequestResponse: IMVCResponse; overload;
    function BadRequestResponse(const Error: TObject): IMVCResponse; overload;
    function CreatedResponse(const Location: string = ''; const Body: TObject = nil): IMVCResponse;
    function AcceptedResponse(const Location: string = ''; const Body: TObject = nil): IMVCResponse;
    function ConflictResult: IMVCResponse;
    function InternalServerErrorResponse: IMVCResponse;
2024-04-03 16:11:38 +02:00
Daniele Teti
8c80ed7a3e Cleanup TransactionContext, better exception message for no data found. 2024-04-03 14:41:29 +02:00
Daniele Teti
e370718a34 Added EMVCActiveRecordTransactionContext 2024-04-03 09:59:53 +02:00
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