package Ġorg . jetbrains . plugins . http x . code Insight Ċ Ċ import Ġcom . fasterxml . jackson . module . kotlin . readValue Ċ import Ġcom . intellij . code Insight . int ention . Base ElementAt Caret Int ention Action Ċ import Ġcom . intellij . httpClient . http . request . HttpRequest Variable Subst it utor Ċ import Ġcom . intellij . httpClient . http . request . psi . HttpRequest Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . intellij . util . query Parameters Ċ import Ġorg . jetbrains . plugins . http x . json . Json Utils Ċ import Ġorg . jetbrains . plugins . http x . rest Client . execution . aliyun . Ali yun Ċ import Ġorg . jetbrains . plugins . http x . rest Client . execution . aliyun . Ali yun Request Ċ import Ġorg . jetbrains . plugins . http x . rest Client . execution . aliyun . Products Ċ import Ġorg . jetbrains . plugins . http x . rest Client . execution . common . getRequest URL Ċ import Ġjava . awt . Toolkit Ċ import Ġjava . awt . datat rans fer . String Selection Ċ Ċ class ĠAli yun Request ConvertTo Cli Int ention Ġ: ĠBase ElementAt Caret Int ention Action () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Family Name (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Convert Ġto Ġali yun Ġcli Ġand Ġcopy Ġto Ġclipboard " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetText (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . family Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart In Write Action (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Available ( project : ĠProject , Ġeditor : ĠEditor ?, Ġelement : ĠPsi Element ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠPsi Tree Util . getParent OfType ( element , ĠHttpRequest :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn ĠhttpRequest Ġ!= Ġnull Ġ&& Ġ" ALI Y UN " Ġ== ĠhttpRequest . http Method ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( project : ĠProject , Ġeditor : ĠEditor ?, Ġelement : ĠPsi Element ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠPsi Tree Util . getParent OfType ( element , ĠHttpRequest :: class . java ) !! ĊĠĠĠĠĠĠĠ Ġval Ġsubstit utor Ġ= ĠHttpRequest Variable Subst it utor . getDefault ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= ĠhttpRequest . header Field List . associate Ġ{ Ġit . name Ġto Ġit . getValue ( subst it utor ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Type Ġ= ĠhttpRequest . http Method ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġget Request URL ( httpRequest , Ġsubstit utor , Ġ" https ") ĊĠĠĠĠĠĠĠ Ġval Ġali yun Request Ġ= ĠAli yun Request ( url , Ġrequest Type , ĠhttpRequest . request Body ?. text , Ġheaders ) ĊĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= ĠToolkit . getDefault Toolkit (). system Clipboard ĊĠĠĠĠĠĠĠ Ġval ĠtestData Ġ= ĠString Selection ( convertTo Ali yun Cli ( aliyun Request )) ĊĠĠĠĠĠĠĠ Ġclipboard . set Contents ( testData , ĠtestData ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠconvertTo Ali yun Cli ( aliyun Request : ĠAli yun Request ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġbuilder . append (" aliyun Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġali yun Request . uri . host ĊĠĠĠĠĠĠĠ Ġval ĠqueryParams Ġ= Ġali yun Request . uri . query Parameters ĊĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= ĠProducts . instance (). find Product By Host ( host ) ĊĠĠĠĠĠĠĠ Ġif Ġ( product Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( product . code . toLowerCase ()). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( queryParams [" Action "] Ġ?: Ġ" Unknown Action "). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġali yun Request . headers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( headers . containsKey (" X - Region - Id ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("-- region Ġ"). append ( headers [" X - Region - Id "]). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( global Region Ġin ĠAli yun . GLOBAL _ REGION S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( host . contains ( global Region )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("-- region Ġ"). append ( global Region ). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Bytes Ġ= Ġali yun Request . body Bytes () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( body Bytes . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠJson Utils . object Mapper . readValue < Map < String , ĠAny >>( body Bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġparams ) Ġ{ Ġ// Ġsub _ params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠList <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . forEach Indexed Ġ{ Ġindex , Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġis ĠMap < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparam Name Ġ= Ġ"${ key }.${ index Ġ+ Ġ 1 }.${ it . key }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("-- "). append ( param Name ). append (' Ġ'). append ( convert Value To Cli ( it . value . toString ())). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("-- "). append ( key ). append (' Ġ'). append ( convert Value To Cli ( value . toString ())). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString (). trim () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconvert Value To Cli ( value : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value . matches ("[ 1 - 9 ]\\ d { 0 , 8 }". to Regex ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . contains ('\ '' )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" ${ value }\ "" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"' ${ value } '" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }