@@ -58,6 +58,8 @@ public class KotlinMiskServerCodegen extends AbstractKotlinCodegen implements Be
5858 public static final String ACTION_ANNOTATIONS = "actionAnnotations" ;
5959 public static final String ACTION_IMPORTS = "actionImports" ;
6060 public static final String ACTION_PARENT_CLASS = "actionParentClass" ;
61+ public static final String ACTION_REQUEST_CONTENT_TYPE = "actionRequestContentType" ;
62+ public static final String ACTION_REQUEST_CONTENT_TYPE_PREFIX = "actionRequestContentTypePrefix" ;
6163
6264 private boolean useBeanValidation = true ;
6365
@@ -75,6 +77,8 @@ public class KotlinMiskServerCodegen extends AbstractKotlinCodegen implements Be
7577 @ Setter protected String actionAnnotations = "" ;
7678 @ Setter protected String actionImports = "import misk.web.actions.WebAction" ;
7779 @ Setter protected String actionParentClass = "WebAction" ;
80+ @ Setter protected String actionRequestContentType = "@RequestContentType(" ;
81+ @ Setter protected String actionRequestContentTypePrefix = "MediaTypes." ;
7882
7983 @ Override
8084 public CodegenType getTag () {
@@ -131,6 +135,8 @@ public KotlinMiskServerCodegen() {
131135 addOption (ACTION_ANNOTATIONS , "Action Annotations" , actionAnnotations );
132136 addOption (ACTION_IMPORTS , "Imports for Actions" , actionImports );
133137 addOption (ACTION_PARENT_CLASS , "Parent Class for Action" , actionParentClass );
138+ addOption (ACTION_REQUEST_CONTENT_TYPE , "Request ContentType for Action" , actionRequestContentType );
139+ addOption (ACTION_REQUEST_CONTENT_TYPE_PREFIX , "Request ContentType Prefix for Action" , actionRequestContentTypePrefix );
134140
135141 apiTestTemplateFiles .clear ();
136142 apiTestTemplateFiles .put ("api_test.mustache" , ".kt" );
@@ -197,6 +203,16 @@ public void processOpts() {
197203 }
198204 writePropertyBack (ACTION_PARENT_CLASS , actionParentClass );
199205
206+ if (additionalProperties .containsKey (ACTION_REQUEST_CONTENT_TYPE )) {
207+ setActionRequestContentType ((String ) additionalProperties .get (ACTION_REQUEST_CONTENT_TYPE ));
208+ }
209+ writePropertyBack (ACTION_REQUEST_CONTENT_TYPE , actionRequestContentType );
210+
211+ if (additionalProperties .containsKey (ACTION_REQUEST_CONTENT_TYPE_PREFIX )) {
212+ setActionRequestContentTypePrefix ((String ) additionalProperties .get (ACTION_REQUEST_CONTENT_TYPE_PREFIX ));
213+ }
214+ writePropertyBack (ACTION_REQUEST_CONTENT_TYPE_PREFIX , actionRequestContentTypePrefix );
215+
200216 if (additionalProperties .containsKey (USE_BEANVALIDATION )) {
201217 this .setUseBeanValidation (convertPropertyToBoolean (USE_BEANVALIDATION ));
202218 }
@@ -255,39 +271,39 @@ public boolean getUseBeanValidation() {
255271 }
256272
257273 private String mapMediaType (String mediaType ) {
258- return MEDIA_MAPPING .getOrDefault (mediaType , "MediaTypes. APPLICATION_OCTETSTREAM /* @todo(unknown) -> " + mediaType + " */ " );
274+ return MEDIA_MAPPING .getOrDefault (mediaType , "APPLICATION_OCTETSTREAM /* @todo(unknown) -> " + mediaType + " */ " );
259275 }
260276
261277 private final static Map <String , String > MEDIA_MAPPING = getMappings ();
262278
263279 private static Map <String , String > getMappings () {
264280 // add new values in order
265281 Map <String , String > result = new HashMap <>();
266- result .put ("*/*" , "MediaTypes. ALL" );
267-
268- result .put ("application/grpc" , "MediaTypes. APPLICATION_GRPC" );
269- result .put ("application/javascript" , "MediaTypes. APPLICATION_JAVASCRIPT" );
270- result .put ("application/json" , "MediaTypes. APPLICATION_JSON" );
271- result .put ("application/jwt" , "MediaTypes. APPLICATION_JWT" );
272- result .put ("application/octetstream" , "MediaTypes. APPLICATION_OCTETSTREAM" );
273- result .put ("application/pdf" , "MediaTypes. APPLICATION_OCTETSTREAM" );
274- result .put ("application/x-protobuf" , "MediaTypes. APPLICATION_PROTOBUF" );
275- result .put ("application/x-www-form-urlencoded" , "MediaTypes. APPLICATION_FORM_URLENCODED" );
276- result .put ("application/xml" , "MediaTypes. APPLICATION_XML" );
277- result .put ("application/zip" , "MediaTypes. APPLICATION_ZIP" );
278-
279- result .put ("image/gif" , "MediaTypes. IMAGE_GIF" );
280- result .put ("image/x-icon" , "MediaTypes. IMAGE_ICO" );
281- result .put ("image/jpeg" , "MediaTypes. IMAGE_JPEG" );
282- result .put ("image/png" , "MediaTypes. IMAGE_PNG" );
283- result .put ("image/svg+xml" , "MediaTypes. IMAGE_SVG" );
284- result .put ("image/tiff" , "MediaTypes. IMAGE_TIFF" );
285-
286- result .put ("multipart/form-data" , "MediaTypes. FORM_DATA" );
287-
288- result .put ("text/css" , "MediaTypes. TEXT_CSS" );
289- result .put ("text/html" , "MediaTypes. TEXT_HTML" );
290- result .put ("text/plain" , "MediaTypes. TEXT_PLAIN_UTF8" );
282+ result .put ("*/*" , "ALL" );
283+
284+ result .put ("application/grpc" , "APPLICATION_GRPC" );
285+ result .put ("application/javascript" , "APPLICATION_JAVASCRIPT" );
286+ result .put ("application/json" , "APPLICATION_JSON" );
287+ result .put ("application/jwt" , "APPLICATION_JWT" );
288+ result .put ("application/octetstream" , "APPLICATION_OCTETSTREAM" );
289+ result .put ("application/pdf" , "APPLICATION_OCTETSTREAM" );
290+ result .put ("application/x-protobuf" , "APPLICATION_PROTOBUF" );
291+ result .put ("application/x-www-form-urlencoded" , "APPLICATION_FORM_URLENCODED" );
292+ result .put ("application/xml" , "APPLICATION_XML" );
293+ result .put ("application/zip" , "APPLICATION_ZIP" );
294+
295+ result .put ("image/gif" , "IMAGE_GIF" );
296+ result .put ("image/x-icon" , "IMAGE_ICO" );
297+ result .put ("image/jpeg" , "IMAGE_JPEG" );
298+ result .put ("image/png" , "IMAGE_PNG" );
299+ result .put ("image/svg+xml" , "IMAGE_SVG" );
300+ result .put ("image/tiff" , "IMAGE_TIFF" );
301+
302+ result .put ("multipart/form-data" , "FORM_DATA" );
303+
304+ result .put ("text/css" , "TEXT_CSS" );
305+ result .put ("text/html" , "TEXT_HTML" );
306+ result .put ("text/plain" , "TEXT_PLAIN_UTF8" );
291307
292308 return result ;
293309 }
0 commit comments