@ozdao/prometheus-framework 0.2.30 → 0.2.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (269) hide show
  1. package/dist/addMembersQuantity-3505b6f3.mjs +98 -0
  2. package/dist/addMembersQuantity-fb552ca0.js +97 -0
  3. package/dist/auth.server.js +6 -9
  4. package/dist/auth.server.mjs +6 -9
  5. package/dist/community.server.js +28 -21
  6. package/dist/community.server.mjs +28 -21
  7. package/dist/events.server.js +1 -1
  8. package/dist/events.server.mjs +1 -1
  9. package/dist/files.server.js +114 -111
  10. package/dist/files.server.mjs +114 -111
  11. package/dist/gallery.server.js +3 -3
  12. package/dist/gallery.server.mjs +3 -3
  13. package/dist/globals.server.js +1 -1
  14. package/dist/globals.server.mjs +1 -1
  15. package/dist/index-a8dffc0c.js +213 -0
  16. package/dist/index-d769324d.mjs +214 -0
  17. package/dist/mailing-37c2ba41.mjs +68 -0
  18. package/dist/mailing-fe16a26a.js +67 -0
  19. package/dist/main.css +1 -1
  20. package/dist/middlewares.server.js +1 -1
  21. package/dist/middlewares.server.mjs +1 -1
  22. package/dist/organizations.server.js +125 -25
  23. package/dist/organizations.server.mjs +125 -25
  24. package/dist/prometheus-framework.cjs.js +30 -29
  25. package/dist/prometheus-framework.es.js +2478 -2282
  26. package/dist/reports.server.js +1 -1
  27. package/dist/reports.server.mjs +1 -1
  28. package/dist/users.server.js +1 -1
  29. package/dist/users.server.mjs +1 -1
  30. package/package.json +4 -2
  31. package/src/assets/images/logo.svg +7 -7
  32. package/src/components/Block/Block.vue +77 -0
  33. package/src/components/Breadcrumbs/Breadcrumbs.vue +2 -2
  34. package/src/components/Button/Button.vue +32 -227
  35. package/src/components/Checkbox/Checkbox.vue +1 -1
  36. package/src/components/Chips/Chips.vue +8 -8
  37. package/src/components/DatePicker/DatePicker.vue +3 -4
  38. package/src/components/EditImages/EditImages.vue +32 -14
  39. package/src/{modules/globals/components/sections → components/Feed}/Feed.vue +60 -45
  40. package/src/components/FieldBig/FieldBig.vue +16 -5
  41. package/src/components/FieldPhone/FieldPhone.vue +2 -1
  42. package/src/components/Footer/Footer.vue +36 -27
  43. package/src/components/Header/Header.vue +161 -166
  44. package/src/components/Loader/Loader.vue +9 -2
  45. package/src/components/LocationMarker/LocationMarker.vue +38 -12
  46. package/src/components/LocationSelection/LocationSelection.vue +67 -75
  47. package/src/components/Magnifier/Magnifier.vue +3 -3
  48. package/src/components/Navigation/Navigation.vue +16 -16
  49. package/src/components/Popup/Popup.vue +8 -6
  50. package/src/components/Select/Select.vue +35 -6
  51. package/src/components/SelectMulti/SelectMulti.vue +5 -13
  52. package/src/components/Shader/Shader.vue +128 -0
  53. package/src/components/Sidebar/Sidebar.vue +71 -35
  54. package/src/components/Spoiler/Spoiler.vue +1 -1
  55. package/src/components/Tab/Tab.vue +1 -1
  56. package/src/components/Tooltip/Tooltip.vue +1 -1
  57. package/src/components/UploadImage/UploadImage.vue +4 -4
  58. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +54 -10
  59. package/src/modules/applications/controllers/applications.controller.js +0 -1
  60. package/src/modules/auth/components/pages/EnterCode.vue +1 -1
  61. package/src/modules/auth/components/pages/EnterPassword.vue +3 -3
  62. package/src/modules/auth/components/pages/ResetPassword.vue +1 -2
  63. package/src/modules/auth/components/pages/SignIn.vue +26 -10
  64. package/src/modules/auth/components/pages/SignUp.vue +1 -2
  65. package/src/modules/auth/controllers/twofa.controller.js +4 -4
  66. package/src/modules/auth/localization/EnterCode.json +2 -2
  67. package/src/modules/auth/localization/EnterPassword.json +2 -2
  68. package/src/modules/auth/localization/ResetPassword.json +2 -2
  69. package/src/modules/auth/localization/SignIn.json +3 -3
  70. package/src/modules/auth/localization/SignUp.json +3 -3
  71. package/src/modules/auth/utils/server/verifyAppleIdToken.js +0 -1
  72. package/src/modules/backoffice/components/layouts/Backoffice.vue +1 -1
  73. package/src/modules/backoffice/components/pages/Dashboard.vue +171 -120
  74. package/src/modules/backoffice/router/backoffice.js +119 -129
  75. package/src/modules/chats/components/blocks/ChatMessage.vue +25 -0
  76. package/src/modules/chats/components/pages/ChatPage.vue +50 -0
  77. package/src/modules/chats/components/sections/ChatWindow.vue +38 -0
  78. package/src/modules/chats/controllers/chats.controller.js +32 -0
  79. package/src/modules/chats/models/chat.model.js +26 -0
  80. package/src/modules/chats/routes/chats.routes.js +53 -0
  81. package/src/modules/chats/store/chat.store.js +61 -0
  82. package/src/modules/community/components/blocks/CardBlogpost.vue +19 -4
  83. package/src/modules/community/components/layouts/Community.vue +96 -39
  84. package/src/modules/community/components/pages/Blog.vue +4 -3
  85. package/src/modules/community/components/pages/BlogPost.vue +10 -1
  86. package/src/modules/community/components/pages/CreateBlogPost.vue +36 -17
  87. package/src/modules/community/components/sections/HotPosts.vue +3 -3
  88. package/src/modules/community/components/sections/JoinUs.vue +19 -13
  89. package/src/modules/community/controllers/blog.controller.js +3 -4
  90. package/src/modules/community/controllers/utils/queryProcessor.js +16 -17
  91. package/src/modules/community/models/blogpost.model.js +6 -3
  92. package/src/modules/community/store/blogposts.js +1 -0
  93. package/src/modules/constructor/components/elements/Embed.vue +12 -1
  94. package/src/modules/constructor/components/elements/ImageUpload.vue +2 -2
  95. package/src/modules/constructor/components/elements/Textarea.vue +6 -1
  96. package/src/modules/constructor/components/elements/Video.vue +79 -0
  97. package/src/modules/constructor/components/elements/VideoPlayer.vue +59 -0
  98. package/src/modules/constructor/components/elements/Youtube.vue +52 -0
  99. package/src/modules/constructor/components/sections/Constructor.vue +27 -3
  100. package/src/modules/events/components/layouts/layoutEvents.vue +7 -28
  101. package/src/modules/files/controllers/files.controller.js +9 -22
  102. package/src/modules/files/middlewares/server/index.js +2 -2
  103. package/src/modules/files/middlewares/server/middlewareBusboy.js +137 -0
  104. package/src/modules/files/routes/files.routes.js +9 -9
  105. package/src/modules/globals/localization/vue-i18n.js +8 -1
  106. package/src/modules/globals/mixins/mixins.js +23 -13
  107. package/src/modules/globals/router/routerGuards.js +2 -2
  108. package/src/modules/globals/store/globals.js +86 -9
  109. package/src/modules/globals/utils/mailing.js +24 -3
  110. package/src/modules/icons/entities/IconCommunity.vue +4 -4
  111. package/src/modules/icons/entities/IconEvents.vue +1 -1
  112. package/src/modules/icons/entities/IconGroups.vue +1 -1
  113. package/src/modules/icons/entities/IconPrice.vue +5 -0
  114. package/src/modules/icons/entities/IconProfile.vue +5 -0
  115. package/src/modules/icons/entities/IconShopcart.vue +5 -0
  116. package/src/modules/icons/entities/IconTime.vue +5 -0
  117. package/src/modules/icons/icons.client.js +4 -0
  118. package/src/modules/icons/labels/LabelAppStore.vue +24 -24
  119. package/src/modules/icons/labels/LabelGooglePlay.vue +9 -9
  120. package/src/modules/icons/logos/Logotype.vue +20 -0
  121. package/src/modules/icons/navigation/IconAdd.vue +17 -0
  122. package/src/modules/icons/navigation/IconChevronBottom.vue +18 -0
  123. package/src/modules/icons/navigation/IconChevronRight.vue +3 -3
  124. package/src/modules/icons/navigation/IconDelete.vue +19 -0
  125. package/src/modules/icons/navigation/IconMinus.vue +15 -0
  126. package/src/modules/icons/navigation/IconSearch.vue +17 -0
  127. package/src/modules/icons/navigation/IconUpload.vue +16 -0
  128. package/src/modules/icons/placeholders/PlaceholderImage.vue +5 -0
  129. package/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue +20 -0
  130. package/src/modules/icons/placeholders/PlaceholderUserpic.vue +4 -18
  131. package/src/modules/icons/socials/instagram.vue +1 -1
  132. package/src/modules/icons/socials/line.vue +1 -1
  133. package/src/modules/icons/socials/reddit.vue +1 -1
  134. package/src/modules/icons/socials/telegram.vue +1 -1
  135. package/src/modules/icons/socials/twitter.vue +1 -1
  136. package/src/modules/icons/socials/youtube.vue +1 -1
  137. package/src/modules/landing/components/sections/Guide.vue +92 -0
  138. package/src/modules/landing/components/sections/MobileApp.vue +23 -12
  139. package/src/modules/marketplace/components/layouts/Marketplace.vue +76 -188
  140. package/src/modules/marketplace/components/pages/Catalog.vue +65 -119
  141. package/src/modules/marketplace/components/sections/Filters.vue +195 -0
  142. package/src/modules/marketplace/store/marketplace.js +2 -2
  143. package/src/modules/middlewares/client/auth.validation.js +0 -6
  144. package/src/modules/middlewares/client/states.validation.js +2 -8
  145. package/src/modules/middlewares/server/authJwt.js +1 -1
  146. package/src/modules/mobile/components/Menu/MenuItem.vue +3 -6
  147. package/src/modules/openai/controllers/openai.controller.js +0 -1
  148. package/src/modules/orders/components/blocks/CardOrder.vue +166 -0
  149. package/src/modules/orders/components/blocks/CardOrderItem.vue +59 -66
  150. package/src/modules/orders/components/blocks/Positions.vue +4 -4
  151. package/src/modules/orders/components/pages/EditOrder.vue +78 -142
  152. package/src/modules/orders/components/pages/FormOrder.vue +192 -0
  153. package/src/modules/orders/components/pages/Order.vue +326 -120
  154. package/src/modules/orders/components/pages/Orders.vue +13 -9
  155. package/src/modules/orders/components/pages/{ViewOrder.vue → Orders_refact.vue} +13 -10
  156. package/src/modules/orders/components/partials/ShopCart.vue +22 -13
  157. package/src/modules/orders/components/sections/EmptyState.vue +1 -1
  158. package/src/modules/orders/components/sections/{Form.vue → FormOrderDetails.vue} +38 -106
  159. package/src/modules/orders/controllers/orders.controller.js +37 -28
  160. package/src/modules/orders/models/order.model.js +39 -9
  161. package/src/modules/orders/router/orders.router.js +23 -2
  162. package/src/modules/orders/routes/orders.routes.js +14 -17
  163. package/src/modules/orders/store/orders.js +24 -9
  164. package/src/modules/orders/store/shopcart.js +20 -19
  165. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  166. package/src/modules/organizations/components/blocks/CardOrganization.vue +98 -46
  167. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  168. package/src/modules/organizations/components/blocks/Socials.vue +11 -3
  169. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +1 -1
  170. package/src/modules/organizations/components/pages/Department.vue +1 -1
  171. package/src/modules/organizations/components/pages/DepartmentEdit.vue +4 -4
  172. package/src/modules/organizations/components/pages/Members.vue +6 -4
  173. package/src/modules/organizations/components/pages/Organization.vue +120 -49
  174. package/src/modules/organizations/components/pages/OrganizationEdit.vue +8 -1
  175. package/src/modules/organizations/components/pages/Organizations.vue +27 -6
  176. package/src/modules/organizations/components/sections/DetailsTab.vue +11 -9
  177. package/src/modules/organizations/components/sections/Feed.vue +0 -3
  178. package/src/modules/organizations/components/sections/FeedDepartments.vue +2 -2
  179. package/src/modules/organizations/controllers/organizations.controller.js +126 -15
  180. package/src/modules/organizations/controllers/utils/addMembersQuantity.js +19 -9
  181. package/src/modules/organizations/models/organization.model.js +5 -2
  182. package/src/modules/organizations/router/members.router.js +1 -3
  183. package/src/modules/organizations/router/organizations.js +8 -6
  184. package/src/modules/organizations/router/products.router.js +36 -2
  185. package/src/modules/organizations/store/organizations.js +38 -84
  186. package/src/modules/pages/controllers/pages.controller.js +0 -4
  187. package/src/modules/payments/controller/payments.controller.js +1 -1
  188. package/src/modules/products/components/blocks/CardLeftover.vue +17 -22
  189. package/src/modules/products/components/blocks/CardPosition.vue +96 -49
  190. package/src/modules/products/components/blocks/CardProduct.vue +24 -53
  191. package/src/modules/products/components/blocks/Images360.vue +4 -4
  192. package/src/modules/products/components/blocks/ImagesThumbnails.vue +2 -7
  193. package/src/modules/products/components/blocks/ListPositions.vue +74 -0
  194. package/src/modules/products/components/elements/Price.vue +11 -5
  195. package/src/modules/products/components/elements/THC.vue +6 -6
  196. package/src/modules/products/components/pages/{LeftoverAdd.vue → EditLeftover.vue} +93 -79
  197. package/src/modules/products/components/pages/Leftovers.vue +74 -70
  198. package/src/modules/products/components/pages/Product.vue +4 -7
  199. package/src/modules/products/components/pages/ProductEdit.vue +230 -88
  200. package/src/modules/products/components/pages/ProductRecommmendation.vue +1 -1
  201. package/src/modules/products/components/pages/Products.vue +6 -3
  202. package/src/modules/products/components/pages/ProductsBackoffice.vue +3 -5
  203. package/src/modules/products/components/sections/EditModifications.vue +3 -3
  204. package/src/modules/products/components/sections/EditProductInfo.vue +40 -50
  205. package/src/modules/products/components/sections/FilterProducts.vue +57 -18
  206. package/src/modules/products/components/sections/HeroRecommendation.vue +233 -99
  207. package/src/modules/products/components/sections/MenuSection.vue +127 -0
  208. package/src/modules/products/components/sections/PopularProducts.vue +81 -37
  209. package/src/modules/products/components/sections/SectionProduct.vue +21 -23
  210. package/src/modules/products/controllers/leftovers.controller.js +11 -1
  211. package/src/modules/products/controllers/products.controller.js +100 -97
  212. package/src/modules/products/models/leftover.model.js +6 -4
  213. package/src/modules/products/models/product.model.js +13 -1
  214. package/src/modules/products/routes/products.routes.js +4 -4
  215. package/src/modules/products/store/leftovers.js +4 -24
  216. package/src/modules/products/store/products.js +44 -30
  217. package/src/modules/spots/components/blocks/CardSpot.vue +43 -72
  218. package/src/modules/spots/components/layouts/Spots.vue +9 -91
  219. package/src/modules/spots/components/pages/Map.vue +171 -62
  220. package/src/modules/spots/components/pages/Spot.vue +1 -1
  221. package/src/modules/spots/components/pages/SpotEdit.vue +131 -174
  222. package/src/modules/spots/controllers/spots.controller.js +1 -0
  223. package/src/modules/spots/models/spot.model.js +6 -3
  224. package/src/modules/spots/store/spots.js +42 -48
  225. package/src/modules/users/components/pages/Profile.vue +6 -28
  226. package/src/modules/users/components/pages/ProfileBlogposts.vue +1 -1
  227. package/src/modules/users/components/pages/ProfileEdit.vue +1 -1
  228. package/src/modules/users/components/pages/ProfileEvents.vue +1 -1
  229. package/src/modules/users/components/pages/ProfileOrganizations.vue +1 -1
  230. package/src/modules/users/router/users.js +1 -1
  231. package/src/modules/wallet/components/pages/Wallet.vue +105 -109
  232. package/src/modules/wallet/controllers/crypto.controller.js +129 -0
  233. package/src/modules/wallet/models/reward.model.js +53 -0
  234. package/src/modules/wallet/routes/crypto.routes.js +36 -0
  235. package/src/modules/wallet/store/wallet.js +52 -49
  236. package/src/styles/base/all.scss +143 -11
  237. package/src/styles/base/backgrounds.scss +2 -34
  238. package/src/styles/base/borders.scss +18 -23
  239. package/src/styles/base/scrolling.scss +97 -29
  240. package/src/styles/base/{shadows.scss → shadow_transitions_hover_refactor.scss} +55 -2
  241. package/src/styles/config.scss +69 -17
  242. package/src/styles/layout.scss +12 -182
  243. package/src/styles/reset.scss +20 -21
  244. package/src/styles/responsive.scss +4 -67
  245. package/src/styles/theme.scss +3 -4
  246. package/src/styles/typography.scss +15 -17
  247. package/src/assets/fonts/AvenirNext-Bold.woff2 +0 -0
  248. package/src/assets/fonts/AvenirNext-DemiBold.woff2 +0 -0
  249. package/src/assets/fonts/AvenirNext-Heavy.woff2 +0 -0
  250. package/src/assets/fonts/AvenirNext-Medium.woff2 +0 -0
  251. package/src/assets/fonts/AvenirNext-Regular.woff2 +0 -0
  252. package/src/assets/fonts/AvenirNext-UltraLight.woff2 +0 -0
  253. package/src/modules/files/middlewares/server/md.js +0 -152
  254. package/src/modules/files/middlewares/server/middlewareMulter.js +0 -121
  255. package/src/modules/organizations/controllers/organizations.new.controller.js +0 -372
  256. package/src/modules/products/components/blocks/EditCategories.vue +0 -68
  257. package/src/modules/products/components/sections/EditParameters.vue +0 -58
  258. package/src/modules/products/components/sections/EditProductImages.vue +0 -67
  259. package/src/modules/spots/components/sections/Feed.vue +0 -64
  260. package/src/styles/base/border-radius.scss +0 -47
  261. package/src/styles/base/cursors.scss +0 -23
  262. package/src/styles/base/height.scss +0 -60
  263. package/src/styles/base/hovers.scss +0 -110
  264. package/src/styles/base/positions.scss +0 -192
  265. package/src/styles/base/transitions.scss +0 -137
  266. package/src/styles/base/width.scss +0 -2
  267. package/src/styles/components/block.scss +0 -18
  268. package/src/styles/components/breadcrumbs.scss +0 -0
  269. package/src/styles/components/input.scss +0 -319
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const _commonjsHelpers = require("./_commonjsHelpers-3b53548e.js");
3
- const index = require("./index-05aa7cae.js");
3
+ const index = require("./index-a8dffc0c.js");
4
4
  require("jsonwebtoken");
5
5
  require("mongodb");
6
6
  const verifyUser = index.verifyUser;
@@ -1,5 +1,5 @@
1
1
  import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-83b1d755.mjs";
2
- import { v as verifyUser$1, a as verifyInvites$1, b as authJwt$1, c as verifySignUp$1, d as verifyCategory$1, s as server } from "./index-d5066b82.mjs";
2
+ import { v as verifyUser$1, a as verifyInvites$1, b as authJwt$1, c as verifySignUp$1, d as verifyCategory$1, s as server } from "./index-d769324d.mjs";
3
3
  import "jsonwebtoken";
4
4
  import "mongodb";
5
5
  const verifyUser = verifyUser$1;
@@ -6,8 +6,8 @@ require("bcryptjs");
6
6
  require("uuidv4");
7
7
  const require$$0 = require("mongoose");
8
8
  const require$$5 = require("@googlemaps/google-maps-services-js");
9
- const addMembersQuantity$1 = require("./addMembersQuantity-7147aa4a.js");
10
- require("mongodb");
9
+ const addMembersQuantity$1 = require("./addMembersQuantity-fb552ca0.js");
10
+ const require$$0$2 = require("mongodb");
11
11
  const controllerFactory$5 = (db) => {
12
12
  const Department = db.department;
13
13
  const readOne = (req, res) => {
@@ -72,7 +72,7 @@ const controllerFactory$5 = (db) => {
72
72
  };
73
73
  var departments_controller = controllerFactory$5;
74
74
  const jwt = require$$0$1;
75
- const ObjectId = require$$0.Types.ObjectId;
75
+ const ObjectId$1 = require$$0.Types.ObjectId;
76
76
  const { Client } = require$$5;
77
77
  const client = new Client({});
78
78
  const addUserStatusFields = addMembersQuantity$1.addUserStatusFields_1;
@@ -87,10 +87,10 @@ const controllerFactory$4 = (db) => {
87
87
  db.membership;
88
88
  db.user;
89
89
  db.role;
90
- console.log(req);
91
90
  const sortParam = req.query.sortParam || "numberOfProducts";
92
91
  const sortOrder = req.query.sortOrder || "desc";
93
92
  const sort = {
93
+ "numberOfProducts": -1,
94
94
  [sortParam]: sortOrder === "desc" ? -1 : 1,
95
95
  "_id": 1
96
96
  };
@@ -109,23 +109,30 @@ const controllerFactory$4 = (db) => {
109
109
  const [min, max] = priceRange.split("-").map(Number);
110
110
  return { "products.price": { $gte: min, $lte: max } };
111
111
  });
112
- console.log(req.query.postable);
112
+ let containConditions = [];
113
+ if (req.query.contain) {
114
+ containConditions = req.query.contain.map((property) => ({
115
+ [property]: { $exists: true, $not: { $size: 0 } }
116
+ }));
117
+ }
113
118
  const matchConditions = [
114
- ...req.query._id ? [{ _id: new ObjectId(req.query._id) }] : [],
115
- ...req.query.owner ? [{ owner: new ObjectId(req.query.owner) }] : [],
116
- ...req.query.member ? [{ "memberships.user": new ObjectId(req.query.member), "memberships.role": { $ne: "subscriber" } }] : [],
117
- ...req.query.subscriber ? [{ "memberships.user": new ObjectId(req.query.subscriber), "memberships.role": "subscriber" }] : [],
118
- ...req.query.postable ? [{ $or: [{ $and: [{ types: { $elemMatch: { $eq: "public" } } }, { "memberships.user": new ObjectId(req.query.postable) }] }, { $and: [{ types: { $elemMatch: { $in: ["exclusive", "hidden"] } } }, { "memberships.user": new ObjectId(req.query.postable) }, { "memberships.role": { $ne: "subscriber" } }] }] }] : [],
119
+ ...req.query._id ? [{ _id: new ObjectId$1(req.query._id) }] : [],
120
+ ...req.query.owner ? [{ owner: new ObjectId$1(req.query.owner) }] : [],
121
+ ...req.query.member ? [{ "memberships.user": new ObjectId$1(req.query.member), "memberships.role": { $nin: ["subscriber", "owner"] } }] : [],
122
+ ...req.query.subscriber ? [{ "memberships.user": new ObjectId$1(req.query.subscriber), "memberships.role": "subscriber" }] : [],
123
+ ...req.query.postable ? [{ $or: [{ $and: [{ types: { $elemMatch: { $eq: "public" } } }, { "memberships.user": new ObjectId$1(req.query.postable) }] }, { $and: [{ types: { $elemMatch: { $in: ["exclusive", "hidden"] } } }, { "memberships.user": new ObjectId$1(req.query.postable) }, { "memberships.role": { $ne: "subscriber" } }] }] }] : [],
119
124
  ...req.query.types ? [{ types: { $in: req.query.types } }] : [],
120
125
  // Если req.query.types - строка
121
126
  // to remove
122
- ...req.query.onlyuser ? [{ "memberships.user": new ObjectId(req.query.onlyuser) }] : [],
127
+ ...req.query.onlyuser ? [{ "memberships.user": new ObjectId$1(req.query.onlyuser) }] : [],
123
128
  ...categories.length > 0 ? [{ "products.category": { $in: categories } }] : [],
124
- ...delivery.length > 0 ? [{ "departments.delivery": { $all: delivery } }] : [],
125
- ...priceConditions.length > 0 ? [{ $or: priceConditions }] : []
129
+ ...delivery.length > 0 ? [{ "spots.delivery": { $all: delivery } }] : [],
130
+ ...priceConditions.length > 0 ? [{ $or: priceConditions }] : [],
131
+ ...req.query.contain ? containConditions : []
126
132
  ];
127
- let { location, address, city, state, country } = req.query;
128
- if (!location && address || city || state || country) {
133
+ let { location, address, locationRadius, city, state, country } = req.query;
134
+ let userLocation = { coordinates: [0, 0] };
135
+ if (!location && (address || city || state || country)) {
129
136
  let geoLocation;
130
137
  const searchString = [address, city, state, country].filter(Boolean).join(", ");
131
138
  try {
@@ -137,6 +144,11 @@ const controllerFactory$4 = (db) => {
137
144
  });
138
145
  if (geoResponse.data.results && geoResponse.data.results.length > 0) {
139
146
  geoLocation = geoResponse.data.results[0].geometry.location;
147
+ userLocation.coordinates = [
148
+ geoResponse.data.results[0].geometry.location.lng,
149
+ geoResponse.data.results[0].geometry.location.lat
150
+ ];
151
+ console.log(userLocation);
140
152
  } else {
141
153
  return res.status(400).send({ message: "Unable to geocode the provided location." });
142
154
  }
@@ -144,30 +156,56 @@ const controllerFactory$4 = (db) => {
144
156
  console.log(err);
145
157
  return res.status(500).send({ message: "Error occurred while geocoding." });
146
158
  }
147
- const radius = city ? 50 : state ? 100 : 500;
159
+ const radius = city ? 500 : state ? 1e3 : 5e3;
148
160
  matchConditions.push({
149
- "departments.location.coordinates": {
161
+ "spots.location.coordinates": {
150
162
  $geoWithin: {
151
163
  $centerSphere: [
152
- [geoLocation.lng, geoLocation.lat],
164
+ [parseFloat(geoLocation.lng), parseFloat(geoLocation.lat)],
153
165
  radius / 6378.1
154
166
  ]
155
167
  }
156
168
  }
157
169
  });
158
170
  }
171
+ const search = req.query.search;
172
+ if (search) {
173
+ const parts = search.split(".");
174
+ let regexPattern = "";
175
+ if (parts.length === 2) {
176
+ regexPattern = parts.map((part) => part.substr(0, part.length - 1) + ".{1}").join("\\.");
177
+ } else {
178
+ regexPattern = search.substr(0, search.length - 1) + ".{1}";
179
+ }
180
+ matchConditions.push({
181
+ $or: [
182
+ { "profile.name": { $regex: regexPattern, $options: "i" } },
183
+ { "products.name": { $regex: regexPattern, $options: "i" } }
184
+ ]
185
+ });
186
+ }
159
187
  if (location) {
160
- console.log("Location is " + location);
188
+ console.log(location);
161
189
  if (typeof location === "string") {
162
190
  location = JSON.parse(location);
163
191
  }
164
- let [lng, lat] = location.coordinates;
192
+ let lng;
193
+ let lat;
194
+ if (location.lng) {
195
+ lng = location.lng;
196
+ lat = location.lat;
197
+ userLocation.coordinates = [lng, lat];
198
+ } else {
199
+ lng = location.coordinates[0];
200
+ lat = location.coordinates[1];
201
+ userLocation.coordinates = [lng, lat];
202
+ }
165
203
  matchConditions.push({
166
- "departments.location.coordinates": {
204
+ "spots.location.coordinates": {
167
205
  $geoWithin: {
168
206
  $centerSphere: [
169
- [lng, lat],
170
- 20 / 6378.1
207
+ [parseFloat(lng), parseFloat(lat)],
208
+ (locationRadius || 50) / 6378.1
171
209
  ]
172
210
  }
173
211
  }
@@ -183,6 +221,14 @@ const controllerFactory$4 = (db) => {
183
221
  as: "products"
184
222
  }
185
223
  },
224
+ {
225
+ $lookup: {
226
+ from: "blogposts",
227
+ localField: "_id",
228
+ foreignField: "owner.target",
229
+ as: "blogposts"
230
+ }
231
+ },
186
232
  {
187
233
  $addFields: {
188
234
  numberOfProducts: { $size: "$products" }
@@ -204,6 +250,58 @@ const controllerFactory$4 = (db) => {
204
250
  as: "spots"
205
251
  }
206
252
  },
253
+ {
254
+ $addFields: {
255
+ spots: {
256
+ $map: {
257
+ input: "$spots",
258
+ as: "spot",
259
+ in: {
260
+ $mergeObjects: [
261
+ "$$spot",
262
+ {
263
+ distance: {
264
+ $function: {
265
+ body: `function(spotCoords, userCoords, isMiles) {
266
+ // The function remains the same
267
+ function toRad(x) {
268
+ return x * Math.PI / 180;
269
+ }
270
+ var lon1 = spotCoords[0];
271
+ var lat1 = spotCoords[1];
272
+ var lon2 = userCoords[0];
273
+ var lat2 = userCoords[1];
274
+ var R = 6371; // Radius of the Earth in km
275
+ if (isMiles) R = 3959; // Radius of the Earth in miles
276
+ var x1 = lat2 - lat1;
277
+ var dLat = toRad(x1);
278
+ var x2 = lon2 - lon1;
279
+ var dLon = toRad(x2);
280
+ var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
281
+ Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
282
+ Math.sin(dLon / 2) * Math.sin(dLon / 2);
283
+ var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
284
+ var d = R * c;
285
+ return d;
286
+ }`,
287
+ args: ["$$spot.location.coordinates", userLocation.coordinates, false],
288
+ // Use actual field names
289
+ lang: "js"
290
+ }
291
+ }
292
+ }
293
+ ]
294
+ }
295
+ }
296
+ }
297
+ }
298
+ },
299
+ {
300
+ $addFields: {
301
+ distance: { $min: "$spots.distance" }
302
+ // Add the minDistance field here
303
+ }
304
+ },
207
305
  {
208
306
  $lookup: {
209
307
  from: "memberships",
@@ -545,11 +643,12 @@ var department_model = (mongoose) => {
545
643
  const Department = mongoose.model("Department", departmentSchema);
546
644
  return Department;
547
645
  };
646
+ const { ObjectId } = require$$0$2;
548
647
  var organization_model = (mongoose) => {
549
648
  const OrganizationSchema = new mongoose.Schema({
550
649
  // Creator and owner of organizations
551
650
  owner: {
552
- type: mongoose.Schema.Types.ObjectId,
651
+ type: ObjectId,
553
652
  ref: "User",
554
653
  required: true
555
654
  },
@@ -586,7 +685,8 @@ var organization_model = (mongoose) => {
586
685
  telegram: String,
587
686
  twitter: String,
588
687
  facebook: String,
589
- instagram: String
688
+ instagram: String,
689
+ youtube: String
590
690
  },
591
691
  // departments
592
692
  structure: {
@@ -5,8 +5,8 @@ import "bcryptjs";
5
5
  import "uuidv4";
6
6
  import require$$0 from "mongoose";
7
7
  import require$$5 from "@googlemaps/google-maps-services-js";
8
- import { a as addUserStatusFields_1, b as addMembersQuantity_1 } from "./addMembersQuantity-eac999f0.mjs";
9
- import "mongodb";
8
+ import { a as addUserStatusFields_1, b as addMembersQuantity_1 } from "./addMembersQuantity-3505b6f3.mjs";
9
+ import require$$0$2 from "mongodb";
10
10
  const controllerFactory$5 = (db) => {
11
11
  const Department = db.department;
12
12
  const readOne = (req, res) => {
@@ -71,7 +71,7 @@ const controllerFactory$5 = (db) => {
71
71
  };
72
72
  var departments_controller = controllerFactory$5;
73
73
  const jwt = require$$0$1;
74
- const ObjectId = require$$0.Types.ObjectId;
74
+ const ObjectId$1 = require$$0.Types.ObjectId;
75
75
  const { Client } = require$$5;
76
76
  const client = new Client({});
77
77
  const addUserStatusFields = addUserStatusFields_1;
@@ -86,10 +86,10 @@ const controllerFactory$4 = (db) => {
86
86
  db.membership;
87
87
  db.user;
88
88
  db.role;
89
- console.log(req);
90
89
  const sortParam = req.query.sortParam || "numberOfProducts";
91
90
  const sortOrder = req.query.sortOrder || "desc";
92
91
  const sort = {
92
+ "numberOfProducts": -1,
93
93
  [sortParam]: sortOrder === "desc" ? -1 : 1,
94
94
  "_id": 1
95
95
  };
@@ -108,23 +108,30 @@ const controllerFactory$4 = (db) => {
108
108
  const [min, max] = priceRange.split("-").map(Number);
109
109
  return { "products.price": { $gte: min, $lte: max } };
110
110
  });
111
- console.log(req.query.postable);
111
+ let containConditions = [];
112
+ if (req.query.contain) {
113
+ containConditions = req.query.contain.map((property) => ({
114
+ [property]: { $exists: true, $not: { $size: 0 } }
115
+ }));
116
+ }
112
117
  const matchConditions = [
113
- ...req.query._id ? [{ _id: new ObjectId(req.query._id) }] : [],
114
- ...req.query.owner ? [{ owner: new ObjectId(req.query.owner) }] : [],
115
- ...req.query.member ? [{ "memberships.user": new ObjectId(req.query.member), "memberships.role": { $ne: "subscriber" } }] : [],
116
- ...req.query.subscriber ? [{ "memberships.user": new ObjectId(req.query.subscriber), "memberships.role": "subscriber" }] : [],
117
- ...req.query.postable ? [{ $or: [{ $and: [{ types: { $elemMatch: { $eq: "public" } } }, { "memberships.user": new ObjectId(req.query.postable) }] }, { $and: [{ types: { $elemMatch: { $in: ["exclusive", "hidden"] } } }, { "memberships.user": new ObjectId(req.query.postable) }, { "memberships.role": { $ne: "subscriber" } }] }] }] : [],
118
+ ...req.query._id ? [{ _id: new ObjectId$1(req.query._id) }] : [],
119
+ ...req.query.owner ? [{ owner: new ObjectId$1(req.query.owner) }] : [],
120
+ ...req.query.member ? [{ "memberships.user": new ObjectId$1(req.query.member), "memberships.role": { $nin: ["subscriber", "owner"] } }] : [],
121
+ ...req.query.subscriber ? [{ "memberships.user": new ObjectId$1(req.query.subscriber), "memberships.role": "subscriber" }] : [],
122
+ ...req.query.postable ? [{ $or: [{ $and: [{ types: { $elemMatch: { $eq: "public" } } }, { "memberships.user": new ObjectId$1(req.query.postable) }] }, { $and: [{ types: { $elemMatch: { $in: ["exclusive", "hidden"] } } }, { "memberships.user": new ObjectId$1(req.query.postable) }, { "memberships.role": { $ne: "subscriber" } }] }] }] : [],
118
123
  ...req.query.types ? [{ types: { $in: req.query.types } }] : [],
119
124
  // Если req.query.types - строка
120
125
  // to remove
121
- ...req.query.onlyuser ? [{ "memberships.user": new ObjectId(req.query.onlyuser) }] : [],
126
+ ...req.query.onlyuser ? [{ "memberships.user": new ObjectId$1(req.query.onlyuser) }] : [],
122
127
  ...categories.length > 0 ? [{ "products.category": { $in: categories } }] : [],
123
- ...delivery.length > 0 ? [{ "departments.delivery": { $all: delivery } }] : [],
124
- ...priceConditions.length > 0 ? [{ $or: priceConditions }] : []
128
+ ...delivery.length > 0 ? [{ "spots.delivery": { $all: delivery } }] : [],
129
+ ...priceConditions.length > 0 ? [{ $or: priceConditions }] : [],
130
+ ...req.query.contain ? containConditions : []
125
131
  ];
126
- let { location, address, city, state, country } = req.query;
127
- if (!location && address || city || state || country) {
132
+ let { location, address, locationRadius, city, state, country } = req.query;
133
+ let userLocation = { coordinates: [0, 0] };
134
+ if (!location && (address || city || state || country)) {
128
135
  let geoLocation;
129
136
  const searchString = [address, city, state, country].filter(Boolean).join(", ");
130
137
  try {
@@ -136,6 +143,11 @@ const controllerFactory$4 = (db) => {
136
143
  });
137
144
  if (geoResponse.data.results && geoResponse.data.results.length > 0) {
138
145
  geoLocation = geoResponse.data.results[0].geometry.location;
146
+ userLocation.coordinates = [
147
+ geoResponse.data.results[0].geometry.location.lng,
148
+ geoResponse.data.results[0].geometry.location.lat
149
+ ];
150
+ console.log(userLocation);
139
151
  } else {
140
152
  return res.status(400).send({ message: "Unable to geocode the provided location." });
141
153
  }
@@ -143,30 +155,56 @@ const controllerFactory$4 = (db) => {
143
155
  console.log(err);
144
156
  return res.status(500).send({ message: "Error occurred while geocoding." });
145
157
  }
146
- const radius = city ? 50 : state ? 100 : 500;
158
+ const radius = city ? 500 : state ? 1e3 : 5e3;
147
159
  matchConditions.push({
148
- "departments.location.coordinates": {
160
+ "spots.location.coordinates": {
149
161
  $geoWithin: {
150
162
  $centerSphere: [
151
- [geoLocation.lng, geoLocation.lat],
163
+ [parseFloat(geoLocation.lng), parseFloat(geoLocation.lat)],
152
164
  radius / 6378.1
153
165
  ]
154
166
  }
155
167
  }
156
168
  });
157
169
  }
170
+ const search = req.query.search;
171
+ if (search) {
172
+ const parts = search.split(".");
173
+ let regexPattern = "";
174
+ if (parts.length === 2) {
175
+ regexPattern = parts.map((part) => part.substr(0, part.length - 1) + ".{1}").join("\\.");
176
+ } else {
177
+ regexPattern = search.substr(0, search.length - 1) + ".{1}";
178
+ }
179
+ matchConditions.push({
180
+ $or: [
181
+ { "profile.name": { $regex: regexPattern, $options: "i" } },
182
+ { "products.name": { $regex: regexPattern, $options: "i" } }
183
+ ]
184
+ });
185
+ }
158
186
  if (location) {
159
- console.log("Location is " + location);
187
+ console.log(location);
160
188
  if (typeof location === "string") {
161
189
  location = JSON.parse(location);
162
190
  }
163
- let [lng, lat] = location.coordinates;
191
+ let lng;
192
+ let lat;
193
+ if (location.lng) {
194
+ lng = location.lng;
195
+ lat = location.lat;
196
+ userLocation.coordinates = [lng, lat];
197
+ } else {
198
+ lng = location.coordinates[0];
199
+ lat = location.coordinates[1];
200
+ userLocation.coordinates = [lng, lat];
201
+ }
164
202
  matchConditions.push({
165
- "departments.location.coordinates": {
203
+ "spots.location.coordinates": {
166
204
  $geoWithin: {
167
205
  $centerSphere: [
168
- [lng, lat],
169
- 20 / 6378.1
206
+ [parseFloat(lng), parseFloat(lat)],
207
+ (locationRadius || 50) / 6378.1
170
208
  ]
171
209
  }
172
210
  }
@@ -182,6 +220,14 @@ const controllerFactory$4 = (db) => {
182
220
  as: "products"
183
221
  }
184
222
  },
223
+ {
224
+ $lookup: {
225
+ from: "blogposts",
226
+ localField: "_id",
227
+ foreignField: "owner.target",
228
+ as: "blogposts"
229
+ }
230
+ },
185
231
  {
186
232
  $addFields: {
187
233
  numberOfProducts: { $size: "$products" }
@@ -203,6 +249,58 @@ const controllerFactory$4 = (db) => {
203
249
  as: "spots"
204
250
  }
205
251
  },
252
+ {
253
+ $addFields: {
254
+ spots: {
255
+ $map: {
256
+ input: "$spots",
257
+ as: "spot",
258
+ in: {
259
+ $mergeObjects: [
260
+ "$$spot",
261
+ {
262
+ distance: {
263
+ $function: {
264
+ body: `function(spotCoords, userCoords, isMiles) {
265
+ // The function remains the same
266
+ function toRad(x) {
267
+ return x * Math.PI / 180;
268
+ }
269
+ var lon1 = spotCoords[0];
270
+ var lat1 = spotCoords[1];
271
+ var lon2 = userCoords[0];
272
+ var lat2 = userCoords[1];
273
+ var R = 6371; // Radius of the Earth in km
274
+ if (isMiles) R = 3959; // Radius of the Earth in miles
275
+ var x1 = lat2 - lat1;
276
+ var dLat = toRad(x1);
277
+ var x2 = lon2 - lon1;
278
+ var dLon = toRad(x2);
279
+ var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
280
+ Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
281
+ Math.sin(dLon / 2) * Math.sin(dLon / 2);
282
+ var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
283
+ var d = R * c;
284
+ return d;
285
+ }`,
286
+ args: ["$$spot.location.coordinates", userLocation.coordinates, false],
287
+ // Use actual field names
288
+ lang: "js"
289
+ }
290
+ }
291
+ }
292
+ ]
293
+ }
294
+ }
295
+ }
296
+ }
297
+ },
298
+ {
299
+ $addFields: {
300
+ distance: { $min: "$spots.distance" }
301
+ // Add the minDistance field here
302
+ }
303
+ },
206
304
  {
207
305
  $lookup: {
208
306
  from: "memberships",
@@ -544,11 +642,12 @@ var department_model = (mongoose) => {
544
642
  const Department = mongoose.model("Department", departmentSchema);
545
643
  return Department;
546
644
  };
645
+ const { ObjectId } = require$$0$2;
547
646
  var organization_model = (mongoose) => {
548
647
  const OrganizationSchema = new mongoose.Schema({
549
648
  // Creator and owner of organizations
550
649
  owner: {
551
- type: mongoose.Schema.Types.ObjectId,
650
+ type: ObjectId,
552
651
  ref: "User",
553
652
  required: true
554
653
  },
@@ -585,7 +684,8 @@ var organization_model = (mongoose) => {
585
684
  telegram: String,
586
685
  twitter: String,
587
686
  facebook: String,
588
- instagram: String
687
+ instagram: String,
688
+ youtube: String
589
689
  },
590
690
  // departments
591
691
  structure: {