Your IP : 216.73.216.95


Current Path : /var/www/ljmtc/cbt/message/amd/build/
Upload File :
Current File : /var/www/ljmtc/cbt/message/amd/build/message_repository.min.js.map

{"version":3,"sources":["../src/message_repository.js"],"names":["define","$","Ajax","Notification","Constants","CONVERSATION_TYPES","sendMessagesToUser","toUserId","messages","formattedMessages","map","message","touserid","text","call","methodname","args","then","results","errors","reduce","carry","result","errormessage","push","length","Error","join","id","msgid","timecreated","useridfrom","conversationid","candeletemessagesforallusers","sendMessagesToConversation","conversationId","countUnreadConversations","promise","fail","exception","getContacts","userId","limit","offset","userid","limitnum","limitfrom","blockUser","blockedUserId","when","apply","blockeduserid","referenceuserid","userids","includecontactrequests","includeprivacyinfo","reponse1","profiles","unblockUser","unblockedUserId","unblockeduserid","createContactRequest","requestUserIds","requesteduserid","deleteContacts","contactUserIds","response1","getMessages","currentUserId","newestFirst","timeFrom","currentuserid","convid","newest","timefrom","searchUsers","searchString","search","searchMessages","sendMessageToUser","sendMessageToConversation","savePreferences","preferences","getPreferences","deleteMessages","messageIds","messageId","messageid","deleteMessagesForAllUsers","deleteConversation","conversationids","getContactRequests","acceptContactRequest","sendingUserId","recipientUserId","declineContactRequest","getConversation","loggedInUserId","includeContactRequests","includePrivacyInfo","memberLimit","memberOffset","messageLimit","messageOffset","newestMessagesFirst","memberlimit","memberoffset","messagelimit","messageoffset","newestmessagesfirst","getConversationBetweenUsers","otherUserId","otheruserid","getSelfConversation","getConversations","type","favourites","mergeself","conversations","conversation","PRIVATE","SELF","otherUser","members","name","fullname","imageurl","profileimageurl","getConversationMembers","setFavouriteConversations","conversationIds","setMutedConversations","unsetFavouriteConversations","unsetMutedConversations","getMemberInfo","referenceUserId","userIds","markAllConversationMessagesAsRead","getUserMessagePreferences","getTotalConversationCounts","getUnreadConversationCounts","getAllConversationCounts","total","unread"],"mappings":"AAwBAA,OAAM,mCACN,CACI,QADJ,CAEI,WAFJ,CAGI,mBAHJ,CAII,yDAJJ,CADM,CAMH,SACCC,CADD,CAECC,CAFD,CAGCC,CAHD,CAICC,CAJD,CAIY,IAEPC,CAAAA,CAAkB,CAAGD,CAAS,CAACC,kBAFxB,CAyRPC,CAAkB,CAAG,SAASC,CAAT,CAAmBC,CAAnB,CAA6B,IAC9CC,CAAAA,CAAiB,CAAGD,CAAQ,CAACE,GAAT,CAAa,SAASC,CAAT,CAAkB,CACnD,MAAO,CACHC,QAAQ,CAAEL,CADP,CAEHM,IAAI,CAAEF,CAFH,CAIV,CALuB,CAD0B,CAclD,MAAOT,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,oCADF,CAEVC,IAAI,CAAE,CACFR,QAAQ,CAAEC,CADR,CAFI,CAOG,CAAV,EAAqB,CAArB,EACFQ,IADE,CACG,SAASC,CAAT,CAAkB,CAEpB,GAAIC,CAAAA,CAAM,CAAGD,CAAO,CAACE,MAAR,CAAe,SAASC,CAAT,CAAgBC,CAAhB,CAAwB,CAChD,GAAIA,CAAM,CAACC,YAAX,CAAyB,CACrBF,CAAK,CAACG,IAAN,CAAWF,CAAM,CAACC,YAAlB,CACH,CAED,MAAOF,CAAAA,CACV,CANY,CAMV,EANU,CAAb,CAOA,GAAIF,CAAM,CAACM,MAAX,CAAmB,CACf,KAAM,IAAIC,CAAAA,KAAJ,CAAUP,CAAM,CAACQ,IAAP,CAAY,IAAZ,CAAV,CACT,CAED,MAAOT,CAAAA,CACV,CAfE,EAgBFD,IAhBE,CAgBG,SAASC,CAAT,CAAkB,CAEpB,MAAOA,CAAAA,CAAO,CAACR,GAAR,CAAY,SAASY,CAAT,CAAiB,CAChC,MAAO,CACHM,EAAE,CAAEN,CAAM,CAACO,KADR,CAEHhB,IAAI,CAAES,CAAM,CAACT,IAFV,CAGHiB,WAAW,CAAER,CAAM,CAACQ,WAHjB,CAIHC,UAAU,CAAET,CAAM,CAACS,UAJhB,CAKHC,cAAc,CAAEV,CAAM,CAACU,cALpB,CAMHC,4BAA4B,CAAEX,CAAM,CAACW,4BANlC,CAQV,CATM,CAUV,CA5BE,CA6BV,CApUU,CA2VPC,CAA0B,CAAG,SAASC,CAAT,CAAyB3B,CAAzB,CAAmC,IAC5DC,CAAAA,CAAiB,CAAGD,CAAQ,CAACE,GAAT,CAAa,SAASC,CAAT,CAAkB,CACnD,MAAO,CACHE,IAAI,CAAEF,CADH,CAGV,CAJuB,CADwC,CAchE,MAAOT,CAAAA,CAAI,CAACY,IAAL,CAAU,CARH,CACVC,UAAU,CAAE,4CADF,CAEVC,IAAI,CAAE,CACFgB,cAAc,CAAEG,CADd,CAEF3B,QAAQ,CAAEC,CAFR,CAFI,CAQG,CAAV,EAAqB,CAArB,CACV,CA1WU,CAkgCX,MAAO,CACH2B,wBAAwB,CAx/BG,QAA3BA,CAAAA,wBAA2B,CAASpB,CAAT,CAAe,IAMtCqB,CAAAA,CAAO,CAAGnC,CAAI,CAACY,IAAL,CAAU,CALV,CACVC,UAAU,CAAE,6CADF,CAEVC,IAAI,CAAEA,CAFI,CAKU,CAAV,EAAqB,CAArB,CAN4B,CAQ1CqB,CAAO,CAACC,IAAR,CAAanC,CAAY,CAACoC,SAA1B,EAEA,MAAOF,CAAAA,CACV,CA4+BM,CAEHG,WAAW,CAp+BG,QAAdA,CAAAA,WAAc,CAASC,CAAT,CAAiBC,CAAjB,CAAwBC,CAAxB,CAAgC,CAC9C,GAAI3B,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEH,CADD,CAAX,CAIA,GAAqB,WAAjB,QAAOC,CAAAA,CAAX,CAAkC,CAC9B1B,CAAI,CAAC6B,QAAL,CAAgBH,CACnB,CAED,GAAsB,WAAlB,QAAOC,CAAAA,CAAX,CAAmC,CAC/B3B,CAAI,CAAC8B,SAAL,CAAiBH,CACpB,CAOD,MAAOzC,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,gCADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CA+8BM,CAGH+B,SAAS,CAz8BG,QAAZA,CAAAA,SAAY,CAASN,CAAT,CAAiBO,CAAjB,CAAgC,CAsB5C,MAAO/C,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CArBX,CACX,CACIC,UAAU,CAAE,yBADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFU,aAAa,CAAEH,CAFb,CAFV,CADW,CAQX,CACIjC,UAAU,CAAE,8BADhB,CAEIC,IAAI,CAAE,CACFoC,eAAe,CAAEX,CADf,CAEFY,OAAO,CAAE,CAACL,CAAD,CAFP,CAGFM,sBAAsB,GAHpB,CAIFC,kBAAkB,GAJhB,CAFV,CARW,CAqBW,CAAnB,EAAwCtC,IAAxC,CAA6C,SAASuC,CAAT,CAAmBC,CAAnB,CAA6B,CAE7E,MAAOA,CAAAA,CAAQ,CAAChC,MAAT,CAAkBgC,CAAQ,CAAC,CAAD,CAA1B,CAAgC,EAC1C,CAHM,CAIV,CA46BM,CAIHC,WAAW,CAv6BG,QAAdA,CAAAA,WAAc,CAASjB,CAAT,CAAiBkB,CAAjB,CAAkC,CAsBhD,MAAO1D,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CArBX,CACX,CACIC,UAAU,CAAE,2BADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFmB,eAAe,CAAED,CAFf,CAFV,CADW,CAQX,CACI5C,UAAU,CAAE,8BADhB,CAEIC,IAAI,CAAE,CACFoC,eAAe,CAAEX,CADf,CAEFY,OAAO,CAAE,CAACM,CAAD,CAFP,CAGFL,sBAAsB,GAHpB,CAIFC,kBAAkB,GAJhB,CAFV,CARW,CAqBW,CAAnB,EAAwCtC,IAAxC,CAA6C,SAASuC,CAAT,CAAmBC,CAAnB,CAA6B,CAE7E,MAAOA,CAAAA,CAAQ,CAAChC,MAAT,CAAkBgC,CAAQ,CAAC,CAAD,CAA1B,CAAgC,EAC1C,CAHM,CAIV,CAy4BM,CAKHI,oBAAoB,CAr4BG,QAAvBA,CAAAA,oBAAuB,CAASpB,CAAT,CAAiBqB,CAAjB,CAAiC,CASxD,MAAO5D,CAAAA,CAAI,CAACY,IAAL,CAAU,CARH,CACVC,UAAU,CAAE,qCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFsB,eAAe,CAAED,CAFf,CAFI,CAQG,CAAV,EAAqB,CAArB,CACV,CAs3BM,CAMHE,cAAc,CAn3BG,QAAjBA,CAAAA,cAAiB,CAASvB,CAAT,CAAiBwB,CAAjB,CAAiC,CAoBlD,MAAOhE,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CAnBX,CACX,CACIC,UAAU,CAAE,8BADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFY,OAAO,CAAEY,CAFP,CAFV,CADW,CAQX,CACIlD,UAAU,CAAE,8BADhB,CAEIC,IAAI,CAAE,CACFoC,eAAe,CAAEX,CADf,CAEFY,OAAO,CAAEY,CAFP,CAGFX,sBAAsB,GAHpB,CAIFC,kBAAkB,GAJhB,CAFV,CARW,CAmBW,CAAnB,EAAwCtC,IAAxC,CAA6C,SAASiD,CAAT,CAAoBT,CAApB,CAA8B,CAE9E,MAAOA,CAAAA,CACV,CAHM,CAIV,CAq1BM,CAOHU,WAAW,CA/0BG,QAAdA,CAAAA,WAAc,CAASC,CAAT,CAAwBjC,CAAxB,CAAwCO,CAAxC,CAA+CC,CAA/C,CAAuD0B,CAAvD,CAAoEC,CAApE,CAA8E,CAC5F,GAAItD,CAAAA,CAAI,CAAG,CACPuD,aAAa,CAAEH,CADR,CAEPI,MAAM,CAAErC,CAFD,CAGPsC,MAAM,CAAEJ,CAAW,MAHZ,CAAX,CAMA,GAAqB,WAAjB,QAAO3B,CAAAA,CAAX,CAAkC,CAC9B1B,CAAI,CAAC6B,QAAL,CAAgBH,CACnB,CAED,GAAsB,WAAlB,QAAOC,CAAAA,CAAX,CAAmC,CAC/B3B,CAAI,CAAC8B,SAAL,CAAiBH,CACpB,CAED,GAAwB,WAApB,QAAO2B,CAAAA,CAAX,CAAqC,CACjCtD,CAAI,CAAC0D,QAAL,CAAgBJ,CACnB,CAMD,MAAOpE,CAAAA,CAAI,CAACY,IAAL,CAAU,CAJH,CACVC,UAAU,CAAE,wCADF,CAEVC,IAAI,CAAEA,CAFI,CAIG,CAAV,EAAqB,CAArB,CACV,CAgzBM,CAQH2D,WAAW,CA7yBG,QAAdA,CAAAA,WAAc,CAASlC,CAAT,CAAiBmC,CAAjB,CAA+BlC,CAA/B,CAAsCC,CAAtC,CAA8C,CAC5D,GAAI3B,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEH,CADD,CAEPoC,MAAM,CAAED,CAFD,CAAX,CAKA,GAAqB,WAAjB,QAAOlC,CAAAA,CAAX,CAAkC,CAC9B1B,CAAI,CAAC6B,QAAL,CAAgBH,CACnB,CAED,GAAsB,WAAlB,QAAOC,CAAAA,CAAX,CAAmC,CAC/B3B,CAAI,CAAC8B,SAAL,CAAiBH,CACpB,CAOD,MAAOzC,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,mCADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CAixBM,CASH8D,cAAc,CA/wBG,QAAjBA,CAAAA,cAAiB,CAASrC,CAAT,CAAiBmC,CAAjB,CAA+BlC,CAA/B,CAAsCC,CAAtC,CAA8C,CAC/D,GAAI3B,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEH,CADD,CAEPoC,MAAM,CAAED,CAFD,CAAX,CAKA,GAAqB,WAAjB,QAAOlC,CAAAA,CAAX,CAAkC,CAC9B1B,CAAI,CAAC6B,QAAL,CAAgBH,CACnB,CAED,GAAsB,WAAlB,QAAOC,CAAAA,CAAX,CAAmC,CAC/B3B,CAAI,CAAC8B,SAAL,CAAiBH,CACpB,CAOD,MAAOzC,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,mDADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CAkvBM,CAUHV,kBAAkB,CAAEA,CAVjB,CAWHyE,iBAAiB,CAhsBG,QAApBA,CAAAA,iBAAoB,CAASxE,CAAT,CAAmBM,CAAnB,CAAyB,CAC7C,MAAOP,CAAAA,CAAkB,CAACC,CAAD,CAAW,CAACM,CAAD,CAAX,CAAlB,CACFI,IADE,CACG,SAASC,CAAT,CAAkB,CACpB,MAAOA,CAAAA,CAAO,CAAC,CAAD,CACjB,CAHE,CAIV,CAgrBM,CAYHgB,0BAA0B,CAAEA,CAZzB,CAaH8C,yBAAyB,CA5pBG,QAA5BA,CAAAA,yBAA4B,CAAS7C,CAAT,CAAyBtB,CAAzB,CAA+B,CAC3D,MAAOqB,CAAAA,CAA0B,CAACC,CAAD,CAAiB,CAACtB,CAAD,CAAjB,CAA1B,CACFI,IADE,CACG,SAASK,CAAT,CAAiB,CACnB,MAAOA,CAAAA,CAAM,CAAC,CAAD,CAChB,CAHE,CAIV,CA0oBM,CAcH2D,eAAe,CA/oBG,QAAlBA,CAAAA,eAAkB,CAASxC,CAAT,CAAiByC,CAAjB,CAA8B,CAQhD,MAAOhF,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,mCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFyC,WAAW,CAAEA,CAFX,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CAwnBM,CAeHC,cAAc,CA/nBG,QAAjBA,CAAAA,cAAiB,CAAS1C,CAAT,CAAiB,CAOlC,MAAOvC,CAAAA,CAAI,CAACY,IAAL,CAAU,CANH,CACVC,UAAU,CAAE,gCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFI,CAMG,CAAV,EAAqB,CAArB,CACV,CAwmBM,CAgBH2C,cAAc,CA/mBG,QAAjBA,CAAAA,cAAiB,CAAS3C,CAAT,CAAiB4C,CAAjB,CAA6B,CAC9C,MAAOpF,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CAAUuE,CAAU,CAAC3E,GAAX,CAAe,SAAS4E,CAAT,CAAoB,CACnE,MAAO,CACHvE,UAAU,CAAE,6BADT,CAEHC,IAAI,CAAE,CACFuE,SAAS,CAAED,CADT,CAEF1C,MAAM,CAAEH,CAFN,CAFH,CAOV,CARmC,CAAV,CAAnB,CASV,CAqlBM,CAiBH+C,yBAAyB,CA7lBG,QAA5BA,CAAAA,yBAA4B,CAAS/C,CAAT,CAAiB4C,CAAjB,CAA6B,CACzD,MAAOpF,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CAAUuE,CAAU,CAAC3E,GAAX,CAAe,SAAS4E,CAAT,CAAoB,CACnE,MAAO,CACHvE,UAAU,CAAE,2CADT,CAEHC,IAAI,CAAE,CACFuE,SAAS,CAAED,CADT,CAEF1C,MAAM,CAAEH,CAFN,CAFH,CAOV,CARmC,CAAV,CAAnB,CASV,CAkkBM,CAkBHgD,kBAAkB,CA3kBG,QAArBA,CAAAA,kBAAqB,CAAShD,CAAT,CAAiBN,CAAjB,CAAiC,CAQtD,MAAOjC,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,yCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFiD,eAAe,CAAE,CAACvD,CAAD,CAFf,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CAgjBM,CAmBHwD,kBAAkB,CA3jBG,QAArBA,CAAAA,kBAAqB,CAASlD,CAAT,CAAiB,CAOtC,MAAOvC,CAAAA,CAAI,CAACY,IAAL,CAAU,CANH,CACVC,UAAU,CAAE,mCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFI,CAMG,CAAV,EAAqB,CAArB,CACV,CAgiBM,CAoBHmD,oBAAoB,CA3iBG,QAAvBA,CAAAA,oBAAuB,CAASC,CAAT,CAAwBC,CAAxB,CAAyC,CAsBhE,MAAO7F,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CArBX,CACX,CACIC,UAAU,CAAE,sCADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEiD,CADN,CAEF9B,eAAe,CAAE+B,CAFf,CAFV,CADW,CAQX,CACI/E,UAAU,CAAE,8BADhB,CAEIC,IAAI,CAAE,CACFoC,eAAe,CAAE0C,CADf,CAEFzC,OAAO,CAAE,CAACwC,CAAD,CAFP,CAGFvC,sBAAsB,GAHpB,CAIFC,kBAAkB,GAJhB,CAFV,CARW,CAqBW,CAAnB,EAAwCtC,IAAxC,CAA6C,SAASuC,CAAT,CAAmBC,CAAnB,CAA6B,CAE7E,MAAOA,CAAAA,CAAQ,CAAChC,MAAT,CAAkBgC,CAAQ,CAAC,CAAD,CAA1B,CAAgC,EAC1C,CAHM,CAIV,CA6fM,CAqBHsC,qBAAqB,CAzgBG,QAAxBA,CAAAA,qBAAwB,CAASF,CAAT,CAAwBC,CAAxB,CAAyC,CAsBjE,MAAO7F,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CArBX,CACX,CACIC,UAAU,CAAE,sCADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEiD,CADN,CAEF9B,eAAe,CAAE+B,CAFf,CAFV,CADW,CAQX,CACI/E,UAAU,CAAE,8BADhB,CAEIC,IAAI,CAAE,CACFoC,eAAe,CAAE0C,CADf,CAEFzC,OAAO,CAAE,CAACwC,CAAD,CAFP,CAGFvC,sBAAsB,GAHpB,CAIFC,kBAAkB,GAJhB,CAFV,CARW,CAqBW,CAAnB,EAAwCtC,IAAxC,CAA6C,SAASuC,CAAT,CAAmBC,CAAnB,CAA6B,CAE7E,MAAOA,CAAAA,CAAQ,CAAChC,MAAT,CAAkBgC,CAAQ,CAAC,CAAD,CAA1B,CAAgC,EAC1C,CAHM,CAIV,CA0dM,CAsBHuC,eAAe,CAheG,QAAlBA,CAAAA,eAAkB,CAClBC,CADkB,CAElB9D,CAFkB,CAGlB+D,CAHkB,CAIlBC,CAJkB,CAKlBC,CALkB,CAMlBC,CANkB,CAOlBC,CAPkB,CAQlBC,CARkB,CASlBC,CATkB,CAUpB,CACE,GAAIxF,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEqD,CADD,CAEPjE,cAAc,CAAEG,CAFT,CAAX,CAKA,GAAqC,WAAjC,QAAO+D,CAAAA,CAAP,EAA2E,IAA3B,GAAAA,CAApD,CAAqF,CACjFlF,CAAI,CAACsC,sBAAL,CAA8B4C,CACjC,CAED,GAAiC,WAA7B,QAAOC,CAAAA,CAAP,EAAmE,IAAvB,GAAAA,CAAhD,CAA6E,CACzEnF,CAAI,CAACuC,kBAAL,CAA0B4C,CAC7B,CAED,GAA0B,WAAtB,QAAOC,CAAAA,CAAP,EAAqD,IAAhB,GAAAA,CAAzC,CAA+D,CAC3DpF,CAAI,CAACyF,WAAL,CAAmBL,CACtB,CAED,GAA2B,WAAvB,QAAOC,CAAAA,CAAP,EAAuD,IAAjB,GAAAA,CAA1C,CAAiE,CAC7DrF,CAAI,CAAC0F,YAAL,CAAoBL,CACvB,CAED,GAA2B,WAAvB,QAAOC,CAAAA,CAAP,EAAuD,IAAjB,GAAAA,CAA1C,CAAiE,CAC7DtF,CAAI,CAAC2F,YAAL,CAAoBL,CACvB,CAED,GAA4B,WAAxB,QAAOC,CAAAA,CAAP,EAAyD,IAAlB,GAAAA,CAA3C,CAAmE,CAC/DvF,CAAI,CAAC4F,aAAL,CAAqBL,CACxB,CAED,GAAkC,WAA9B,QAAOC,CAAAA,CAAP,EAAqE,IAAxB,GAAAA,CAAjD,CAA+E,CAC3ExF,CAAI,CAAC6F,mBAAL,CAA2BL,CAC9B,CAOD,MAAOtG,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,+BADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CAwZM,CAuBH8F,2BAA2B,CA/ZG,QAA9BA,CAAAA,2BAA8B,CAC9Bb,CAD8B,CAE9Bc,CAF8B,CAG9Bb,CAH8B,CAI9BC,CAJ8B,CAK9BC,CAL8B,CAM9BC,CAN8B,CAO9BC,CAP8B,CAQ9BC,CAR8B,CAS9BC,CAT8B,CAUhC,CACE,GAAIxF,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEqD,CADD,CAEPe,WAAW,CAAED,CAFN,CAAX,CAKA,GAAqC,WAAjC,QAAOb,CAAAA,CAAP,EAA2E,IAA3B,GAAAA,CAApD,CAAqF,CACjFlF,CAAI,CAACsC,sBAAL,CAA8B4C,CACjC,CAED,GAAiC,WAA7B,QAAOC,CAAAA,CAAP,EAAmE,IAAvB,GAAAA,CAAhD,CAA6E,CACzEnF,CAAI,CAACuC,kBAAL,CAA0B4C,CAC7B,CAED,GAA0B,WAAtB,QAAOC,CAAAA,CAAP,EAAqD,IAAhB,GAAAA,CAAzC,CAA+D,CAC3DpF,CAAI,CAACyF,WAAL,CAAmBL,CACtB,CAED,GAA2B,WAAvB,QAAOC,CAAAA,CAAP,EAAuD,IAAjB,GAAAA,CAA1C,CAAiE,CAC7DrF,CAAI,CAAC0F,YAAL,CAAoBL,CACvB,CAED,GAA2B,WAAvB,QAAOC,CAAAA,CAAP,EAAuD,IAAjB,GAAAA,CAA1C,CAAiE,CAC7DtF,CAAI,CAAC2F,YAAL,CAAoBL,CACvB,CAED,GAA4B,WAAxB,QAAOC,CAAAA,CAAP,EAAyD,IAAlB,GAAAA,CAA3C,CAAmE,CAC/DvF,CAAI,CAAC4F,aAAL,CAAqBL,CACxB,CAED,GAAkC,WAA9B,QAAOC,CAAAA,CAAP,EAAqE,IAAxB,GAAAA,CAAjD,CAA+E,CAC3ExF,CAAI,CAAC6F,mBAAL,CAA2BL,CAC9B,CAOD,MAAOtG,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,6CADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CAsVM,CAwBHiG,mBAAmB,CAnWG,QAAtBA,CAAAA,mBAAsB,CACtBhB,CADsB,CAEtBK,CAFsB,CAGtBC,CAHsB,CAItBC,CAJsB,CAKxB,CACE,GAAIxF,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEqD,CADD,CAAX,CAIA,GAA2B,WAAvB,QAAOK,CAAAA,CAAP,EAAuD,IAAjB,GAAAA,CAA1C,CAAiE,CAC7DtF,CAAI,CAAC2F,YAAL,CAAoBL,CACvB,CAED,GAA4B,WAAxB,QAAOC,CAAAA,CAAP,EAAyD,IAAlB,GAAAA,CAA3C,CAAmE,CAC/DvF,CAAI,CAAC4F,aAAL,CAAqBL,CACxB,CAED,GAAkC,WAA9B,QAAOC,CAAAA,CAAP,EAAqE,IAAxB,GAAAA,CAAjD,CAA+E,CAC3ExF,CAAI,CAAC6F,mBAAL,CAA2BL,CAC9B,CAOD,MAAOtG,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,oCADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CA+SM,CAyBHkG,gBAAgB,CA5TG,QAAnBA,CAAAA,gBAAmB,CACnBzE,CADmB,CAEnB0E,CAFmB,CAGnBzE,CAHmB,CAInBC,CAJmB,CAKnByE,CALmB,CAMnBC,CANmB,CAOrB,CACE,GAAIrG,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEH,CADD,CAEP0E,IAAI,CAAEA,CAFC,CAAX,CAKA,GAAoB,WAAhB,QAAOzE,CAAAA,CAAP,EAAyC,IAAV,GAAAA,CAAnC,CAAmD,CAC/C1B,CAAI,CAAC6B,QAAL,CAAgBH,CACnB,CAED,GAAqB,WAAjB,QAAOC,CAAAA,CAAP,EAA2C,IAAX,GAAAA,CAApC,CAAqD,CACjD3B,CAAI,CAAC8B,SAAL,CAAiBH,CACpB,CAED,GAAyB,WAArB,QAAOyE,CAAAA,CAAP,EAAmD,IAAf,GAAAA,CAAxC,CAA6D,CACzDpG,CAAI,CAACoG,UAAL,CAAkBA,CACrB,CAED,GAAwB,WAApB,QAAOC,CAAAA,CAAP,EAAiD,IAAd,GAAAA,CAAvC,CAA2D,CACvDrG,CAAI,CAACqG,SAAL,CAAiBA,CACpB,CAOD,MAAOnH,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,gCADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,EACFC,IADE,CACG,SAASK,CAAT,CAAiB,CACnB,GAAIA,CAAM,CAACgG,aAAP,CAAqB7F,MAAzB,CAAiC,CAC7BH,CAAM,CAACgG,aAAP,CAAuBhG,CAAM,CAACgG,aAAP,CAAqB5G,GAArB,CAAyB,SAAS6G,CAAT,CAAuB,CACnE,GAAIA,CAAY,CAACJ,IAAb,EAAqB9G,CAAkB,CAACmH,OAAxC,EAAmDD,CAAY,CAACJ,IAAb,EAAqB9G,CAAkB,CAACoH,IAA/F,CAAqG,CACjG,GAAIC,CAAAA,CAAS,CAAGH,CAAY,CAACI,OAAb,CAAqBlG,MAArB,CAA8B8F,CAAY,CAACI,OAAb,CAAqB,CAArB,CAA9B,CAAwD,IAAxE,CAEA,GAAID,CAAJ,CAAe,CACXH,CAAY,CAACK,IAAb,CAAoBL,CAAY,CAACK,IAAb,CAAoBL,CAAY,CAACK,IAAjC,CAAwCF,CAAS,CAACG,QAAtE,CACAN,CAAY,CAACO,QAAb,CAAwBP,CAAY,CAACO,QAAb,CAAwBP,CAAY,CAACO,QAArC,CAAgDJ,CAAS,CAACK,eACrF,CACJ,CAED,MAAOR,CAAAA,CACV,CAXsB,CAY1B,CAED,MAAOjG,CAAAA,CACV,CAlBE,CAmBV,CA8OM,CA0BH0G,sBAAsB,CA5PG,QAAzBA,CAAAA,sBAAyB,CAAS7F,CAAT,CAAyB8D,CAAzB,CAAyCvD,CAAzC,CAAgDC,CAAhD,CAAwDuD,CAAxD,CAAgF,CACzG,GAAIlF,CAAAA,CAAI,CAAG,CACP4B,MAAM,CAAEqD,CADD,CAEPjE,cAAc,CAAEG,CAFT,CAAX,CAKA,GAAoB,WAAhB,QAAOO,CAAAA,CAAP,EAAyC,IAAV,GAAAA,CAAnC,CAAmD,CAC/C1B,CAAI,CAAC6B,QAAL,CAAgBH,CACnB,CAED,GAAqB,WAAjB,QAAOC,CAAAA,CAAP,EAA2C,IAAX,GAAAA,CAApC,CAAqD,CACjD3B,CAAI,CAAC8B,SAAL,CAAiBH,CACpB,CAED,GAAqC,WAAjC,QAAOuD,CAAAA,CAAP,EAA2E,IAA3B,GAAAA,CAApD,CAAqF,CACjFlF,CAAI,CAACsC,sBAAL,CAA8B4C,CACjC,CAOD,MAAOhG,CAAAA,CAAI,CAACY,IAAL,CAAU,CALH,CACVC,UAAU,CAAE,uCADF,CAEVC,IAAI,CAAEA,CAFI,CAKG,CAAV,EAAqB,CAArB,CACV,CA0MM,CA2BHiH,yBAAyB,CA5NG,QAA5BA,CAAAA,yBAA4B,CAASxF,CAAT,CAAiByF,CAAjB,CAAkC,CAS9D,MAAOhI,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,0CADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEF6E,aAAa,CAAEY,CAFb,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CAuLM,CA4BHC,qBAAqB,CAvLG,QAAxBA,CAAAA,qBAAwB,CAAS1F,CAAT,CAAiByF,CAAjB,CAAkC,CAQ1D,MAAOhI,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,iCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFiD,eAAe,CAAEwC,CAFf,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CAkJM,CA6BHE,2BAA2B,CA3MG,QAA9BA,CAAAA,2BAA8B,CAAS3F,CAAT,CAAiByF,CAAjB,CAAkC,CAShE,MAAOhI,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,4CADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEF6E,aAAa,CAAEY,CAFb,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CAoKM,CA8BHG,uBAAuB,CAvKG,QAA1BA,CAAAA,uBAA0B,CAAS5F,CAAT,CAAiByF,CAAjB,CAAkC,CAQ5D,MAAOhI,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,mCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFiD,eAAe,CAAEwC,CAFf,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CAgIM,CA+BHI,aAAa,CApJG,QAAhBA,CAAAA,aAAgB,CAASC,CAAT,CAA0BC,CAA1B,CAAmCtC,CAAnC,CAA2DC,CAA3D,CAA+E,CAC/F,GAAInF,CAAAA,CAAI,CAAG,CACPoC,eAAe,CAAEmF,CADV,CAEPlF,OAAO,CAAEmF,CAFF,CAAX,CAKA,GAAqC,WAAjC,QAAOtC,CAAAA,CAAX,CAAkD,CAC9ClF,CAAI,CAACsC,sBAAL,CAA8B4C,CACjC,CAED,GAAiC,WAA7B,QAAOC,CAAAA,CAAX,CAA8C,CAC1CnF,CAAI,CAACuC,kBAAL,CAA0B4C,CAC7B,CAMD,MAAOjG,CAAAA,CAAI,CAACY,IAAL,CAAU,CAJH,CACVC,UAAU,CAAE,8BADF,CAEVC,IAAI,CAAEA,CAFI,CAIG,CAAV,EAAqB,CAArB,CACV,CAkGM,CAgCHyH,iCAAiC,CAzHG,QAApCA,CAAAA,iCAAoC,CAAShG,CAAT,CAAiBN,CAAjB,CAAiC,CASrE,MAAOjC,CAAAA,CAAI,CAACY,IAAL,CAAU,CAPH,CACVC,UAAU,CAAE,qDADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAEFT,cAAc,CAAEG,CAFd,CAFI,CAOG,CAAV,EAAqB,CAArB,CACV,CA+EM,CAiCHuG,yBAAyB,CAxGG,QAA5BA,CAAAA,yBAA4B,CAASjG,CAAT,CAAiB,CAO7C,MAAOvC,CAAAA,CAAI,CAACY,IAAL,CAAU,CANH,CACVC,UAAU,CAAE,2CADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFI,CAMG,CAAV,EAAqB,CAArB,CACV,CA+DM,CAkCHkG,0BAA0B,CAzFG,QAA7BA,CAAAA,0BAA6B,CAASlG,CAAT,CAAiB,CAO9C,MAAOvC,CAAAA,CAAI,CAACY,IAAL,CAAU,CANH,CACVC,UAAU,CAAE,sCADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFI,CAMG,CAAV,EAAqB,CAArB,CACV,CA+CM,CAmCHmG,2BAA2B,CA1EG,QAA9BA,CAAAA,2BAA8B,CAASnG,CAAT,CAAiB,CAO/C,MAAOvC,CAAAA,CAAI,CAACY,IAAL,CAAU,CANH,CACVC,UAAU,CAAE,6CADF,CAEVC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFI,CAMG,CAAV,EAAqB,CAArB,CACV,CA+BM,CAoCHoG,wBAAwB,CA3DG,QAA3BA,CAAAA,wBAA2B,CAASpG,CAAT,CAAiB,CAe5C,MAAOxC,CAAAA,CAAC,CAACgD,IAAF,CAAOC,KAAP,CAAa,IAAb,CAAmBhD,CAAI,CAACY,IAAL,CAdX,CACX,CACIC,UAAU,CAAE,sCADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFV,CADW,CAOX,CACI1B,UAAU,CAAE,6CADhB,CAEIC,IAAI,CAAE,CACF4B,MAAM,CAAEH,CADN,CAFV,CAPW,CAcW,CAAnB,EAAwCxB,IAAxC,CAA6C,SAAS6H,CAAT,CAAgBC,CAAhB,CAAwB,CACxE,MAAO,CACHD,KAAK,CAAEA,CADJ,CAEHC,MAAM,CAAEA,CAFL,CAIV,CALM,CAMV,CAEM,CAsCV,CAljCK,CAAN","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Retrieves messages from the server.\n *\n * @module     core_message/message_repository\n * @class      message_repository\n * @package    message\n * @copyright  2016 Ryan Wyllie <ryan@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(\n[\n    'jquery',\n    'core/ajax',\n    'core/notification',\n    'core_message/message_drawer_view_conversation_constants'\n], function(\n    $,\n    Ajax,\n    Notification,\n    Constants) {\n\n    var CONVERSATION_TYPES = Constants.CONVERSATION_TYPES;\n\n    /**\n     * Count the number of unread conversations (one or more messages from a user)\n     * for a given user.\n     *\n     * @param {object} args The request arguments:\n     * @return {object} jQuery promise\n     */\n    var countUnreadConversations = function(args) {\n        var request = {\n            methodname: 'core_message_get_unread_conversations_count',\n            args: args\n        };\n\n        var promise = Ajax.call([request])[0];\n\n        promise.fail(Notification.exception);\n\n        return promise;\n    };\n\n    /**\n     * Get contacts for given user.\n     *\n     * @param {int} userId The user id\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @return {object} jQuery promise\n     */\n    var getContacts = function(userId, limit, offset) {\n        var args = {\n            userid: userId\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        var request = {\n            methodname: 'core_message_get_user_contacts',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Block a user.\n     *\n     * @param {int} userId The requesting user\n     * @param {int} blockedUserId Id of user to block\n     * @return {object} jQuery promise\n     */\n    var blockUser = function(userId, blockedUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_block_user',\n                args: {\n                    userid: userId,\n                    blockeduserid: blockedUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: userId,\n                    userids: [blockedUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Unblock a user.\n     *\n     * @param {int} userId The requesting user\n     * @param {int} unblockedUserId Id of user to unblock\n     * @return {object} jQuery promise\n     */\n    var unblockUser = function(userId, unblockedUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_unblock_user',\n                args: {\n                    userid: userId,\n                    unblockeduserid: unblockedUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: userId,\n                    userids: [unblockedUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Create a request to add a user as a contact.\n     *\n     * @param {int} userId The requesting user\n     * @param {int[]} requestUserIds List of user ids to add\n     * @return {object} jQuery promise\n     */\n    var createContactRequest = function(userId, requestUserIds) {\n        var request = {\n            methodname: 'core_message_create_contact_request',\n            args: {\n                userid: userId,\n                requesteduserid: requestUserIds\n            }\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Remove a list of users as contacts.\n     *\n     * @param {int} userId The requesting user\n     * @param {int[]} contactUserIds List of user ids to add\n     * @return {object} jQuery promise\n     */\n    var deleteContacts = function(userId, contactUserIds) {\n        var requests = [\n            {\n                methodname: 'core_message_delete_contacts',\n                args: {\n                    userid: userId,\n                    userids: contactUserIds\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: userId,\n                    userids: contactUserIds,\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        return $.when.apply(null, Ajax.call(requests)).then(function(response1, profiles) {\n            // Return all of the profiles as an array.\n            return profiles;\n        });\n    };\n\n    /**\n     * Get messages between two users.\n     *\n     * @param {int} currentUserId The requesting user\n     * @param {int} conversationId Other user in the conversation\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @param {bool} newestFirst Order results by newest first\n     * @param {int} timeFrom Only return messages after this timestamp\n     * @return {object} jQuery promise\n     */\n    var getMessages = function(currentUserId, conversationId, limit, offset, newestFirst, timeFrom) {\n        var args = {\n            currentuserid: currentUserId,\n            convid: conversationId,\n            newest: newestFirst ? true : false\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        if (typeof timeFrom !== 'undefined') {\n            args.timefrom = timeFrom;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation_messages',\n            args: args\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Search for users.\n     *\n     * @param {int} userId The requesting user\n     * @param {string} searchString Search string\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @return {object} jQuery promise\n     */\n    var searchUsers = function(userId, searchString, limit, offset) {\n        var args = {\n            userid: userId,\n            search: searchString\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        var request = {\n            methodname: 'core_message_message_search_users',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Search for messages.\n     *\n     * @param {int} userId The requesting user\n     * @param {string} searchString Search string\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @return {object} jQuery promise\n     */\n    var searchMessages = function(userId, searchString, limit, offset) {\n        var args = {\n            userid: userId,\n            search: searchString\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.limitfrom = offset;\n        }\n\n        var request = {\n            methodname: 'core_message_data_for_messagearea_search_messages',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Send a list of messages to a user.\n     *\n     * @param {int} toUserId The recipient user id\n     * @param {string[]} messages List of messages to send\n     * @return {object} jQuery promise\n     */\n    var sendMessagesToUser = function(toUserId, messages) {\n        var formattedMessages = messages.map(function(message) {\n            return {\n                touserid: toUserId,\n                text: message\n            };\n        });\n        var request = {\n            methodname: 'core_message_send_instant_messages',\n            args: {\n                messages: formattedMessages\n            }\n        };\n\n        return Ajax.call([request])[0]\n            .then(function(results) {\n                // Error handling for the weird way the old function works.\n                var errors = results.reduce(function(carry, result) {\n                    if (result.errormessage) {\n                        carry.push(result.errormessage);\n                    }\n\n                    return carry;\n                }, []);\n                if (errors.length) {\n                    throw new Error(errors.join(\"\\n\"));\n                }\n\n                return results;\n            })\n            .then(function(results) {\n                // Format the results to match the other send message function.\n                return results.map(function(result) {\n                    return {\n                        id: result.msgid,\n                        text: result.text,\n                        timecreated: result.timecreated,\n                        useridfrom: result.useridfrom,\n                        conversationid: result.conversationid,\n                        candeletemessagesforallusers: result.candeletemessagesforallusers\n                    };\n                });\n            });\n    };\n\n    /**\n     * Send a single message to a user.\n     *\n     * @param {int} toUserId The recipient user id\n     * @param {string} text The message text\n     * @return {object} jQuery promise\n     */\n    var sendMessageToUser = function(toUserId, text) {\n        return sendMessagesToUser(toUserId, [text])\n            .then(function(results) {\n                return results[0];\n            });\n    };\n\n    /**\n     * Send messages to a conversation.\n     *\n     * @param {int} conversationId The conversation id\n     * @param {string[]} messages List of messages to send\n     * @return {object} jQuery promise\n     */\n    var sendMessagesToConversation = function(conversationId, messages) {\n        var formattedMessages = messages.map(function(message) {\n            return {\n                text: message\n            };\n        });\n        var request = {\n            methodname: 'core_message_send_messages_to_conversation',\n            args: {\n                conversationid: conversationId,\n                messages: formattedMessages\n            }\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Send a message to a conversation.\n     *\n     * @param {int} conversationId The conversation id\n     * @param {string} text The message text\n     * @return {object} jQuery promise\n     */\n    var sendMessageToConversation = function(conversationId, text) {\n        return sendMessagesToConversation(conversationId, [text])\n            .then(function(result) {\n                return result[0];\n            });\n    };\n\n    /**\n     * Save message preferences.\n     *\n     * @param {int} userId The owner of the preferences\n     * @param {object[]} preferences New preferences values\n     * @return {object} jQuery promise\n     */\n    var savePreferences = function(userId, preferences) {\n        var request = {\n            methodname: 'core_user_update_user_preferences',\n            args: {\n                userid: userId,\n                preferences: preferences\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the user's preferences.\n     *\n     * @param {int} userId The target user\n     * @return {object} jQuery promise\n     */\n    var getPreferences = function(userId) {\n        var request = {\n            methodname: 'core_user_get_user_preferences',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Delete a list of messages.\n     *\n     * @param {int} userId The user to delete messages for\n     * @param {int[]} messageIds List of message ids to delete\n     * @return {object} jQuery promise\n     */\n    var deleteMessages = function(userId, messageIds) {\n        return $.when.apply(null, Ajax.call(messageIds.map(function(messageId) {\n            return {\n                methodname: 'core_message_delete_message',\n                args: {\n                    messageid: messageId,\n                    userid: userId\n                }\n            };\n        })));\n    };\n\n    /**\n     * Delete a list of messages for all users.\n     *\n     * @param {int} userId The user to delete messages for\n     * @param {int[]} messageIds List of message ids to delete\n     * @return {object} jQuery promise\n     */\n    var deleteMessagesForAllUsers = function(userId, messageIds) {\n        return $.when.apply(null, Ajax.call(messageIds.map(function(messageId) {\n            return {\n                methodname: 'core_message_delete_message_for_all_users',\n                args: {\n                    messageid: messageId,\n                    userid: userId\n                }\n            };\n        })));\n    };\n\n    /**\n     * Delete a conversation between two users.\n     *\n     * @param {int} userId The user to delete messages for\n     * @param {int} conversationId The id of the conversation\n     * @return {object} jQuery promise\n     */\n    var deleteConversation = function(userId, conversationId) {\n        var request = {\n            methodname: 'core_message_delete_conversations_by_id',\n            args: {\n                userid: userId,\n                conversationids: [conversationId]\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the list of contact requests for a user.\n     *\n     * @param {int} userId The user id\n     * @return {object} jQuery promise\n     */\n    var getContactRequests = function(userId) {\n        var request = {\n            methodname: 'core_message_get_contact_requests',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Accept a contact request.\n     *\n     * @param {int} sendingUserId The user that sent the request\n     * @param {int} recipientUserId The user that received the request\n     * @return {object} jQuery promise\n     */\n    var acceptContactRequest = function(sendingUserId, recipientUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_confirm_contact_request',\n                args: {\n                    userid: sendingUserId,\n                    requesteduserid: recipientUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: recipientUserId,\n                    userids: [sendingUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Decline a contact request.\n     *\n     * @param {int} sendingUserId The user that sent the request\n     * @param {int} recipientUserId The user that received the request\n     * @return {object} jQuery promise\n     */\n    var declineContactRequest = function(sendingUserId, recipientUserId) {\n        var requests = [\n            {\n                methodname: 'core_message_decline_contact_request',\n                args: {\n                    userid: sendingUserId,\n                    requesteduserid: recipientUserId\n                }\n            },\n            {\n                methodname: 'core_message_get_member_info',\n                args: {\n                    referenceuserid: recipientUserId,\n                    userids: [sendingUserId],\n                    includecontactrequests: true,\n                    includeprivacyinfo: true\n                }\n            }\n        ];\n\n        // Wrap both requests in a single promise so that we can catch an error\n        // from either request.\n        return $.when.apply(null, Ajax.call(requests)).then(function(reponse1, profiles) {\n            // Only return the profile.\n            return profiles.length ? profiles[0] : {};\n        });\n    };\n\n    /**\n     * Get a conversation.\n     *\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} conversationId The conversation id\n     * @param {bool} includeContactRequests Incldue contact requests between members\n     * @param {bool} includePrivacyInfo Include privacy info for members\n     * @param {int} memberLimit Limit for members\n     * @param {int} memberOffset Offset for members\n     * @param {int} messageLimit Limit for messages\n     * @param {int} messageOffset Offset for messages\n     * @param {bool} newestMessagesFirst Order the messages by newest first\n     * @return {object} jQuery promise\n     */\n    var getConversation = function(\n        loggedInUserId,\n        conversationId,\n        includeContactRequests,\n        includePrivacyInfo,\n        memberLimit,\n        memberOffset,\n        messageLimit,\n        messageOffset,\n        newestMessagesFirst\n    ) {\n        var args = {\n            userid: loggedInUserId,\n            conversationid: conversationId\n        };\n\n        if (typeof includeContactRequests != 'undefined' && includeContactRequests !== null) {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        if (typeof includePrivacyInfo != 'undefined' && includePrivacyInfo !== null) {\n            args.includeprivacyinfo = includePrivacyInfo;\n        }\n\n        if (typeof memberLimit != 'undefined' && memberLimit !== null) {\n            args.memberlimit = memberLimit;\n        }\n\n        if (typeof memberOffset != 'undefined' && memberOffset !== null) {\n            args.memberoffset = memberOffset;\n        }\n\n        if (typeof messageLimit != 'undefined' && messageLimit !== null) {\n            args.messagelimit = messageLimit;\n        }\n\n        if (typeof messageOffset != 'undefined' && messageOffset !== null) {\n            args.messageoffset = messageOffset;\n        }\n\n        if (typeof newestMessagesFirst != 'undefined' && newestMessagesFirst !== null) {\n            args.newestmessagesfirst = newestMessagesFirst;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a conversation between users.\n     *\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} otherUserId The other user id\n     * @param {bool} includeContactRequests Incldue contact requests between members\n     * @param {bool} includePrivacyInfo Include privacy info for members\n     * @param {int} memberLimit Limit for members\n     * @param {int} memberOffset Offset for members\n     * @param {int} messageLimit Limit for messages\n     * @param {int} messageOffset Offset for messages\n     * @param {bool} newestMessagesFirst Order the messages by newest first\n     * @return {object} jQuery promise\n     */\n    var getConversationBetweenUsers = function(\n        loggedInUserId,\n        otherUserId,\n        includeContactRequests,\n        includePrivacyInfo,\n        memberLimit,\n        memberOffset,\n        messageLimit,\n        messageOffset,\n        newestMessagesFirst\n    ) {\n        var args = {\n            userid: loggedInUserId,\n            otheruserid: otherUserId\n        };\n\n        if (typeof includeContactRequests != 'undefined' && includeContactRequests !== null) {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        if (typeof includePrivacyInfo != 'undefined' && includePrivacyInfo !== null) {\n            args.includeprivacyinfo = includePrivacyInfo;\n        }\n\n        if (typeof memberLimit != 'undefined' && memberLimit !== null) {\n            args.memberlimit = memberLimit;\n        }\n\n        if (typeof memberOffset != 'undefined' && memberOffset !== null) {\n            args.memberoffset = memberOffset;\n        }\n\n        if (typeof messageLimit != 'undefined' && messageLimit !== null) {\n            args.messagelimit = messageLimit;\n        }\n\n        if (typeof messageOffset != 'undefined' && messageOffset !== null) {\n            args.messageoffset = messageOffset;\n        }\n\n        if (typeof newestMessagesFirst != 'undefined' && newestMessagesFirst !== null) {\n            args.newestmessagesfirst = newestMessagesFirst;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation_between_users',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a self-conversation.\n     *\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} messageLimit Limit for messages\n     * @param {int} messageOffset Offset for messages\n     * @param {bool} newestMessagesFirst Order the messages by newest first\n     * @return {object} jQuery promise\n     */\n    var getSelfConversation = function(\n        loggedInUserId,\n        messageLimit,\n        messageOffset,\n        newestMessagesFirst\n    ) {\n        var args = {\n            userid: loggedInUserId\n        };\n\n        if (typeof messageLimit != 'undefined' && messageLimit !== null) {\n            args.messagelimit = messageLimit;\n        }\n\n        if (typeof messageOffset != 'undefined' && messageOffset !== null) {\n            args.messageoffset = messageOffset;\n        }\n\n        if (typeof newestMessagesFirst != 'undefined' && newestMessagesFirst !== null) {\n            args.newestmessagesfirst = newestMessagesFirst;\n        }\n\n        var request = {\n            methodname: 'core_message_get_self_conversation',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the conversations for a user.\n     *\n     * @param {int} userId The logged in user\n     * @param {int|null} type The type of conversation to get\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @param {bool|null} favourites If favourites should be included or not\n     * @return {object} jQuery promise\n     */\n    var getConversations = function(\n        userId,\n        type,\n        limit,\n        offset,\n        favourites,\n        mergeself\n    ) {\n        var args = {\n            userid: userId,\n            type: type\n        };\n\n        if (typeof limit != 'undefined' && limit !== null) {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset != 'undefined' && offset !== null) {\n            args.limitfrom = offset;\n        }\n\n        if (typeof favourites != 'undefined' && favourites !== null) {\n            args.favourites = favourites;\n        }\n\n        if (typeof mergeself != 'undefined' && mergeself !== null) {\n            args.mergeself = mergeself;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversations',\n            args: args\n        };\n\n        return Ajax.call([request])[0]\n            .then(function(result) {\n                if (result.conversations.length) {\n                    result.conversations = result.conversations.map(function(conversation) {\n                        if (conversation.type == CONVERSATION_TYPES.PRIVATE || conversation.type == CONVERSATION_TYPES.SELF) {\n                            var otherUser = conversation.members.length ? conversation.members[0] : null;\n\n                            if (otherUser) {\n                                conversation.name = conversation.name ? conversation.name : otherUser.fullname;\n                                conversation.imageurl = conversation.imageurl ? conversation.imageurl : otherUser.profileimageurl;\n                            }\n                        }\n\n                        return conversation;\n                    });\n                }\n\n                return result;\n            });\n    };\n\n    /**\n     * Get the conversations for a user.\n     *\n     * @param {int} conversationId The conversation id\n     * @param {int} loggedInUserId The logged in user\n     * @param {int} limit Limit for results\n     * @param {int} offset Offset for results\n     * @param {bool} includeContactRequests If contact requests should be included in result\n     * @return {object} jQuery promise\n     */\n    var getConversationMembers = function(conversationId, loggedInUserId, limit, offset, includeContactRequests) {\n        var args = {\n            userid: loggedInUserId,\n            conversationid: conversationId\n        };\n\n        if (typeof limit != 'undefined' && limit !== null) {\n            args.limitnum = limit;\n        }\n\n        if (typeof offset != 'undefined' && offset !== null) {\n            args.limitfrom = offset;\n        }\n\n        if (typeof includeContactRequests != 'undefined' && includeContactRequests !== null) {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        var request = {\n            methodname: 'core_message_get_conversation_members',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to set as favourites for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to set as favourite\n     * @return {object} jQuery promise\n     */\n    var setFavouriteConversations = function(userId, conversationIds) {\n\n        var request = {\n            methodname: 'core_message_set_favourite_conversations',\n            args: {\n                userid: userId,\n                conversations: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to unset as favourites for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to unset as favourite\n     * @return {object} jQuery promise\n     */\n    var unsetFavouriteConversations = function(userId, conversationIds) {\n\n        var request = {\n            methodname: 'core_message_unset_favourite_conversations',\n            args: {\n                userid: userId,\n                conversations: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to set as muted for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to set as favourite\n     * @return {object} jQuery promise\n     */\n    var setMutedConversations = function(userId, conversationIds) {\n        var request = {\n            methodname: 'core_message_mute_conversations',\n            args: {\n                userid: userId,\n                conversationids: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Set a list of conversations to unset as muted for the given user.\n     *\n     * @param {int} userId The user id\n     * @param {array} conversationIds List of conversation ids to unset as favourite\n     * @return {object} jQuery promise\n     */\n    var unsetMutedConversations = function(userId, conversationIds) {\n        var request = {\n            methodname: 'core_message_unmute_conversations',\n            args: {\n                userid: userId,\n                conversationids: conversationIds\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a list of user's member info.\n     *\n     * @param {int} referenceUserId The user id\n     * @param {array} userIds List of user ids to get\n     * @param {bool} includeContactRequests Include contact requests between users in response\n     * @param {bool} includePrivacyInfo Include privacy info for reference user in response\n     * @return {object} jQuery promise\n     */\n    var getMemberInfo = function(referenceUserId, userIds, includeContactRequests, includePrivacyInfo) {\n        var args = {\n            referenceuserid: referenceUserId,\n            userids: userIds\n        };\n\n        if (typeof includeContactRequests != 'undefined') {\n            args.includecontactrequests = includeContactRequests;\n        }\n\n        if (typeof includePrivacyInfo != 'undefined') {\n            args.includeprivacyinfo = includePrivacyInfo;\n        }\n\n        var request = {\n            methodname: 'core_message_get_member_info',\n            args: args\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get a list of user's member info.\n     *\n     * @param {int} userId The user id to mark as read for\n     * @param {int} conversationId The conversation to mark as read\n     * @return {object} jQuery promise\n     */\n    var markAllConversationMessagesAsRead = function(userId, conversationId) {\n\n        var request = {\n            methodname: 'core_message_mark_all_conversation_messages_as_read',\n            args: {\n                userid: userId,\n                conversationid: conversationId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the user's message preferences.\n     *\n     * @param {int} userId The user id to load preferences for\n     * @return {object} jQuery promise\n     */\n    var getUserMessagePreferences = function(userId) {\n        var request = {\n            methodname: 'core_message_get_user_message_preferences',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * The the count of the user's conversations grouped by type.\n     *\n     * @param {Number} userId The user's id.\n     * @return {Object} jQuery promise.\n     */\n    var getTotalConversationCounts = function(userId) {\n        var request = {\n            methodname: 'core_message_get_conversation_counts',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * The the count of the user's unread conversations grouped by type.\n     *\n     * @param {Number} userId The user's id.\n     * @return {Object} jQuery promise.\n     */\n    var getUnreadConversationCounts = function(userId) {\n        var request = {\n            methodname: 'core_message_get_unread_conversation_counts',\n            args: {\n                userid: userId\n            }\n        };\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get both the unread and total conversation counts in a single request.\n     *\n     * @param {Number} userId The user's id.\n     * @return {Object} jQuery promise.\n     */\n    var getAllConversationCounts = function(userId) {\n        var requests = [\n            {\n                methodname: 'core_message_get_conversation_counts',\n                args: {\n                    userid: userId\n                }\n            },\n            {\n                methodname: 'core_message_get_unread_conversation_counts',\n                args: {\n                    userid: userId\n                }\n            },\n        ];\n        return $.when.apply(null, Ajax.call(requests)).then(function(total, unread) {\n            return {\n                total: total,\n                unread: unread\n            };\n        });\n    };\n\n    return {\n        countUnreadConversations: countUnreadConversations,\n        getContacts: getContacts,\n        blockUser: blockUser,\n        unblockUser: unblockUser,\n        createContactRequest: createContactRequest,\n        deleteContacts: deleteContacts,\n        getMessages: getMessages,\n        searchUsers: searchUsers,\n        searchMessages: searchMessages,\n        sendMessagesToUser: sendMessagesToUser,\n        sendMessageToUser: sendMessageToUser,\n        sendMessagesToConversation: sendMessagesToConversation,\n        sendMessageToConversation: sendMessageToConversation,\n        savePreferences: savePreferences,\n        getPreferences: getPreferences,\n        deleteMessages: deleteMessages,\n        deleteMessagesForAllUsers: deleteMessagesForAllUsers,\n        deleteConversation: deleteConversation,\n        getContactRequests: getContactRequests,\n        acceptContactRequest: acceptContactRequest,\n        declineContactRequest: declineContactRequest,\n        getConversation: getConversation,\n        getConversationBetweenUsers: getConversationBetweenUsers,\n        getSelfConversation: getSelfConversation,\n        getConversations: getConversations,\n        getConversationMembers: getConversationMembers,\n        setFavouriteConversations: setFavouriteConversations,\n        setMutedConversations: setMutedConversations,\n        unsetFavouriteConversations: unsetFavouriteConversations,\n        unsetMutedConversations: unsetMutedConversations,\n        getMemberInfo: getMemberInfo,\n        markAllConversationMessagesAsRead: markAllConversationMessagesAsRead,\n        getUserMessagePreferences: getUserMessagePreferences,\n        getTotalConversationCounts: getTotalConversationCounts,\n        getUnreadConversationCounts: getUnreadConversationCounts,\n        getAllConversationCounts: getAllConversationCounts\n    };\n});\n"],"file":"message_repository.min.js"}