forked from loafle/openapi-generator-original
Map ByteArray to Text for haskell codegen (#6402)
* Support ByteArray in haskell codegen * update petstore example
This commit is contained in:
parent
8ec98a2ac4
commit
37f48239b0
@ -148,6 +148,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
|
|||||||
typeMapping.put("integer", "Int");
|
typeMapping.put("integer", "Int");
|
||||||
typeMapping.put("any", "Value");
|
typeMapping.put("any", "Value");
|
||||||
typeMapping.put("UUID", "Text");
|
typeMapping.put("UUID", "Text");
|
||||||
|
typeMapping.put("ByteArray", "Text");
|
||||||
|
|
||||||
importMapping.clear();
|
importMapping.clear();
|
||||||
importMapping.put("Map", "qualified Data.Map as Map");
|
importMapping.put("Map", "qualified Data.Map as Map");
|
||||||
|
@ -108,12 +108,47 @@ instance ToJSON User where
|
|||||||
removeFieldLabelPrefix :: Bool -> String -> Options
|
removeFieldLabelPrefix :: Bool -> String -> Options
|
||||||
removeFieldLabelPrefix forParsing prefix =
|
removeFieldLabelPrefix forParsing prefix =
|
||||||
defaultOptions
|
defaultOptions
|
||||||
{ fieldLabelModifier = fromMaybe (error ("did not find prefix " ++ prefix)) . stripPrefix prefix . replaceSpecialChars
|
{fieldLabelModifier = fromMaybe (error ("did not find prefix " ++ prefix)) . stripPrefix prefix . replaceSpecialChars}
|
||||||
}
|
|
||||||
where
|
where
|
||||||
replaceSpecialChars field = foldl (&) field (map mkCharReplacement specialChars)
|
replaceSpecialChars field = foldl (&) field (map mkCharReplacement specialChars)
|
||||||
specialChars = [("@", "'At"), ("<=", "'Less_Than_Or_Equal_To"), ("[", "'Left_Square_Bracket"), ("\", "'Back_Slash"), ("]", "'Right_Square_Bracket"), ("^", "'Caret"), ("_", "'Underscore"), ("`", "'Backtick"), ("!", "'Exclamation"), (""", "'Double_Quote"), ("#", "'Hash"), ("$", "'Dollar"), ("%", "'Percent"), ("&", "'Ampersand"), ("'", "'Quote"), ("(", "'Left_Parenthesis"), (")", "'Right_Parenthesis"), ("*", "'Star"), ("+", "'Plus"), (",", "'Comma"), ("-", "'Dash"), (".", "'Period"), ("/", "'Slash"), (":", "'Colon"), ("{", "'Left_Curly_Bracket"), ("|", "'Pipe"), ("<", "'LessThan"), ("!=", "'Not_Equal"), ("=", "'Equal"), ("}", "'Right_Curly_Bracket"), (">", "'GreaterThan"), ("~", "'Tilde"), ("?", "'Question_Mark"), (">=", "'Greater_Than_Or_Equal_To")]
|
specialChars =
|
||||||
|
[ ("@", "'At")
|
||||||
|
, ("\\", "'Back_Slash")
|
||||||
|
, ("<=", "'Less_Than_Or_Equal_To")
|
||||||
|
, ("\"", "'Double_Quote")
|
||||||
|
, ("[", "'Left_Square_Bracket")
|
||||||
|
, ("]", "'Right_Square_Bracket")
|
||||||
|
, ("^", "'Caret")
|
||||||
|
, ("_", "'Underscore")
|
||||||
|
, ("`", "'Backtick")
|
||||||
|
, ("!", "'Exclamation")
|
||||||
|
, ("#", "'Hash")
|
||||||
|
, ("$", "'Dollar")
|
||||||
|
, ("%", "'Percent")
|
||||||
|
, ("&", "'Ampersand")
|
||||||
|
, ("'", "'Quote")
|
||||||
|
, ("(", "'Left_Parenthesis")
|
||||||
|
, (")", "'Right_Parenthesis")
|
||||||
|
, ("*", "'Star")
|
||||||
|
, ("+", "'Plus")
|
||||||
|
, (",", "'Comma")
|
||||||
|
, ("-", "'Dash")
|
||||||
|
, (".", "'Period")
|
||||||
|
, ("/", "'Slash")
|
||||||
|
, (":", "'Colon")
|
||||||
|
, ("{", "'Left_Curly_Bracket")
|
||||||
|
, ("|", "'Pipe")
|
||||||
|
, ("<", "'LessThan")
|
||||||
|
, ("!=", "'Not_Equal")
|
||||||
|
, ("=", "'Equal")
|
||||||
|
, ("}", "'Right_Curly_Bracket")
|
||||||
|
, (">", "'GreaterThan")
|
||||||
|
, ("~", "'Tilde")
|
||||||
|
, ("?", "'Question_Mark")
|
||||||
|
, (">=", "'Greater_Than_Or_Equal_To")
|
||||||
|
]
|
||||||
mkCharReplacement (replaceStr, searchStr) = T.unpack . replacer (T.pack searchStr) (T.pack replaceStr) . T.pack
|
mkCharReplacement (replaceStr, searchStr) = T.unpack . replacer (T.pack searchStr) (T.pack replaceStr) . T.pack
|
||||||
replacer = if forParsing then flip T.replace else T.replace
|
replacer =
|
||||||
|
if forParsing
|
||||||
|
then flip T.replace
|
||||||
|
else T.replace
|
||||||
|
Loading…
x
Reference in New Issue
Block a user