package Ġnet . de an . j raw . references Ċ Ċ import Ġcom . squareup . mos hi . Json DataException Ċ import Ġcom . squareup . mos hi . Types Ċ import Ġnet . de an . j raw .* Ċ import Ġnet . de an . j raw . models .* Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġnet . de an . j raw . models . internal . Generic JsonResponse Ċ import Ġnet . de an . j raw . models . internal . Submission Data Ċ import Ġnet . de an . j raw . models . internal . Sub reddit Mod erator List Ċ import Ġnet . de an . j raw . pagination . B are bones Paginator Ċ import Ġnet . de an . j raw . pagination . Default Paginator Ċ import Ġnet . de an . j raw . pagination . Search Paginator Ċ import Ġnet . de an . j raw . tree . Root Comment Node Ċ import Ġnet . de an . j raw . websocket . read Submission Id From WebSocket Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . RequestBody . Companion . to RequestBody Ċ Ċ /** Ċ Ġ* ĠAllows Ġthe Ġuser Ġto Ġperform ĠAPI Ġactions Ġagainst Ġa Ġsub reddit Ċ Ġ* Ċ Ġ* Ġ@ constructor ĠCreates Ġa Ġnew ĠSub reddit Reference Ġfor Ġthe Ġgiven Ġsub reddit . ĠDo Ġnot Ġinclude Ġthe Ġ"/ r /" Ġprefix Ġ( e . g . Ġ" p ics ") Ċ Ġ* Ċ Ġ* Ġ@ property Ġsub reddit ĠThe Ġname Ġof Ġthe Ġsub reddit Ġwithout Ġthe Ġ"/ r /" Ġprefix . Ċ Ġ*/ Ċ class ĠSub reddit Reference Ġinternal Ġconstructor ( reddit : ĠRed dit Client , Ġval Ġsub reddit : ĠString ) Ġ: ĠAbstract Reference ( reddit ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġ[ Sub reddit ] Ġinstance Ġfor Ġthis Ġreference . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠApiException Ġif Ġprivate . ĊĠĠĠĠ Ġ* Ġ@ throws ĠNoSuch Sub reddit Exception Ġif Ġit Ġdoesn 't Ġexist Ġin Ġthe Ġfirst Ġplace ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ SUB RE DD IT _ AB OUT ) ĊĠĠĠ Ġfun Ġabout (): ĠSub reddit Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġre dd it . request Ġ{ Ġit . endpoint ( Endpoint . GET _ SUB RE DD IT _ AB OUT , Ġsub reddit ) Ġ}. deserialize En velop ed () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠJson DataException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠQuery ing Ġsub redd its Ġthat Ġdon 't Ġexist Ġdoesn 't Ġ 4 0 4 Ġlike Ġa Ġr ational ĠAPI , Ġbut Ġ 2 0 0 's Ġwith Ġan Ġempty ĠListing Ġas Ġits ĊĠĠĠĠĠĠĠ Ġ// Ġbody . ĠDon 't Ġask Ġme Ġwhy . ĠTrying Ġto Ġdeserialize Ġthis Ġas Ġa ĠSub reddit Ġcauses Ġa ĠJson DataException . ĊĠĠĠĠĠĠĠ Ġthrow ĠNoSuch Sub reddit Exception ( sub reddit , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġ[ Default Paginator . Builder ] Ġto Ġiterate Ġover Ġthis Ġsub reddit 's Ġposts . ĠNot Ġa Ġblocking Ġcall . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( ĊĠĠĠĠĠĠĠ ĠEndpoint . GET _ HOT , ĠEndpoint . GET _ NEW , ĠEndpoint . GET _ R ISING , ĠEndpoint . GET _ SORT , ĠEndpoint . GET _ BEST , ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠMethod Type . NON _ BLOCK ING _ CALL ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġposts () Ġ= ĠDefault Paginator . Builder . create < Submission , ĠSub reddit Sort >( reddit , Ġ"/ r /$ sub reddit ", Ġsorting Also In Path Ġ= Ġtrue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa ĠB are bones Paginator . Builder Ġthat Ġwill Ġiterate Ġover Ġthe Ġlatest Ġcomments Ġfrom Ġthis Ġsub reddit Ġwhen Ġbuilt . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠRed dit Client . latest Comments ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcomments (): ĠB are bones Paginator . Builder < Comment > Ġ= Ġre dd it . latest Comments ( sub reddit ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa ĠB are bones Paginator . Builder Ġthat Ġwill Ġiterate Ġover Ġthe Ġg il ded Ġcontributions Ġin Ġthis Ġsub reddit Ġwhen Ġbuilt . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠRed dit Client . gil ded Cont ributions ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġg il ded (): ĠB are bones Paginator . Builder < Public Contribution <* >> Ġ= Ġre dd it . gil ded Cont ributions ( sub reddit ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa ĠSearch Paginator . Builder Ġto Ġsearch Ġfor Ġsubmissions Ġin Ġthis Ġsub reddit . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠSearch Paginator . in Sub redd its ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsearch (): ĠSearch Paginator . Builder Ġ= ĠSearch Paginator . in Sub redd its ( reddit , Ġsub reddit ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġrandom Ġsubmission Ġfrom Ġthis Ġsub reddit . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠRed dit Client . random Sub reddit ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ RANDOM ) ĊĠĠĠ Ġfun Ġrandom Submission (): ĠRoot Comment Node Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠSubmission Data Ġ= Ġre dd it . request Ġ{ Ġit . endpoint ( Endpoint . GET _ RANDOM , Ġsub reddit ) Ġ}. deserialize () ĊĠĠĠĠĠĠĠ Ġreturn ĠRoot Comment Node ( data . submissions [ 0 ], Ġdata . comments , Ġsettings Ġ= Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubmit s Ġcontent Ġto Ġthis Ġsub reddit ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġkind ĠIs Ġthis Ġa Ġself Ġpost Ġ( text ) Ġor Ġa Ġlink Ġpost ? ĊĠĠĠĠ Ġ* Ġ@ param Ġcontent ĠIf Ġ` kind ` Ġis Ġ[ Submission Kind . SELF ], Ġthe ĠMarkdown - formatted Ġbody , Ġelse Ġa ĠURL . ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Rep lies ĠIf Ġdirect Ġreplies Ġto Ġthe Ġsubmission Ġshould Ġbe Ġsent Ġto Ġthe Ġuser 's Ġin box ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" Deprecated Callable Add Replace With ") ĊĠĠĠ Ġ@ Deprecated (" Use Ġsubmit () Ġwith ĠSubmission Kind 2 Ġinstead ") ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . POST _ SUBMIT ) ĊĠĠĠ Ġfun Ġsubmit ( kind : ĠSubmission Kind , Ġtitle : ĠString , Ġcontent : ĠString , Ġsend Rep lies : ĠBoolean ): ĠSubmission Reference Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġwhen Ġ( kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSubmission Kind . LINK Ġ-> ĠSubmission Kind 2 . Link ( url Ġ= Ġcontent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSubmission Kind . SELF Ġ-> ĠSubmission Kind 2 . Self Text ( text Ġ= Ġcontent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Rep lies Ġ= Ġsend Rep lies , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl air Id Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl air Text Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Spo iler Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis N sf w Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubmit s Ġcontent Ġto Ġthis Ġsub reddit ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsend Rep lies ĠIf Ġdirect Ġreplies Ġto Ġthe Ġsubmission Ġshould Ġbe Ġsent Ġto Ġthe Ġuser 's Ġin box ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . POST _ SUBMIT ) ĊĠĠĠ Ġsuspend Ġfun Ġsubmit ( ĊĠĠĠĠĠĠĠ Ġkind : ĠSubmission Kind 2 , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġfl air Id : ĠString ?, ĊĠĠĠĠĠĠĠ Ġfl air Text : ĠString ?, ĊĠĠĠĠĠĠĠ Ġsend Rep lies : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġis N sf w : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġis Spo iler : ĠBoolean , ĊĠĠĠ Ġ): ĠSubmission Reference Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcommon Request Ġ= ĠSubmit Post Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi _ type Ġ= Ġ" json ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ" json ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres ub mit Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend replies Ġ= Ġsend Rep lies , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspo iler Ġ= Ġis Spo iler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn sf w Ġ= Ġis N sf w , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsr Ġ= Ġsub reddit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfl air _ id Ġ= Ġfl air Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfl air _ text Ġ= Ġfl air Text , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġwhen Ġ( kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Kind 2 . Link Ġ-> Ġcommon Request . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġ" link ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġkind . url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Kind 2 . Self Text Ġ-> Ġcommon Request . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġ" self ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġkind . text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Kind 2 . Cross Post Ġ-> Ġcommon Request . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġ" cros sp ost ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcros sp ost _ fullname Ġ= Ġkind . submission FullName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Kind 2 . Media Ġ-> Ġwhen Ġ( val Ġsingle Ġ= Ġkind . items . single OrNull ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġcommon Request . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= Ġkind . items . map Ġ{ ĠSubmit Post Request . Gallery Item ( media _ id Ġ= Ġit . asset Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcommon Request . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġsingle . media Type . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġkind . items . single (). url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Json Ġ= ĠJ raw Utils . adapter < Submit Post Request >(). toJson ( request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request . items Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . endpoint ( Endpoint . POST _ SUBMIT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . post ( J raw Utils . adapter < Map < String , ĠAny >> (). fromJson ( request Json ) !!. map Values Ġ{ Ġ( key , Ġvalue ) Ġ-> Ġvalue . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ("/ api / submit _ gallery _ post . json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . post ( request Json . to RequestBody (" application / json ". to MediaType ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. deserialize < Generic JsonResponse >() ĊĊĠĠĠĠĠĠĠ Ġval Ġsubmission Id Ġ= Ġres . json ?. data ?. get (" id ") Ġas ? ĠString ĊĠĠĠĠĠĠĠ Ġif Ġ( submission Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIDs Ġare Ġprefixed Ġwith Ġ" t 3 _" Ġfor Ġgallery Ġposts . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSubmission Reference ( reddit , Ġsubmission Id . remove Prefix ( Kind Constants . SUB MISSION Ġ+ Ġ"_ ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwebsocket Url Ġ= Ġres . json ?. data ?. get (" websocket _ url ") Ġas ? ĠString ĊĠĠĠĠĠĠĠ Ġif Ġ( websocket Url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSubmission Reference ( reddit , Ġid Ġ= Ġre dd it . read Submission Id From WebSocket ( websocket Url )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Submission ĠID Ġnot Ġfound ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġtext Ġmeant Ġto Ġbe Ġdisplayed Ġon Ġthe Ġsubmission Ġform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ SUBMIT _ TEXT ) ĊĠĠĠ Ġfun Ġsubmit Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . endpoint ( Endpoint . GET _ SUBMIT _ TEXT , Ġsub reddit ) ĊĠĠĠĠĠĠĠ Ġ}. deserialize < Map < String , ĠString >> (). getOrElse (" submit _ text ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unexpected Ġresponse : Ġno Ġ` submit _ text ` Ġkey ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠAlias Ġto Ġ` set Sub scribed ( true )` Ġ*/ ĊĠĠĠ Ġfun Ġsubscribe () Ġ= Ġset Sub scribed ( true ) ĊĊĠĠĠ Ġ/** ĠAlias Ġto Ġ` set Sub scribed ( false )` Ġ*/ ĊĠĠĠ Ġfun Ġunsubscribe () Ġ= Ġset Sub scribed ( false ) ĊĊĠĠĠ Ġ/** ĠSub scri bes Ġor Ġun sub scri bes Ġto Ġthis Ġsub reddit . ĠRequires Ġan Ġauthenticated Ġuser . Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . POST _ SUB SCR IBE ) ĊĠĠĠ Ġfun Ġset Sub scribed ( subscribe : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sr _ name " Ġto Ġsub reddit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" action " Ġto Ġif Ġ( subscribe ) Ġ" sub " Ġelse Ġ" un sub " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( subscribe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ" prevent Ġautomatically Ġsub scri bing Ġthe Ġuser Ġto Ġthe Ġcurrent Ġset Ġof Ġdefaults Ġwhen Ġthey Ġtake Ġtheir Ġfirst ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsubscription Ġaction " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody [" skip _ initial _ defaults "] Ġ= Ġ" true " ĊĊĠĠĠĠĠĠĠ Ġ// ĠResponse Ġis Ġan Ġempty ĠJSON Ġobject ĊĠĠĠĠĠĠĠ Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . endpoint ( Endpoint . POST _ SUB SCR IBE ). post ( body ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Favorite ( favorite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sr _ name " Ġto Ġsub reddit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" make _ favorite " Ġto Ġfavorite . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ("/ api / favorite "). post ( body ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLists Ġall Ġpossible Ġfl airs Ġfor Ġusers . ĠRequires Ġan Ġauthenticated Ġuser . ĠWill Ġreturn Ġnothing Ġif Ġfl air Ġis Ġdisabled Ġon ĊĠĠĠĠ Ġ* Ġthe Ġsub reddit , Ġthe Ġuser Ġcannot Ġset Ġtheir Ġown Ġfl air , Ġor Ġthey Ġare Ġnot Ġa Ġmod erator Ġthat Ġcan Ġset Ġfl air . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠFl air Reference . update To Template ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ USER _ FL AIR ) ĊĠĠĠ Ġfun Ġuser Fl air Options (): ĠList < Fl air > Ġ= Ġrequest Fl air (" user ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLists Ġall Ġpossible Ġfl airs Ġfor Ġsubmissions Ġto Ġthis Ġsub reddit . ĠRequires Ġan Ġauthenticated Ġuser . ĠWill Ġreturn Ġnothing ĊĠĠĠĠ Ġ* Ġif Ġthe Ġuser Ġcannot Ġset Ġtheir Ġown Ġlink Ġfl air Ġand Ġthey Ġare Ġnot Ġa Ġmod erator Ġthat Ġcan Ġset Ġfl air . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠFl air Reference . update To Template ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ LINK _ FL AIR ) ĊĠĠĠ Ġfun Ġlink Fl air Options (): ĠList < Fl air > Ġ= Ġrequest Fl air (" link ") ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Fl air ( type : ĠString ): ĠList < Fl air > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ("/ r /${ J raw Utils . url Encode ( sub reddit ) }/ api /${ type }_ fl air ") ĊĠĠĠĠĠĠĠ Ġ}. deserialize With ( J raw Utils . mos hi . adapter ( listOf Fl airs Type )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa ĠUser Fl air Reference Ġfor Ġa Ġuser . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠE quivalent Ġto Ġ` reddit Client . user ( name ). fl air On ( sub reddit )`. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġother User Fl air ( name : ĠString ) Ġ= Ġre dd it . user ( name ). fl air On ( sub reddit ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa ĠUser Fl air Reference Ġfor Ġthe Ġauthenticated Ġuser . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠE quivalent Ġto Ġ` reddit Client . me (). fl air On ( sub reddit )`. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġself User Fl air () Ġ= Ġre dd it . me (). fl air On ( sub reddit ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa ĠSubmission Fl air Reference Ġfor Ġthe Ġgiven Ġsubmission Ġid Ġ( without Ġthe Ġkind Ġprefix ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsubmission Fl air ( id : ĠString ) Ġ= ĠSubmission Fl air Reference ( reddit , Ġsub reddit , Ġid ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġmod erator - created Ġrules Ġfor Ġthe Ġsub reddit . ĠUsers Ġcan Ġreport Ġthings Ġin Ġthis Ġsub reddit Ġusing Ġthe ĠString ĊĠĠĠĠ Ġ* Ġspecified Ġin Ġ[ Sub reddit Rule . violation Reason ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ SUB RE DD IT _ AB OUT _ R ULES ) ĊĠĠĠ Ġfun Ġrules (): ĠRule set Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . endpoint ( Endpoint . GET _ SUB RE DD IT _ AB OUT _ R ULES , Ġsub reddit ) ĊĠĠĠĠĠĠĠ Ġ}. deserialize () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmod erators (): ĠLoad Sub reddit Mod erators Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . path (" r /${ J raw Utils . url Encode ( sub reddit ) }/ about / mod erators . json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. deserialize En velop ed < Sub reddit Mod erator List >() ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoad Sub reddit Mod erators Result . Loaded ( list . mod erators ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠApiException Ġ&& Ġe . code Ġ== Ġ" 4 0 3 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoad Sub reddit Mod erators Result . Forbidden ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoad Sub reddit Mod erators Result . Unknown Failure ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturns Ġa Ġreference Ġto Ġthe Ġsub reddit 's Ġwiki Ġ*/ ĊĠĠĠ Ġfun Ġwiki () Ġ= ĠWiki Reference ( reddit , Ġsub reddit ) ĊĊĠĠĠ Ġ/** ĠF etches Ġthe Ġstylesheet Ġof Ġa Ġsub reddit . ĠReturned Ġvalue Ġis ĠCSS . Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ STY LES HE ET ) ĊĠĠĠ Ġfun Ġstylesheet (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . endpoint ( Endpoint . GET _ STY LES HE ET , Ġsub reddit ) ĊĠĠĠĠĠĠĠ Ġ}. body ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġthe Ġstylesheet Ġof Ġa Ġsub reddit . ĠRequires Ġmod Ġpri ve le ges Ġon Ġthe Ġsub reddit . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġstylesheet ĠNew Ġstylesheet Ġof Ġthe Ġsub reddit , Ġcompletely Ġreplaces Ġthe Ġpre - existing Ġone ĊĠĠĠĠ Ġ* Ġ@ param Ġreason ĠReason Ġfor Ġthe Ġupdate Ġto Ġbe Ġdisplayed Ġin Ġthe Ġstylesheet Ġchange Ġhistory ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . POST _ SUB RE DD IT _ STY LES HE ET ) ĊĠĠĠ Ġfun Ġupdate Style sheet ( stylesheet : ĠString , Ġreason : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . endpoint ( Endpoint . POST _ SUB RE DD IT _ STY LES HE ET , Ġsub reddit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" api _ type " Ġto Ġ" json ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" op " Ġto Ġ" save ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" reason " Ġto Ġreason , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" stylesheet _ contents " Ġto Ġstylesheet ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġlisting Ġof Ġcurrently Ġset Ġfl airs Ġon Ġthe Ġsub reddit Ġ( both Ġcustom Ġand Ġtemplate - based Ġones ) ĊĠĠĠĠ Ġ* ĠRequires Ġmod Ġpri ve le ges Ġon Ġthe Ġsub reddit . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . GET _ FL AIR LIST ) ĊĠĠĠ Ġfun Ġfl air List () Ġ= ĠB are bones Paginator . Builder . create < Simple Fl air Info >( reddit , Ġ"/ r /$ sub reddit / api / fl air list ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġusers Ġfl airs Ġon Ġthe Ġsub reddit Ġin Ġbulk Ġ( up Ġto Ġ 1 0 0 Ġrows , Ġthe Ġrest Ġare Ġignored Ġby ĠRed dit ). ĊĠĠĠĠ Ġ* ĠRequires Ġmod Ġprivileges Ġon Ġthe Ġsub reddit . ĠIf Ġthe ĠCSS Ġclass Ġand Ġtext Ġare Ġempty / null Ġfor Ġa Ġparticular Ġuser , Ġthat ĊĠĠĠĠ Ġ* Ġuser 's Ġfl air Ġis Ġcleared . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠNote Ġthat Ġeven Ġif Ġthis Ġcall Ġsucceeds , Ġre dd it Ġmay Ġstill Ġhave Ġrejected Ġone Ġor Ġmore Ġof Ġthe Ġchanges . ĠMake Ġsure Ġto ĊĠĠĠĠ Ġ* Ġcheck Ġthe Ġ[ Fl air Patch Report ] s Ġthat Ġthis Ġmethod Ġreturns . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Endpoint Implementation ( Endpoint . POST _ FL AIR CSV ) ĊĠĠĠ Ġfun Ġpatch Fl air List ( patch : ĠList < Simple Fl air Info >): ĠList < Fl air Patch Report > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġre dd it . request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ("/ r /$ sub reddit / api / fl air csv ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fl air _ csv " Ġto Ġ( patch . join ToString ( separator Ġ= Ġ"\ n ") Ġ{ Ġit . to Csv Line () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ}. deserialize With ( J raw Utils . mos hi . adapter ( Types . new Parameterized Type ( List :: class . java , ĠFl air Patch Report :: class . java ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠlistOf Fl airs Type Ġ= ĠTypes . new Parameterized Type ( List :: class . java , ĠFl air :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġinterface ĠLoad Sub reddit Mod erators Result Ġ{ ĊĠĠĠ Ġdata Ġclass ĠLoaded ( ĊĠĠĠĠĠĠĠ Ġval Ġmod erators : ĠList < Sub reddit Mod erator > ĊĠĠĠ Ġ) Ġ: ĠLoad Sub reddit Mod erators Result ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturned Ġwhen Ġeither Ġthere Ġis Ġno Ġlogged Ġin Ġuser Ġor Ġthe Ġuser Ġis ĊĠĠĠĠ Ġ* Ġb anned Ġfrom Ġthe Ġsub reddit Ġwhose Ġmod erator Ġlist Ġwas Ġqueried . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġobject ĠFor bidden Ġ: ĠLoad Sub reddit Mod erators Result ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIncludes Ġ 4 0 4 Ġas Ġwell Ġthat Ġis Ġdifficult Ġto Ġidentify Ġbecause ĠRed dit ĊĠĠĠĠ Ġ* Ġsends Ġdown Ġsearch Ġresults Ġinstead Ġof Ġsending Ġan Ġerror Ġlike Ġa Ġnormal Ġsystem . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠUnknown Failure ( val Ġerror : ĠThrowable ) Ġ: ĠLoad Sub reddit Mod erators Result Ċ } Ċ