From b283f8545c420b972af211b5d326dac1b7dd2efd Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Wed, 2 Apr 2025 21:33:52 +0200 Subject: [PATCH] [FEAT] add readable optionnal for field --- .../annotation/apiGenerator/ApiAccessLimitation.java | 5 +++++ .../archidata/externalRestApi/typescript/TsClassElement.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/org/kar/archidata/annotation/apiGenerator/ApiAccessLimitation.java b/src/org/kar/archidata/annotation/apiGenerator/ApiAccessLimitation.java index e2a7cf0..d99871a 100644 --- a/src/org/kar/archidata/annotation/apiGenerator/ApiAccessLimitation.java +++ b/src/org/kar/archidata/annotation/apiGenerator/ApiAccessLimitation.java @@ -9,6 +9,11 @@ import java.lang.annotation.Target; @Retention(RUNTIME) @Target(FIELD) public @interface ApiAccessLimitation { + /** + * (Optional) The field is accessible in read (GET) + */ + boolean readable() default true; + /** * (Optional) The field is accessible in creation (POST) */ diff --git a/src/org/kar/archidata/externalRestApi/typescript/TsClassElement.java b/src/org/kar/archidata/externalRestApi/typescript/TsClassElement.java index 949960e..416a384 100644 --- a/src/org/kar/archidata/externalRestApi/typescript/TsClassElement.java +++ b/src/org/kar/archidata/externalRestApi/typescript/TsClassElement.java @@ -396,6 +396,10 @@ public class TsClassElement { out.append("zod.object({\n"); } for (final FieldProperty field : model.getFields()) { + // remove all readOnly field + if (!field.accessLimitation().readable()) { + continue; + } final ClassModel fieldModel = field.model(); if (field.comment() != null) { out.append("\t/**\n");