/* Ċ Ġ* ĠðŁ ¥ Ģ Ġh ana : ĠAPI Ġto Ġproxy Ġdifferent ĠAPIs Ġlike ĠGitHub ĠSp onsors , Ġsource Ġcode Ġfor Ġapi . flo of y . dev Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 - 2 0 2 2 ĠNo el Ġ< cut ie @ flo of y . dev > Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġg ay . flo of . h ana . core . discord . commands Ċ Ċ import Ġdev . k ord . common . Color Ċ import Ġg ay . flo of . h ana . core . database . async Transaction Ċ import Ġg ay . flo of . h ana . core . database . tables . ApiKey Entity Ċ import Ġg ay . flo of . h ana . core . database . tables . Api Keys Table Ċ import Ġnet . perfect dream s . discord inter akt ions . common . builder . message . embed Ċ import Ġnet . perfect dream s . discord inter akt ions . common . commands . Application Command Context Ċ import Ġnet . perfect dream s . discord inter akt ions . common . commands . Slash Command Executor Ċ import Ġnet . perfect dream s . discord inter akt ions . common . commands . Slash Command Executor Declaration Ċ import Ġnet . perfect dream s . discord inter akt ions . common . commands . options . Application Command Options Ċ import Ġnet . perfect dream s . discord inter akt ions . common . commands . options . Slash Command Arguments Ċ import Ġorg . jetbrains . ex posed . sql . update Ċ Ċ class ĠEdit ApiKey Command : ĠSl ash Command Executor () Ġ{ ĊĠĠĠ Ġcompanion Ġobject : ĠSl ash Command Executor Declaration ( Edit ApiKey Command :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠOptions : ĠApplication Command Options () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġoptional String (" description ", Ġ" Ed its Ġyour ĠAPI Ġkey 's Ġdescription "). register () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġim Enabled Ġ= Ġoptional Boolean (" im ", Ġ" Enable s Ġor Ġdisables Ġthe Ġalpha Ġimage Ġmanipulation Ġendpoints . "). register () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn sf w Enabled Ġ= Ġoptional Boolean (" ns fw ", Ġ" Enable s Ġor Ġdisables Ġthe ĠNS FW Ġendpoints . "). register () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġoptions : ĠApplication Command Options Ġ= ĠOptions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute ( context : ĠApplication Command Context , Ġargs : ĠSl ash Command Arguments ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . defer Channel Message Ep hemer ally () ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġthe Ġuser Ġhas Ġan ĠAPI Ġkey Ġregistered . ĊĠĠĠĠĠĠĠ Ġval Ġfound Ġ= Ġasync Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key Entity . findById ( context . sender . id . value . to Long ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( found Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . send Ep hemeral Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ": think ing : Ġ** | ĠYou Ġdon 't Ġhave Ġany ĠAPI Ġkeys Ġregistered . ĠUse Ġthe Ġ`/ create ` Ġslash Ġcommand Ġto Ġregister Ġone ! ** " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġget Ġthe Ġarguments ĊĠĠĠĠĠĠĠ Ġval Ġdesc Ġ= Ġargs [ Options . description ] ĊĠĠĠĠĠĠĠ Ġval Ġn sf w Enabled Ġ= Ġargs [ Options . ns fw Enabled ] ĊĠĠĠĠĠĠĠ Ġval Ġim Enabled Ġ= Ġargs [ Options . im Enabled ] ĊĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe Ġdata Ġaccordingly ĊĠĠĠĠĠĠĠ Ġasync Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Keys Table . update ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Keys Table . id Ġeq Ġcontext . sender . id . value . to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( desc Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ description ] Ġ= Ġdesc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperms Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Per ms Ġ= Ġfound !!. permissions ?. split ("| ") Ġ?: ĠlistOf () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ns fw Enabled Ġ!= Ġnull Ġ&& Ġn sf w Enabled Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! old Per ms . contains (" ns fw ")) Ġperms . add (" ns fw ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( im Enabled Ġ!= Ġnull Ġ&& Ġim Enabled Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! old Per ms . contains (" im ")) Ġperms . add (" im ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( perms . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ permissions ] Ġ= Ġperms . join ToString ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠnewData Ġ= Ġasync Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key Entity . findById ( context . sender . id . value . to Long ()) !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontext . send Ep hemeral Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (": thumb sup : Ġ** | ĠSuccessfully Ġedited Ġapp Ġ\" ${ found !!. name }\" ! ** ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor ( 0 x 6 AA F DC ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . description Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" âĢ¢ Ġ** Application ĠName **: Ġ${ new Data . name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" âĢ¢ Ġ** Application ĠDescription **: Ġ${ new Data . description }") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn sf w Ġ= ĠnewData . permissions ?. split ("| ") ?. contains (" ns fw ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġim Ġ= ĠnewData . permissions ?. split ("| ") ?. contains (" im ") Ġ?: Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" âĢ¢ Ġ** NS FW ĠEnabled **: Ġ${ if Ġ( ns fw ) Ġ" Yes " Ġelse Ġ" No "} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" âĢ¢ Ġ** ( Alpha ) ĠImage ĠMan ip ulation ĠEnabled **: Ġ${ if Ġ( im ) Ġ" Yes " Ġelse Ġ" No "} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ