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("any", "Value");
|
||||
typeMapping.put("UUID", "Text");
|
||||
typeMapping.put("ByteArray", "Text");
|
||||
|
||||
importMapping.clear();
|
||||
importMapping.put("Map", "qualified Data.Map as Map");
|
||||
|
@ -108,12 +108,47 @@ instance ToJSON User where
|
||||
removeFieldLabelPrefix :: Bool -> String -> Options
|
||||
removeFieldLabelPrefix forParsing prefix =
|
||||
defaultOptions
|
||||
{ fieldLabelModifier = fromMaybe (error ("did not find prefix " ++ prefix)) . stripPrefix prefix . replaceSpecialChars
|
||||
}
|
||||
{fieldLabelModifier = fromMaybe (error ("did not find prefix " ++ prefix)) . stripPrefix prefix . replaceSpecialChars}
|
||||
where
|
||||
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
|
||||
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