package Ġcom . tencent . devops . tur bo . sdk Ċ Ċ import Ġcom . fasterxml . jackson . core . type . Type Reference Ċ import Ġcom . tencent . devops . common . api . exception . Tur bo Exception Ċ import Ġcom . tencent . devops . common . api . exception . code . TUR BO _ TH IRD PAR TY _ SYSTEM _ FAIL Ċ import Ġcom . tencent . devops . common . api . util . Ok http Utils Ċ import Ġcom . tencent . devops . common . util . Json Util Ċ import Ġcom . tencent . devops . tur bo . config . T BS Properties Ċ import Ġcom . tencent . devops . tur bo . dto . Dist cc RequestBody Ċ import Ġcom . tencent . devops . tur bo . dto . Dist cc Response Ċ import Ġcom . tencent . devops . tur bo . dto . TB ST ur bo Stat Dto Ċ import Ġcom . tencent . devops . tur bo . dto . White List Dto Ċ import Ġcom . tencent . devops . web . util . Spring Context Holder Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . http . HttpMethod Ċ Ċ @ Suppress (" Max Line Length ") Ċ object ĠTB SS dk Api Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( TB SS dk Api :: class . java ) ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Get ( path : ĠString , Ġheaders : ĠMap < String , ĠString >): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRequest . Builder (). url ( path ). headers ( Headers . of ( headers )). get (). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Post ( path : ĠString , Ġrequest Body : ĠRequest Body , Ġheaders : ĠMap < String , ĠString >): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRequest . Builder (). url ( path ). headers ( Headers . of ( headers )). post ( request Body ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Put ( path : ĠString , Ġrequest Body : ĠRequest Body , Ġheaders : ĠMap < String , ĠString >): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRequest . Builder (). url ( path ). headers ( Headers . of ( headers )). put ( request Body ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Delete ( path : ĠString , Ġheaders : ĠMap < String , ĠString >): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRequest . Builder (). url ( path ). headers ( Headers . of ( headers )). delete (). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŁ¥è¯¢ ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ ç»Łè®¡ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Tur bo Stat Info ( engine Code : ĠString , ĠtaskId : ĠString ): ĠList < TB ST ur bo Stat Dto > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Str Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt bs Common Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġengine Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource Name Ġ= Ġ" stats ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Param Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" task _ id " Ġto ĠtaskId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" no Ġrecord Ġdetail Ġfound , Ġengine Ġcode : Ġ$ engine Code ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠDist cc Response < List < TB ST ur bo Stat Dto >> Ġ= ĠJson Util . to ( response Str , Ġobject Ġ: ĠType Reference < Dist cc Response < List < TB ST ur bo Stat Dto >> >() Ġ{}) ĊĠĠĠĠĠĠĠ Ġif Ġ( response . code Ġ!= Ġ 0 Ġ|| Ġ! response . result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" response Ġnot Ġsuccess !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTur bo Exception ( errorCode Ġ= ĠT UR BO _ TH IRD PAR TY _ SYSTEM _ FAIL , ĠerrorMessage Ġ= Ġ" fail Ġto Ġinvoke Ġrequest ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŁ¥è¯¢ ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Tur bo Record Info ( engine Code : ĠString , Ġquery Param : ĠMap < String , ĠAny >): ĠList < Map < String , ĠAny ? >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Str Ġ= Ġt bs Common Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġengine Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Name Ġ= Ġ" task ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Param Ġ= Ġquery Param ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠDist cc Response < List < Map < String , ĠAny ? >>> Ġ= ĠJson Util . to ( response Str , Ġobject Ġ: ĠType Reference < Dist cc Response < List < Map < String , ĠAny ? >>>> () Ġ{}) ĊĠĠĠĠĠĠĠ Ġif Ġ( response . code Ġ!= Ġ 0 Ġ|| Ġ! response . result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" response Ġnot Ġsuccess !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTur bo Exception ( errorCode Ġ= ĠT UR BO _ TH IRD PAR TY _ SYSTEM _ FAIL , ĠerrorMessage Ġ= Ġ" fail Ġto Ġinvoke Ġrequest ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæı Ĵ åħ¥ æĽ´æĸ° é¡¹çĽ® ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Tur bo Project Info ( ĊĠĠĠĠĠĠĠ Ġengine Code : ĠString , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġjson Body : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġt bs Common Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġengine Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Name Ġ= Ġ" project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Param Ġ= ĠlistOf ( projectId ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Body Ġ= Ġjson Body , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" PUT " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæı Ĵ åħ¥ æĽ´æĸ° çĻ½ åĲį åįķ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupsert Tur bo White List ( ĊĠĠĠĠĠĠĠ Ġengine Code : ĠString , ĊĠĠĠĠĠĠĠ Ġwhite List Info : ĠList < White List Dto >, ĊĠĠĠĠĠĠĠ Ġuser : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġt bs Common Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġengine Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Name Ġ= Ġ" whitelist ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Body Ġ= ĠJson Util . toJson ( Dist cc RequestBody ( user , Ġwhite List Info )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" PUT " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġt bs Common Request ( ĊĠĠĠĠĠĠĠ Ġengine Code : ĠString , ĊĠĠĠĠĠĠĠ Ġresource Name : ĠString , ĊĠĠĠĠĠĠĠ Ġpath Param : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠ Ġquery Param : ĠMap < String , ĠAny > Ġ= Ġmutable Map Of (), ĊĠĠĠĠĠĠĠ Ġjson Body : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġheaders : ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of (), ĊĠĠĠĠĠĠĠ Ġmethod : ĠString Ġ= Ġ" GET " ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse (" application / json ; Ġcharset = utf - 8 "), Ġjson Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠSpring Context Holder . getBean < T BS Properties >() ĊĠĠĠĠĠĠĠ Ġval Ġcustom Path Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . url Template !!. replace ("{ engine }", Ġengine Code ). replace ("{ resource _ type }", Ġresource Name ) ĊĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= Ġ"${ properties . rootPath }/ $ custom Path " ĊĠĠĠĠĠĠĠ Ġif Ġ(! path Param . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Param . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl . plus ("/ $ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! query Param . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl . plus ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Param . entries . fold (" ?") Ġ{ Ġacc , Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc . plus ("${ entry . key } =${ entry . value }& ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl . trim End ('& ') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġwhen Ġ( method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . GET . name Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Get ( url , Ġheaders ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . POST . name Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Post ( url , Ġrequest Body , Ġheaders ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . PUT . name Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Put ( url , Ġrequest Body , Ġheaders ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . DELETE . name Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Delete ( url , Ġheaders ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTur bo Exception ( errorCode Ġ= ĠT UR BO _ TH IRD PAR TY _ SYSTEM _ FAIL , ĠerrorMessage Ġ= Ġ" http Ġmethod Ġnot Ġcorrect !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠOk http Utils . do Http ( request ). use Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresponse . body () !!. string () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fail Ġto Ġexecute Ġ($ url ) Ġtask ($ json Body ) Ġbecause Ġof Ġ${ response . message ()} Ġwith " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġresponse : Ġ$ response Body " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTur bo Exception ( errorCode Ġ= ĠT UR BO _ TH IRD PAR TY _ SYSTEM _ FAIL , ĠerrorMessage Ġ= Ġ" fail Ġto Ġinvoke Ġrequest ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse Body ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ