@ozdao/prometheus-framework 0.2.130 → 0.2.132
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/auth.server.js +0 -1
- package/dist/auth.server.mjs +0 -1
- package/dist/community.server.js +172 -31
- package/dist/community.server.mjs +172 -31
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +38 -4
- package/dist/files.server.mjs +38 -4
- package/dist/gallery.server.js +1 -1
- package/dist/gallery.server.mjs +1 -1
- package/dist/main-CI9l9xMs.js +92 -0
- package/dist/main-DPg58GOU.mjs +14509 -0
- package/dist/main.css +1 -1
- package/dist/orders.server.js +1 -1
- package/dist/orders.server.mjs +1 -1
- package/dist/organizations.server.js +4 -3
- package/dist/organizations.server.mjs +4 -3
- package/dist/products.server.js +2 -1
- package/dist/products.server.mjs +2 -1
- package/dist/prometheus-framework/src/components/Address/Address.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/Address/Address.vue.js +89 -0
- package/dist/prometheus-framework/src/components/Address/Address.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Address/Address.vue2.js +22 -23
- package/dist/prometheus-framework/src/components/Block/Block.vue.js +13 -13
- package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/Button/Button.vue.js +95 -0
- package/dist/prometheus-framework/src/components/Chips/Chips.vue2.cjs +1 -0
- package/dist/prometheus-framework/src/components/Chips/Chips.vue2.js +26 -0
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js +32 -33
- package/dist/prometheus-framework/src/components/Draggable/Draggable.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/Draggable/Draggable.vue.js +75 -0
- package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue2.cjs +1 -0
- package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue2.js +57 -0
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +93 -87
- package/dist/prometheus-framework/src/components/Field/Field.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/Field/Field.vue.js +84 -0
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.js +32 -29
- package/dist/prometheus-framework/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/FieldPhone/FieldPhone.vue.js +22 -23
- package/dist/prometheus-framework/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/FieldTags/FieldTags.vue.js +39 -39
- package/dist/prometheus-framework/src/components/FieldTags/tag-input.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/FieldTags/tag-input.vue2.js +5 -5
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue.js +127 -0
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.js +46 -47
- package/dist/prometheus-framework/src/components/Menu/Menu.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/Menu/Menu.vue.js +13 -0
- package/dist/prometheus-framework/src/components/PhotoViewer/PhotoViewer.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/PhotoViewer/PhotoViewer.vue.js +22 -23
- package/dist/prometheus-framework/src/components/Select/Select.vue.cjs +1 -0
- package/dist/prometheus-framework/src/components/Select/Select.vue.js +103 -0
- package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.js +14 -15
- package/dist/prometheus-framework/src/components/Tooltip/Tooltip.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Tooltip/Tooltip.vue.js +9 -10
- package/dist/prometheus-framework/src/components/Upload/Upload.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Upload/Upload.vue.js +37 -34
- package/dist/prometheus-framework/src/modules/auth/components/layouts/Auth.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/layouts/Auth.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterCode.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/EnterPassword.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/auth/components/pages/Invite.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/Invite.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/auth/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/ResetPassword.vue.js +31 -31
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignIn.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignIn.vue.js +32 -32
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignUp.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/components/pages/SignUp.vue.js +20 -20
- package/dist/prometheus-framework/src/modules/auth/store/auth.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/store/auth.js +11 -11
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/community.client.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/community.client.js +12 -14
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +55 -72
- package/dist/prometheus-framework/src/modules/community/components/blocks/FooterBlogpost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/FooterBlogpost.vue.js +57 -29
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +87 -77
- package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.js +58 -28
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +71 -80
- package/dist/prometheus-framework/src/modules/community/components/sections/Comment.vue.cjs +1 -0
- package/dist/prometheus-framework/src/modules/community/components/sections/Comment.vue.js +104 -0
- package/dist/prometheus-framework/src/modules/community/components/sections/Comments.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/Comments.vue.js +99 -54
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +29 -30
- package/dist/prometheus-framework/src/modules/community/store/blogposts.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/store/blogposts.js +45 -34
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Audio.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Audio.vue.js +31 -29
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/ImageUpload.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/ImageUpload.vue.js +32 -27
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue.cjs +5 -0
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue.js +67 -0
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Video.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Video.vue.js +16 -16
- package/dist/prometheus-framework/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/sections/Constructor.vue.js +119 -112
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +6 -6
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +21 -21
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +30 -30
- package/dist/prometheus-framework/src/modules/globals/components/blocks/BlockFilter.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/BlockFilter.vue.js +33 -22
- package/dist/prometheus-framework/src/modules/globals/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.js +18 -18
- package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/marketplace/store/marketplace.cjs +1 -1
- package/dist/prometheus-framework/src/modules/marketplace/store/marketplace.js +3 -9
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +9 -9
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +39 -38
- package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +113 -86
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +37 -36
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTab.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTab.vue.js +10 -10
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +5 -5
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Publics.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Publics.vue.js +17 -17
- package/dist/prometheus-framework/src/modules/organizations/store/memberships.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/store/memberships.js +18 -18
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +6 -6
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +12 -12
- package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +3 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js +32 -37
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +5 -5
- package/dist/prometheus-framework/src/modules/users/components/blocks/CardUser.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/blocks/CardUser.vue.js +14 -14
- package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.js +33 -33
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileBlogposts.vue.js +53 -35
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CardBalanceReplenished.vue.cjs +1 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CardBalanceReplenished.vue.js +30 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CardDeposite.vue.cjs +1 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CardDeposite.vue.js +42 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CashDeposite.vue.cjs +1 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CashDeposite.vue.js +26 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CryptoDeposite.vue.cjs +1 -0
- package/dist/prometheus-framework/src/modules/wallet/components/blocks/CryptoDeposite.vue.js +42 -0
- package/dist/prometheus-framework/src/modules/wallet/localization/Wallet.json.cjs +1 -0
- package/dist/prometheus-framework/src/modules/wallet/localization/Wallet.json.js +26 -0
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +158 -81
- package/dist/prometheus-framework.cjs.js +1 -1
- package/dist/prometheus-framework.es.js +14 -14
- package/dist/queryProcessor-DQSFR9YA.mjs +179 -0
- package/dist/queryProcessor-iewDZq_f.js +178 -0
- package/dist/style.css +1 -1
- package/dist/wallet.server.js +80 -27
- package/dist/wallet.server.mjs +80 -27
- package/dist/web-DZUec7pP.js +1 -0
- package/dist/web-krQQeSb6.mjs +54 -0
- package/package.json +1 -1
- package/src/components/Address/Address.vue +1 -1
- package/src/components/Chips/Chips.vue +1 -1
- package/src/components/Completion/Completion.vue +1 -4
- package/src/components/DatePicker/Calendar.vue +1 -1
- package/src/components/Draggable/Draggable.vue +113 -0
- package/src/components/Dropdown/Dropdown.vue +1 -1
- package/src/components/Feed/Feed.vue +18 -12
- package/src/components/FieldBig/FieldBig.vue +11 -1
- package/src/components/FieldPhone/FieldPhone.vue +1 -1
- package/src/components/FieldTags/FieldTags.vue +2 -1
- package/src/components/FieldTags/tag-input.vue +1 -1
- package/src/components/LocationMarker/LocationMarker.vue +1 -1
- package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
- package/src/components/Shader/Shader.vue +2 -2
- package/src/components/Slider/Slider.vue +1 -5
- package/src/components/Spoiler/Spoiler.vue +1 -1
- package/src/components/Text/Text.vue +1 -4
- package/src/components/Tooltip/Tooltip.vue +1 -1
- package/src/components/Upload/Upload.vue +5 -3
- package/src/modules/auth/controllers/auth.controller.js +0 -2
- package/src/modules/auth/store/auth.js +2 -2
- package/src/modules/community/DOCUMENTATION.MD +4 -0
- package/src/modules/community/community.client.js +0 -2
- package/src/modules/community/components/blocks/CardBlogpost.vue +6 -2
- package/src/modules/community/components/blocks/FooterBlogpost.vue +21 -5
- package/src/modules/community/components/layouts/Community.vue +15 -11
- package/src/modules/community/components/pages/Blog.vue +25 -32
- package/src/modules/community/components/pages/CreateBlogPost.vue +8 -15
- package/src/modules/community/components/sections/Comment.vue +123 -0
- package/src/modules/community/components/sections/Comments.vue +90 -19
- package/src/modules/community/components/sections/HotPosts.vue +3 -6
- package/src/modules/community/controllers/blog.controller.js +1 -1
- package/src/modules/community/controllers/comments.controller.aggr.js +280 -0
- package/src/modules/community/controllers/comments.controller.js +187 -38
- package/src/modules/community/controllers/comments.controller.populate.js +180 -0
- package/src/modules/community/models/comment.model.js +15 -0
- package/src/modules/community/store/blogposts.js +20 -2
- package/src/modules/constructor/components/elements/Audio.vue +28 -40
- package/src/modules/constructor/components/elements/ImageUpload.vue +12 -7
- package/src/modules/constructor/components/elements/Video.vue +10 -18
- package/src/modules/constructor/components/sections/Constructor.vue +54 -47
- package/src/modules/files/controllers/files.controller.js +2 -0
- package/src/modules/files/middlewares/server/middlewareBusboy.js +32 -4
- package/src/modules/files/routes/files.routes.js +8 -0
- package/src/modules/globals/components/blocks/BlockFilter.vue +17 -7
- package/src/modules/globals/components/partials/Header.vue +12 -7
- package/src/modules/globals/controllers/utils/queryProcessor.js +1 -0
- package/src/modules/icons/logos/Logotype.vue +8 -6
- package/src/modules/icons/logos/LogotypeNunito.vue +12 -0
- package/src/modules/marketplace/components/layouts/Marketplace.vue +29 -27
- package/src/modules/marketplace/store/marketplace.js +2 -8
- package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
- package/src/modules/organizations/components/pages/Members.vue +1 -1
- package/src/modules/organizations/components/pages/Organization.vue +33 -5
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +7 -4
- package/src/modules/organizations/components/sections/DetailsTab.vue +10 -10
- package/src/modules/organizations/components/sections/Publics.vue +2 -2
- package/src/modules/organizations/controllers/memberships.controller.js +2 -3
- package/src/modules/organizations/controllers/organizations.controller.js +1 -1
- package/src/modules/organizations/store/memberships.js +4 -1
- package/src/modules/products/components/blocks/CardProduct.vue +1 -1
- package/src/modules/products/components/sections/HeroRecommendation.vue +11 -8
- package/src/modules/products/models/product.model.js +2 -1
- package/src/modules/spots/components/layouts/Spots.vue +0 -3
- package/src/modules/spots/components/pages/Map.vue +13 -3
- package/src/modules/users/components/blocks/CardUser.vue +2 -2
- package/src/modules/users/components/pages/ProfileBlogposts.vue +45 -28
- package/src/modules/wallet/components/blocks/CardBalanceReplenished.vue +40 -0
- package/src/modules/wallet/components/blocks/CardDeposite.vue +55 -0
- package/src/modules/wallet/components/blocks/CashDeposite.vue +28 -0
- package/src/modules/wallet/components/blocks/CryptoDeposite.vue +55 -0
- package/src/modules/wallet/controllers/factories/rewards.factory.aggr.js +181 -0
- package/src/modules/wallet/controllers/factories/rewards.factory.js +87 -113
- package/src/modules/wallet/controllers/factories/rewards.factory.population.js +213 -0
- package/src/modules/wallet/localization/Wallet.json +22 -0
- package/src/modules/wallet/views/components/pages/Wallet.vue +153 -53
- package/src/styles/base/all.scss +16 -26
- package/src/styles/config.scss +70 -34
- package/src/styles/typography.scss +5 -5
- package/src/modules/community/components/sections/Feed.vue +0 -148
- package/src/modules/middlewares/server/accessors/AccessController.js +0 -33
- package/src/modules/middlewares/server/accessors/ReadDepartments.js +0 -101
@@ -0,0 +1,280 @@
|
|
1
|
+
const commentControllerFactory = (db) => {
|
2
|
+
const Comment = db.comment;
|
3
|
+
const Membership = db.membership;
|
4
|
+
|
5
|
+
const read = async (req, res) => {
|
6
|
+
try {
|
7
|
+
const { target, type, user, maxDepth = 4, parentId = null } = req.query;
|
8
|
+
|
9
|
+
let conditions = {
|
10
|
+
target: new db.mongoose.Types.ObjectId(target),
|
11
|
+
type: type,
|
12
|
+
};
|
13
|
+
|
14
|
+
if (parentId) {
|
15
|
+
conditions.parent = new db.mongoose.Types.ObjectId(parentId);
|
16
|
+
} else {
|
17
|
+
conditions.parent = null;
|
18
|
+
}
|
19
|
+
|
20
|
+
let blockedMembers = [];
|
21
|
+
|
22
|
+
if (user) {
|
23
|
+
const memberships = await Membership.find({ user: user, role: 'blocked' });
|
24
|
+
blockedMembers = memberships.map(membership => membership.target);
|
25
|
+
}
|
26
|
+
|
27
|
+
const pipeline = [
|
28
|
+
{ $match: conditions },
|
29
|
+
{ $sort: { createdAt: -1 } },
|
30
|
+
{
|
31
|
+
$graphLookup: {
|
32
|
+
from: 'comments',
|
33
|
+
startWith: '$_id',
|
34
|
+
connectFromField: '_id',
|
35
|
+
connectToField: 'parent',
|
36
|
+
as: 'allChildren',
|
37
|
+
depthField: 'childDepth',
|
38
|
+
maxDepth: 2
|
39
|
+
}
|
40
|
+
},
|
41
|
+
{
|
42
|
+
$lookup: {
|
43
|
+
from: 'users',
|
44
|
+
localField: 'user',
|
45
|
+
foreignField: '_id',
|
46
|
+
as: 'user'
|
47
|
+
}
|
48
|
+
},
|
49
|
+
{ $unwind: '$user' },
|
50
|
+
{
|
51
|
+
$lookup: {
|
52
|
+
from: 'users',
|
53
|
+
localField: 'allChildren.user',
|
54
|
+
foreignField: '_id',
|
55
|
+
as: 'childUsers'
|
56
|
+
}
|
57
|
+
},
|
58
|
+
{
|
59
|
+
$addFields: {
|
60
|
+
childrenCount: {
|
61
|
+
$size: {
|
62
|
+
$filter: {
|
63
|
+
input: '$allChildren',
|
64
|
+
as: 'child',
|
65
|
+
cond: { $eq: ['$$child.parent', '$_id'] }
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
},
|
71
|
+
{
|
72
|
+
$addFields: {
|
73
|
+
children: {
|
74
|
+
$map: {
|
75
|
+
input: {
|
76
|
+
$filter: {
|
77
|
+
input: '$allChildren',
|
78
|
+
as: 'child',
|
79
|
+
cond: { $eq: ['$$child.childDepth', 0] }
|
80
|
+
}
|
81
|
+
},
|
82
|
+
as: 'child',
|
83
|
+
in: {
|
84
|
+
$mergeObjects: [
|
85
|
+
'$$child',
|
86
|
+
{
|
87
|
+
user: {$arrayElemAt: [{$filter: {input: '$childUsers', as: 'childUser', cond: { $eq: ['$$childUser._id', '$$child.user'] } } }, 0 ] },
|
88
|
+
childrenCount: {$size: {$filter: {input: '$allChildren', as: 'grandchild', cond: { $eq: ['$$grandchild.parent', '$$child._id'] } } } },
|
89
|
+
children: {
|
90
|
+
$map: {
|
91
|
+
input: {
|
92
|
+
$filter: {
|
93
|
+
input: '$allChildren',
|
94
|
+
as: 'grandchild',
|
95
|
+
cond: { $eq: ['$$grandchild.parent', '$$child._id'] }
|
96
|
+
}
|
97
|
+
},
|
98
|
+
as: 'grandchild',
|
99
|
+
in: {
|
100
|
+
$mergeObjects: [
|
101
|
+
'$$grandchild',
|
102
|
+
{
|
103
|
+
user: {$arrayElemAt: [{$filter: {input: '$childUsers', as: 'childUser', cond: { $eq: ['$$childUser._id', '$$grandchild.user'] } } }, 0 ] },
|
104
|
+
childrenCount: {$size: {$filter: {input: '$allChildren', as: 'greatgrandchild', cond: { $eq: ['$$greatgrandchild.parent', '$$grandchild._id'] } } } },
|
105
|
+
hasMore: {$cond: {if: {$gt: [{$size: {$filter: {input: '$allChildren', as: 'greatgrandchild', cond: { $eq: ['$$greatgrandchild.parent', '$$grandchild._id'] } } } }, 0 ] }, then: true, else: false } }
|
106
|
+
}
|
107
|
+
]
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
]
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
},
|
118
|
+
{
|
119
|
+
$project: {
|
120
|
+
_id: 1,
|
121
|
+
content: 1,
|
122
|
+
type: 1,
|
123
|
+
target: 1,
|
124
|
+
'user.username': 1,
|
125
|
+
'user.profile.photo': 1,
|
126
|
+
'user.profile.name': 1,
|
127
|
+
'user._id': 1,
|
128
|
+
depth: 1,
|
129
|
+
createdAt: 1,
|
130
|
+
childrenCount: 1,
|
131
|
+
children: 1
|
132
|
+
}
|
133
|
+
}
|
134
|
+
];
|
135
|
+
|
136
|
+
if (blockedMembers.length > 0) {
|
137
|
+
pipeline.unshift({ $match: { user: { $nin: blockedMembers } } });
|
138
|
+
}
|
139
|
+
|
140
|
+
const comments = await Comment.aggregate(pipeline);
|
141
|
+
|
142
|
+
function buildCommentTree(comments) {
|
143
|
+
// Создаем Map для быстрого доступа ко всем комментариям по их ID
|
144
|
+
const commentMap = new Map();
|
145
|
+
|
146
|
+
// Функция для преобразования MongoDB ObjectId в строку
|
147
|
+
const objectIdToString = (id) => id.toString();
|
148
|
+
|
149
|
+
// Функция для добавления комментария и его дочерних элементов в Map
|
150
|
+
function addToMap(comment) {
|
151
|
+
const commentId = objectIdToString(comment._id);
|
152
|
+
if (!commentMap.has(commentId)) {
|
153
|
+
commentMap.set(commentId, {...comment, children: []});
|
154
|
+
if (comment.children && comment.children.length > 0) {
|
155
|
+
comment.children.forEach(addToMap);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
// Добавляем все комментарии и их дочерние элементы в Map
|
161
|
+
comments.forEach(addToMap);
|
162
|
+
|
163
|
+
// Строим дерево
|
164
|
+
commentMap.forEach((comment) => {
|
165
|
+
if (comment.parent) {
|
166
|
+
const parentId = objectIdToString(comment.parent);
|
167
|
+
const parent = commentMap.get(parentId);
|
168
|
+
if (parent) {
|
169
|
+
parent.children.push(comment);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
});
|
173
|
+
|
174
|
+
// Возвращаем только корневые комментарии
|
175
|
+
return comments.map(comment => {
|
176
|
+
const commentId = objectIdToString(comment._id);
|
177
|
+
return commentMap.get(commentId);
|
178
|
+
});
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
commentsTree = buildCommentTree(comments)
|
183
|
+
|
184
|
+
console.log(commentsTree)
|
185
|
+
|
186
|
+
res.status(200).json(commentsTree);
|
187
|
+
} catch (error) {
|
188
|
+
console.error(error);
|
189
|
+
res.status(500).json({ message: error.message });
|
190
|
+
}
|
191
|
+
};
|
192
|
+
|
193
|
+
|
194
|
+
const create = async (req, res) => {
|
195
|
+
try {
|
196
|
+
const { user, type, target, content, parent } = req.body;
|
197
|
+
|
198
|
+
let depth = 0;
|
199
|
+
|
200
|
+
if (parent) {
|
201
|
+
const parentComment = await Comment.findById(parent);
|
202
|
+
if (!parentComment) {
|
203
|
+
return res.status(404).send({ message: "Parent comment not found." });
|
204
|
+
}
|
205
|
+
depth = parentComment.depth + 1;
|
206
|
+
}
|
207
|
+
|
208
|
+
const comment = new Comment({
|
209
|
+
user,
|
210
|
+
type,
|
211
|
+
target,
|
212
|
+
content,
|
213
|
+
parent,
|
214
|
+
depth
|
215
|
+
});
|
216
|
+
|
217
|
+
const savedComment = await comment.save();
|
218
|
+
|
219
|
+
if (parent) {
|
220
|
+
await Comment.findByIdAndUpdate(parent, {
|
221
|
+
$push: { children: savedComment._id }
|
222
|
+
});
|
223
|
+
}
|
224
|
+
|
225
|
+
const populatedComment = await Comment.findById(savedComment._id)
|
226
|
+
.populate({
|
227
|
+
path: 'user',
|
228
|
+
select: 'username profile.photo profile.name _id'
|
229
|
+
})
|
230
|
+
|
231
|
+
res.status(201).send(populatedComment);
|
232
|
+
} catch (err) {
|
233
|
+
console.error(err);
|
234
|
+
res.status(500).send({
|
235
|
+
message: err.message || "Some error occurred while creating the comment."
|
236
|
+
});
|
237
|
+
}
|
238
|
+
};
|
239
|
+
|
240
|
+
const update = async (req, res) => {
|
241
|
+
try {
|
242
|
+
const comment = await Comment.findByIdAndUpdate(req.params._id, req.body, { new: true })
|
243
|
+
.populate({
|
244
|
+
path: 'user',
|
245
|
+
select: 'username profile.photo profile.name _id'
|
246
|
+
});
|
247
|
+
|
248
|
+
if (!comment) {
|
249
|
+
return res.status(404).send({ message: "Comment not found." });
|
250
|
+
}
|
251
|
+
|
252
|
+
res.status(200).send(comment);
|
253
|
+
} catch (err) {
|
254
|
+
res.status(500).send({ message: err.message });
|
255
|
+
}
|
256
|
+
};
|
257
|
+
|
258
|
+
const deleteComment = async (req, res) => {
|
259
|
+
try {
|
260
|
+
const comment = await Comment.findByIdAndRemove(req.params._id);
|
261
|
+
|
262
|
+
if (!comment) {
|
263
|
+
return res.status(404).send({ message: "Comment is not deleted." });
|
264
|
+
}
|
265
|
+
|
266
|
+
res.status(200).send(comment);
|
267
|
+
} catch (err) {
|
268
|
+
res.status(500).send({ message: err.message });
|
269
|
+
}
|
270
|
+
};
|
271
|
+
|
272
|
+
return {
|
273
|
+
read,
|
274
|
+
create,
|
275
|
+
update,
|
276
|
+
delete: deleteComment
|
277
|
+
};
|
278
|
+
};
|
279
|
+
|
280
|
+
module.exports = commentControllerFactory;
|
@@ -1,66 +1,215 @@
|
|
1
1
|
const commentControllerFactory = (db) => {
|
2
2
|
const Comment = db.comment;
|
3
|
-
|
3
|
+
const Membership = db.membership;
|
4
4
|
|
5
5
|
const read = async (req, res) => {
|
6
6
|
try {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
conditions.user = { "$nin": blockedMembers }; // добавляем условие, исключающее заблокированных пользователей
|
19
|
-
}
|
7
|
+
const { target, type, user, maxDepth = 4, parentId = null } = req.query;
|
8
|
+
|
9
|
+
let conditions = {
|
10
|
+
target: new db.mongoose.Types.ObjectId(target),
|
11
|
+
type: type,
|
12
|
+
};
|
13
|
+
|
14
|
+
if (parentId) {
|
15
|
+
conditions.parent = new db.mongoose.Types.ObjectId(parentId);
|
16
|
+
} else {
|
17
|
+
conditions.parent = null;
|
20
18
|
}
|
21
19
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
let blockedMembers = [];
|
21
|
+
|
22
|
+
if (user) {
|
23
|
+
const memberships = await Membership.find({ user: user, role: 'blocked' });
|
24
|
+
blockedMembers = memberships.map(membership => membership.target);
|
25
|
+
}
|
26
|
+
|
27
|
+
const pipeline = [
|
28
|
+
{ $match: conditions },
|
29
|
+
{ $sort: { createdAt: 1 } },
|
30
|
+
{
|
31
|
+
$graphLookup: {
|
32
|
+
from: 'comments',
|
33
|
+
startWith: '$_id',
|
34
|
+
connectFromField: '_id',
|
35
|
+
connectToField: 'parent',
|
36
|
+
as: 'children',
|
37
|
+
depthField: 'childDepth'
|
38
|
+
}
|
39
|
+
},
|
40
|
+
{
|
41
|
+
$lookup: {
|
42
|
+
from: 'users',
|
43
|
+
localField: 'user',
|
44
|
+
foreignField: '_id',
|
45
|
+
as: 'user'
|
46
|
+
}
|
47
|
+
},
|
48
|
+
{ $unwind: '$user' },
|
49
|
+
{
|
50
|
+
$lookup: {
|
51
|
+
from: 'users',
|
52
|
+
localField: 'children.user',
|
53
|
+
foreignField: '_id',
|
54
|
+
as: 'childUsers'
|
55
|
+
}
|
56
|
+
},
|
57
|
+
{
|
58
|
+
$project: {
|
59
|
+
_id: 1,
|
60
|
+
content: 1,
|
61
|
+
type: 1,
|
62
|
+
target: 1,
|
63
|
+
'user.username': 1,
|
64
|
+
'user.profile.photo': 1,
|
65
|
+
'user.profile.name': 1,
|
66
|
+
'user._id': 1,
|
67
|
+
depth: 1,
|
68
|
+
createdAt: 1,
|
69
|
+
childrenCount: { $size: '$children' },
|
70
|
+
children: {
|
71
|
+
$map: {
|
72
|
+
input: '$children',
|
73
|
+
as: 'child',
|
74
|
+
in: {
|
75
|
+
_id: '$$child._id',
|
76
|
+
content: '$$child.content',
|
77
|
+
type: '$$child.type',
|
78
|
+
parent: '$$child.parent',
|
79
|
+
target: '$$child.target',
|
80
|
+
user: {
|
81
|
+
$arrayElemAt: [
|
82
|
+
{
|
83
|
+
$filter: {
|
84
|
+
input: '$childUsers',
|
85
|
+
as: 'childUser',
|
86
|
+
cond: { $eq: ['$$childUser._id', '$$child.user'] }
|
87
|
+
}
|
88
|
+
},
|
89
|
+
0
|
90
|
+
]
|
91
|
+
},
|
92
|
+
depth: '$$child.depth',
|
93
|
+
createdAt: '$$child.createdAt',
|
94
|
+
childrenCount: { $size: '$$child.children' }
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
},
|
100
|
+
];
|
101
|
+
|
102
|
+
if (blockedMembers.length > 0) {
|
103
|
+
pipeline.unshift({ $match: { user: { $nin: blockedMembers } } });
|
104
|
+
}
|
105
|
+
|
106
|
+
const comments = await Comment.aggregate(pipeline);
|
107
|
+
|
108
|
+
function buildCommentTree(comments) {
|
109
|
+
// Создаем Map для быстрого доступа ко всем комментариям по их ID
|
110
|
+
const commentMap = new Map();
|
111
|
+
|
112
|
+
// Функция для преобразования MongoDB ObjectId в строку
|
113
|
+
const objectIdToString = (id) => id.toString();
|
114
|
+
|
115
|
+
// Функция для добавления комментария и его дочерних элементов в Map
|
116
|
+
function addToMap(comment) {
|
117
|
+
const commentId = objectIdToString(comment._id);
|
118
|
+
if (!commentMap.has(commentId)) {
|
119
|
+
commentMap.set(commentId, {...comment, children: []});
|
120
|
+
if (comment.children && comment.children.length > 0) {
|
121
|
+
comment.children.forEach(addToMap);
|
122
|
+
}
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
// Добавляем все комментарии и их дочерние элементы в Map
|
127
|
+
comments.forEach(addToMap);
|
128
|
+
|
129
|
+
// Строим дерево
|
130
|
+
commentMap.forEach((comment) => {
|
131
|
+
if (comment.parent) {
|
132
|
+
const parentId = objectIdToString(comment.parent);
|
133
|
+
const parent = commentMap.get(parentId);
|
134
|
+
if (parent) {
|
135
|
+
parent.children.push(comment);
|
136
|
+
}
|
137
|
+
}
|
27
138
|
});
|
28
139
|
|
29
|
-
|
30
|
-
|
140
|
+
// Функция для рекурсивной сортировки дочерних комментариев
|
141
|
+
function sortChildren(comment) {
|
142
|
+
if (comment.children.length > 0) {
|
143
|
+
comment.children.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));
|
144
|
+
comment.children.forEach(sortChildren);
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
// Получаем корневые комментарии и сортируем их
|
149
|
+
const rootComments = comments.map(comment => {
|
150
|
+
const commentId = objectIdToString(comment._id);
|
151
|
+
return commentMap.get(commentId);
|
152
|
+
}).filter(comment => !comment.parent);
|
153
|
+
|
154
|
+
// Сортируем корневые комментарии по createdAt
|
155
|
+
rootComments.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));
|
156
|
+
|
157
|
+
// Рекурсивно сортируем дочерние комментарии
|
158
|
+
rootComments.forEach(sortChildren);
|
159
|
+
|
160
|
+
return rootComments;
|
31
161
|
}
|
32
162
|
|
33
|
-
|
34
|
-
return {
|
35
|
-
...comment._doc,
|
36
|
-
user: comment.user,
|
37
|
-
};
|
38
|
-
});
|
163
|
+
commentsTree = buildCommentTree(comments)
|
39
164
|
|
40
|
-
|
41
|
-
|
42
|
-
res.status(
|
165
|
+
console.log(commentsTree)
|
166
|
+
|
167
|
+
res.status(200).json(commentsTree);
|
168
|
+
} catch (error) {
|
169
|
+
console.error(error);
|
170
|
+
res.status(500).json({ message: error.message });
|
43
171
|
}
|
44
172
|
};
|
45
173
|
|
46
174
|
|
47
175
|
const create = async (req, res) => {
|
48
176
|
try {
|
177
|
+
const { user, type, target, content, parent } = req.body;
|
178
|
+
|
179
|
+
let depth = 0;
|
180
|
+
|
181
|
+
if (parent) {
|
182
|
+
const parentComment = await Comment.findById(parent);
|
183
|
+
if (!parentComment) {
|
184
|
+
return res.status(404).send({ message: "Parent comment not found." });
|
185
|
+
}
|
186
|
+
depth = parentComment.depth + 1;
|
187
|
+
}
|
188
|
+
|
49
189
|
const comment = new Comment({
|
50
|
-
user
|
51
|
-
type
|
52
|
-
target
|
53
|
-
content
|
190
|
+
user,
|
191
|
+
type,
|
192
|
+
target,
|
193
|
+
content,
|
194
|
+
parent,
|
195
|
+
depth
|
54
196
|
});
|
55
197
|
|
56
|
-
const
|
57
|
-
|
198
|
+
const savedComment = await comment.save();
|
199
|
+
|
200
|
+
if (parent) {
|
201
|
+
await Comment.findByIdAndUpdate(parent, {
|
202
|
+
$push: { children: savedComment._id }
|
203
|
+
});
|
204
|
+
}
|
205
|
+
|
206
|
+
const populatedComment = await Comment.findById(savedComment._id)
|
58
207
|
.populate({
|
59
208
|
path: 'user',
|
60
209
|
select: 'username profile.photo profile.name _id'
|
61
|
-
})
|
210
|
+
})
|
62
211
|
|
63
|
-
res.status(
|
212
|
+
res.status(201).send(populatedComment);
|
64
213
|
} catch (err) {
|
65
214
|
console.error(err);
|
66
215
|
res.status(500).send({
|