{ "version": 3, "sources": ["../../../../../../owl-nest/ulule/features/project/src/actions/comments.ts"], "sourcesContent": ["import { ApiResponse, RequestFailure } from '@owl-nest/api-client'\nimport * as api from '@owl-nest/api-client/latest'\nimport { PromiseAction } from '@owl-nest/redux-wrapper'\n\nexport enum TYPE {\n LOAD_ROOT_REQUEST = 'COMMENTS.LOAD_ROOT_REQUEST',\n LOAD_ROOT_FAILURE = 'COMMENTS.LOAD_ROOT_FAILURE',\n LOAD_ROOT_SUCCESS = 'COMMENTS.LOAD_ROOT_SUCCESS',\n\n CREATE_ROOT_REQUEST = 'COMMENTS.CREATE_ROOT_REQUEST',\n CREATE_ROOT_FAILURE = 'COMMENTS.CREATE_ROOT_FAILURE',\n CREATE_ROOT_SUCCESS = 'COMMENTS.CREATE_ROOT_SUCCESS',\n\n LOAD_REPLY_REQUEST = 'COMMENTS.LOAD_REPLY_REQUEST',\n LOAD_REPLY_FAILURE = 'COMMENTS.LOAD_REPLY_FAILURE',\n LOAD_REPLY_SUCCESS = 'COMMENTS.LOAD_REPLY_SUCCESS',\n\n CREATE_REPLY_REQUEST = 'COMMENTS.CREATE_REPLY_REQUEST',\n CREATE_REPLY_FAILURE = 'COMMENTS.CREATE_REPLY_FAILURE',\n CREATE_REPLY_SUCCESS = 'COMMENTS.CREATE_REPLY_SUCCESS',\n\n DELETE_REQUEST = 'COMMENTS.DELETE_REQUEST',\n DELETE_FAILURE = 'COMMENTS.DELETE_FAILURE',\n DELETE_SUCCESS = 'COMMENTS.DELETE_SUCCESS',\n}\n\nexport type Action =\n | LoadRootRequest\n | LoadRootFailure\n | LoadRootSuccess\n | CreateRootRequest\n | CreateRootFailure\n | CreateRootSuccess\n | LoadReplyRequest\n | LoadReplyFailure\n | LoadReplySuccess\n | CreateReplyRequest\n | CreateReplyFailure\n | CreateReplySuccess\n | DeleteRequest\n | DeleteFailure\n | DeleteSuccess\n\ntype LoadRootRequest = { type: TYPE.LOAD_ROOT_REQUEST }\ntype LoadRootFailure = { type: TYPE.LOAD_ROOT_FAILURE; failure: RequestFailure }\ntype LoadRootSuccess = { type: TYPE.LOAD_ROOT_SUCCESS; success: CommentRootSuccess }\ntype CommentRootSuccess = api.Pageable> & { cacheId: string; size: number; forceClean: boolean }\n\ntype LoadRootConfig = { pagination?: string; forceClean?: boolean }\n\nexport function loadRoot(\n parent: { type: 'project'; project: api.Project } | { type: 'news'; news: api.News },\n { pagination = undefined, forceClean = false }: LoadRootConfig = {},\n): PromiseAction> {\n return {\n types: [TYPE.LOAD_ROOT_REQUEST, TYPE.LOAD_ROOT_SUCCESS, TYPE.LOAD_ROOT_FAILURE],\n promise: async () => {\n if (parent.type === 'project') {\n const project = parent.project\n const response = await api.api.get.projectComment({\n urlParams: { projectId: String(project.id) },\n getParams: pagination,\n })\n return response.next((success) => {\n return { ...success.body, cacheId: `project-${project.id}`, size: project.comments_count, forceClean }\n })\n }\n\n if (parent.type === 'news') {\n const news = parent.news\n const response = await api.api.get.newsComment({\n urlParams: { newsId: String(news.id) },\n getParams: pagination,\n })\n return response.next((success) => {\n return { ...success.body, cacheId: `news-${news.id}`, size: news.comments_count, forceClean }\n })\n }\n },\n }\n}\n\ntype CreateRootRequest = { type: TYPE.CREATE_ROOT_REQUEST }\ntype CreateRootFailure = { type: TYPE.CREATE_ROOT_FAILURE; failure: RequestFailure }\ntype CreateRootSuccess = { type: TYPE.CREATE_ROOT_SUCCESS; success: api.Comment }\n\nexport function createRoot(\n parent: { type: 'project'; project: api.Project } | { type: 'news'; news: api.News },\n comment: string,\n): PromiseAction>> {\n return {\n types: [TYPE.CREATE_ROOT_REQUEST, TYPE.CREATE_ROOT_SUCCESS, TYPE.CREATE_ROOT_FAILURE],\n promise: async () => {\n if (parent.type === 'project') {\n const response = await api.api.post.projectComment({\n urlParams: { projectId: String(parent.project.id) },\n body: { comment },\n })\n\n return response.next((success) => success.body)\n }\n\n if (parent.type === 'news') {\n const response = await api.api.post.newsComment({\n urlParams: { newsId: String(parent.news.id) },\n body: { comment },\n })\n\n return response.next((success) => success.body)\n }\n },\n }\n}\n\ntype LoadReplyRequest = { type: TYPE.LOAD_REPLY_REQUEST }\ntype LoadReplyFailure = { type: TYPE.LOAD_REPLY_FAILURE; failure: RequestFailure }\ntype LoadReplySuccess = { type: TYPE.LOAD_REPLY_SUCCESS; success: CommentReplySuccess }\n\ntype CommentReplySuccess = api.Pageable> & { parentId: number; size: number }\n\nexport function loadReply(\n comment: api.Comment,\n pagination: string,\n): PromiseAction> {\n return {\n types: [TYPE.LOAD_REPLY_REQUEST, TYPE.LOAD_REPLY_SUCCESS, TYPE.LOAD_REPLY_FAILURE],\n promise: async () => {\n const response = await api.api.get.commentReplies({\n urlParams: { commentId: String(comment.id) },\n getParams: pagination,\n })\n\n return response.next((success) => ({ ...success.body, parentId: comment.id, size: comment.replies_count }))\n },\n }\n}\n\ntype CreateReplyRequest = { type: TYPE.CREATE_REPLY_REQUEST }\ntype CreateReplyFailure = { type: TYPE.CREATE_REPLY_FAILURE; failure: RequestFailure }\ntype CreateReplySuccess = { type: TYPE.CREATE_REPLY_SUCCESS; success: api.Comment & { parentId: number } }\n\nexport function createReply(\n comment: string,\n parentId: number,\n): PromiseAction & { parentId: number }>> {\n return {\n types: [TYPE.CREATE_REPLY_REQUEST, TYPE.CREATE_REPLY_SUCCESS, TYPE.CREATE_REPLY_FAILURE],\n promise: async () => {\n const response = await api.api.post.commentReplies({\n urlParams: { commentId: String(parentId) },\n body: { comment },\n })\n\n return response.next((success) => ({ ...success.body, parentId }))\n },\n }\n}\n\ntype DeleteRequest = { type: TYPE.DELETE_REQUEST }\ntype DeleteFailure = { type: TYPE.DELETE_FAILURE; failure: RequestFailure }\ntype DeleteSuccess = { type: TYPE.DELETE_SUCCESS; success: { id: number; parentId: number | 'root' } }\n\nexport function remove(\n comment: api.Comment,\n parentId: number | 'root',\n): PromiseAction> {\n return {\n types: [TYPE.DELETE_REQUEST, TYPE.DELETE_SUCCESS, TYPE.DELETE_FAILURE],\n promise: async () => {\n const response = await api.api.delete.comment({\n urlParams: { commentId: String(comment.id) },\n })\n\n return response.next((_) => ({ id: comment.id, parentId }))\n },\n }\n}\n"], "mappings": "8GAAAA,IAAAC,IAkDO,SAASC,EACdC,EACA,CAAE,WAAAC,EAAa,OAAW,WAAAC,EAAa,EAAM,EAAoB,CAAC,EAClB,CAChD,MAAO,CACL,MAAO,CAAC,6BAAwB,6BAAwB,4BAAsB,EAC9E,QAAS,SAAY,CACnB,GAAIF,EAAO,OAAS,UAAW,CAC7B,IAAMG,EAAUH,EAAO,QAKvB,OAJiB,MAAUI,EAAI,IAAI,eAAe,CAChD,UAAW,CAAE,UAAW,OAAOD,EAAQ,EAAE,CAAE,EAC3C,UAAWF,CACb,CAAC,GACe,KAAMI,GACbC,EAAAC,EAAA,GAAKF,EAAQ,MAAb,CAAmB,QAAS,WAAW,OAAAF,EAAQ,IAAM,KAAMA,EAAQ,eAAgB,WAAAD,CAAW,EACtG,CACH,CAEA,GAAIF,EAAO,OAAS,OAAQ,CAC1B,IAAMQ,EAAOR,EAAO,KAKpB,OAJiB,MAAUI,EAAI,IAAI,YAAY,CAC7C,UAAW,CAAE,OAAQ,OAAOI,EAAK,EAAE,CAAE,EACrC,UAAWP,CACb,CAAC,GACe,KAAMI,GACbC,EAAAC,EAAA,GAAKF,EAAQ,MAAb,CAAmB,QAAS,QAAQ,OAAAG,EAAK,IAAM,KAAMA,EAAK,eAAgB,WAAAN,CAAW,EAC7F,CACH,CACF,CACF,CACF,CAMO,SAASO,EACdT,EACAU,EAC+C,CAC/C,MAAO,CACL,MAAO,CAAC,+BAA0B,+BAA0B,8BAAwB,EACpF,QAAS,SAAY,CACnB,GAAIV,EAAO,OAAS,UAMlB,OALiB,MAAUI,EAAI,KAAK,eAAe,CACjD,UAAW,CAAE,UAAW,OAAOJ,EAAO,QAAQ,EAAE,CAAE,EAClD,KAAM,CAAE,QAAAU,CAAQ,CAClB,CAAC,GAEe,KAAML,GAAYA,EAAQ,IAAI,EAGhD,GAAIL,EAAO,OAAS,OAMlB,OALiB,MAAUI,EAAI,KAAK,YAAY,CAC9C,UAAW,CAAE,OAAQ,OAAOJ,EAAO,KAAK,EAAE,CAAE,EAC5C,KAAM,CAAE,QAAAU,CAAQ,CAClB,CAAC,GAEe,KAAML,GAAYA,EAAQ,IAAI,CAElD,CACF,CACF,CAQO,SAASM,EACdD,EACAT,EACiD,CACjD,MAAO,CACL,MAAO,CAAC,8BAAyB,8BAAyB,6BAAuB,EACjF,QAAS,UACU,MAAUG,EAAI,IAAI,eAAe,CAChD,UAAW,CAAE,UAAW,OAAOM,EAAQ,EAAE,CAAE,EAC3C,UAAWT,CACb,CAAC,GAEe,KAAMI,GAAaC,EAAAC,EAAA,GAAKF,EAAQ,MAAb,CAAmB,SAAUK,EAAQ,GAAI,KAAMA,EAAQ,aAAc,EAAE,CAE9G,CACF,CAMO,SAASE,EACdF,EACAG,EACuE,CACvE,MAAO,CACL,MAAO,CAAC,gCAA2B,gCAA2B,+BAAyB,EACvF,QAAS,UACU,MAAUT,EAAI,KAAK,eAAe,CACjD,UAAW,CAAE,UAAW,OAAOS,CAAQ,CAAE,EACzC,KAAM,CAAE,QAAAH,CAAQ,CAClB,CAAC,GAEe,KAAML,GAAaC,EAAAC,EAAA,GAAKF,EAAQ,MAAb,CAAmB,SAAAQ,CAAS,EAAE,CAErE,CACF,CAMO,SAASC,EACdJ,EACAG,EACuE,CACvE,MAAO,CACL,MAAO,CAAC,0BAAqB,0BAAqB,yBAAmB,EACrE,QAAS,UACU,MAAUT,EAAI,OAAO,QAAQ,CAC5C,UAAW,CAAE,UAAW,OAAOM,EAAQ,EAAE,CAAE,CAC7C,CAAC,GAEe,KAAMK,IAAO,CAAE,GAAIL,EAAQ,GAAI,SAAAG,CAAS,EAAE,CAE9D,CACF", "names": ["init_define_process_env", "init_sentry_release_injection_stub", "loadRoot", "parent", "pagination", "forceClean", "project", "api", "success", "__spreadProps", "__spreadValues", "news", "createRoot", "comment", "loadReply", "createReply", "parentId", "remove", "_"] }