package Ġau . com . di us . p act . consumer . groovy Ċ Ċ import Ġau . com . di us . p act . core . model . generators . Generators Ċ import Ġau . com . di us . p act . core . model . matching rules . Category Ċ import Ġau . com . di us . p act . core . model . matching rules . Matching Rules Ċ import Ġau . com . di us . p act . core . support . property Ċ import Ġgro ovy . json . Json Builder Ċ import Ġmu . K Logging Ċ Ċ open Ġclass ĠBase Builder Ġ: ĠMatch ers () Ġ{ ĊĠ Ġprotected Ġfun Ġsetup Body ( request Data : ĠMap < String , ĠAny >, Ġrequest : ĠMutable Map < String , ĠAny >) Ġ{ ĊĠĠĠ Ġif Ġ( request Data . containsKey ( BODY )) Ġ{ ĊĠĠĠĠĠ Ġval Ġbody Ġ= Ġrequest Data [ BODY ] ĊĠĠĠĠĠ Ġif Ġ( body Ġ!= Ġnull Ġ&& Ġbody :: class . qualified Name Ġ== Ġ" au . com . di us . p act . consumer . groovy . P act Body Builder ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest [ BODY ] Ġ= Ġbody :: class . property ( BODY )?. get ( body ) Ġas ĠAny ĊĠĠĠĠĠĠĠ Ġval Ġmatch ers Ġ= Ġrequest [" matchers "] Ġas ĠMatch ing Rules ĊĠĠĠĠĠĠĠ Ġmatch ers . add Category ( body :: class . property (" matchers ") ?. get ( body ) Ġas ĠCategory ) ĊĠĠĠĠĠĠĠ Ġval Ġgenerators Ġ= Ġrequest [" generators "] Ġas ĠGener ators ĊĠĠĠĠĠĠĠ Ġgenerators . add Generators ( body :: class . property (" generators ") ?. get ( body ) Ġas ĠGener ators ) ĊĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( body Ġ!= Ġnull Ġ&& Ġbody Ġ! is ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpretty Print Ġ= Ġrequest Data [" pretty Print "] Ġas ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġif Ġ( pretty Print Ġ== Ġnull Ġ&& Ġ! compact Mime Types ( request Data ) Ġ|| Ġpretty Print Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġrequest [ BODY ] Ġ= ĠJson Builder ( body ). to Pretty String () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġrequest [ BODY ] Ġ= ĠJson Builder ( body ). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ġ{ ĊĠĠĠ Ġconst Ġval ĠCONTENT _ TYPE Ġ= Ġ" Content - Type " ĊĠĠĠ Ġconst Ġval ĠJSON Ġ= Ġ" application / json " ĊĠĠĠ Ġconst Ġval ĠB ODY Ġ= Ġ" body " ĊĠĠĠ Ġconst Ġval ĠLOCAL HOST Ġ= Ġ" localhost " ĊĠĠĠ Ġconst Ġval ĠHEADER Ġ= Ġ" header " ĊĊĠĠĠ Ġval ĠCOMP ACT _ MIME _ TYPES Ġ= ĠlistOf (" application / x - thrift + json ") ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcompact Mime Types ( req Res Data : ĠMap < String , ĠAny >): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġif Ġ( req Res Data . containsKey (" headers ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġreq Res Data [" headers "] Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ Ġheaders . entries . find Ġ{ Ġit . key Ġ== ĠCONTENT _ TYPE Ġ} ?. value Ġin ĠCOMP ACT _ MIME _ TYPES ĊĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġis Compact MimeType ( mime type : ĠString ) Ġ= Ġmime type Ġin ĠCOMP ACT _ MIME _ TYPES ĊĠ Ġ} Ċ } Ċ