package Ġchat . sphinx . feature _ network _ query _ message Ċ Ċ import Ġchat . sphinx . concept _ network _ query _ message . Network Query Message Ċ import Ġchat . sphinx . concept _ network _ query _ message . model .* Ċ import Ġchat . sphinx . concept _ network _ relay _ call . Network Relay Call Ċ import Ġchat . sphinx . feature _ network _ query _ message . model .* Ċ import Ġchat . sphinx . kotlin _ response . Load Response Ċ import Ġchat . sphinx . kotlin _ response . Response Ċ import Ġchat . sphinx . kotlin _ response . ResponseError Ċ import Ġchat . sphinx . wrapper _ common . dashboard . Chat Id Ċ import Ġchat . sphinx . wrapper _ common . dashboard . Contact Id Ċ import Ġchat . sphinx . wrapper _ common . lightning . Lightning Payment Request Ċ import Ġchat . sphinx . wrapper _ common . lightning . Sat Ċ import Ġchat . sphinx . wrapper _ common . message . MessageId Ċ import Ġchat . sphinx . wrapper _ common . message . Message Pagination Ċ import Ġchat . sphinx . wrapper _ common . message . Message UUID Ċ import Ġchat . sphinx . wrapper _ message . MessageType Ċ import Ġchat . sphinx . wrapper _ message . is Member Approve Ċ import Ġchat . sphinx . wrapper _ message _ media . Media Token Ċ import Ġchat . sphinx . wrapper _ relay . Authorization Token Ċ import Ġchat . sphinx . wrapper _ relay . Relay Url Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Of Ċ Ċ class ĠNetwork Query Message Impl ( ĊĠĠĠ Ġprivate Ġval Ġnetwork Relay Call : ĠNetwork Relay Call , Ċ ): ĠNetwork Query Message () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ ATTACHMENT Ġ= Ġ"/ attachment " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ MSG S Ġ= Ġ"/ msgs " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ MESSAGE Ġ= Ġ"/ message " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ DELETE _ MESSAGE Ġ= Ġ"/ message /% d " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ MEMBER _ APPRO VED Ġ= Ġ"/ member /% d / approved /% d " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ MEMBER _ RE JECT ED Ġ= Ġ"/ member /% d / rejected /% d " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ MESSAGES _ READ Ġ= Ġ"/ messages /% d / read " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ MESSAGES Ġ= Ġ"${ ENDPOINT _ MESSAGE } s " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ PAYMENT Ġ= Ġ"/ payment " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ PAYMENT S Ġ= Ġ"${ ENDPOINT _ PAYMENT } s " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ PAY _ ATTACHMENT Ġ= Ġ"/ purchase " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEND POINT _ IN VO ICES Ġ= Ġ"/ invoices " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Messages ( ĊĠĠĠĠĠĠĠ Ġmessage Pagination : ĠMessage Pagination ?, ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Get Messages Response , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Get ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠGet Messages Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ MSG S Ġ+ Ġ( message Pagination ?. value Ġ?: Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Payments ( ĊĠĠĠĠĠĠĠ Ġoffset : ĠInt , ĊĠĠĠĠĠĠĠ Ġlimit : ĠInt , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < List < Transaction Dto >, ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Get ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠGet Payments Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= Ġ"$ ENDPOINT _ PAYMENT S ? offset =$ offset & limit =$ limit ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠsendMessage ( ĊĠĠĠĠĠĠĠ Ġpost Message Dto : ĠPost Message Dto , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= Ġif Ġ( postMessage Dto . media _ key _ map Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEND POINT _ ATTACHMENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEND POINT _ MESSAGES ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPost Message Dto :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġpost Message Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġsend Payment ( ĊĠĠĠĠĠĠĠ Ġpost Payment Dto : ĠPost Payment Dto , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ PAYMENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPost Payment Dto :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġpost Payment Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġsend Payment Request ( ĊĠĠĠĠĠĠĠ Ġpost Payment Request Dto : ĠPost Payment Request Dto , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ IN VO ICES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPost Payment Request Dto :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġpost Payment Request Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġpay Payment Request ( ĊĠĠĠĠĠĠĠ Ġput Payment Request Dto : ĠPut Payment Request Dto , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Put ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ IN VO ICES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPut Payment Request Dto :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġput Payment Request Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġsend Key Send Payment ( ĊĠĠĠĠĠĠĠ Ġpost Payment Dto : ĠPost Payment Dto , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Key Send Payment Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠKey Send Payment Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ PAYMENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPost Payment Dto :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġpost Payment Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġboost Message ( ĊĠĠĠĠĠĠĠ Ġchat Id : ĠChat Id , ĊĠĠĠĠĠĠĠ Ġprice Per Message : ĠSat , ĊĠĠĠĠĠĠĠ Ġesc row Amount : ĠSat , ĊĠĠĠĠĠĠĠ Ġtip Amount : ĠSat , ĊĠĠĠĠĠĠĠ Ġmessage UUID : ĠMessage UUID , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpost Boost Message Dto : ĠPost Boost Message Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPost Boost Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ id Ġ= Ġchat Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġprice Per Message . value Ġ+ Ġesc row Amount . value Ġ+ Ġtip Amount . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage _ price Ġ= Ġprice Per Message . value Ġ+ Ġesc row Amount . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreply _ uuid Ġ= Ġmessage UUID . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġflow Of ( Response . Error ( ResponseError (" Incorrect ĠArguments Ġprovided ", Ġe ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ MESSAGES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPost Boost Message :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġpost Boost Message Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpay Attachment ( ĊĠĠĠĠĠĠĠ Ġchat Id : ĠChat Id , ĊĠĠĠĠĠĠĠ Ġcontact Id : ĠContact Id ?, ĊĠĠĠĠĠĠĠ Ġamount : ĠSat , ĊĠĠĠĠĠĠĠ Ġmedia Token : ĠMedia Token , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpay Attachment Dto Ġ= ĠPost Pay Attachment Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ id Ġ= Ġchat Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ id Ġ= Ġcontact Id ?. value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġamount . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia _ token Ġ= Ġmedia Token . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠEND POINT _ PAY _ ATTACHMENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠPost Pay Attachment Dto :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġpay Attachment Dto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġread Messages ( ĊĠĠĠĠĠĠĠ Ġchat Id : ĠChat Id , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Any ?, ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠRead Messages Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠString . format ( ENDPOINT _ MESSAGES _ READ , Ġchat Id . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= ĠMap :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġmap Of ( Pair ("", Ġ"") ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ // ĠĠĠ Ġapp . post ('/ messages / clear ', Ġmessages . clear Messages ) ĊĊĠĠĠ Ġ// //////// //// ĊĠĠĠ Ġ/// ĠDELETE Ġ/// ĊĠĠĠ Ġ// //////// //// ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġa Ġmessage Ġwith Ġthe Ġid Ġ[ MessageId ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDELETE Ġ/ message /$ message Id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdelete Message ( ĊĠĠĠĠĠĠĠ ĠmessageId : ĠMessage Id , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Message Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Delete ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠMessage Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= ĠString . format ( ENDPOINT _ DELETE _ MESSAGE , ĠmessageId . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Json Class Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġprocess Member Request ( ĊĠĠĠĠĠĠĠ Ġcontact Id : ĠContact Id , ĊĠĠĠĠĠĠĠ ĠmessageId : ĠMessage Id , ĊĠĠĠĠĠĠĠ Ġtype : ĠMessageType , ĊĠĠĠĠĠĠĠ Ġrelay Data : ĠPair < Authorization Token , ĠRelay Url >? ĊĠĠĠ Ġ): ĠFlow < Load Response < Put Member Response Dto , ĠResponse Error >> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Relay Call . relay Put ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Json Class Ġ= ĠPut Member Relay Response :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Endpoint Ġ= Ġif Ġ( type . is Member Approve ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( ENDPOINT _ MEMBER _ APPRO VED , Ġcontact Id . value , ĠmessageId . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( ENDPOINT _ MEMBER _ RE JECT ED , Ġcontact Id . value , ĠmessageId . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay Data Ġ= Ġrelay Data ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ