itlab-internal-services 2.16.8 → 2.16.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/classes/document/likeable-document.class.d.ts +2 -2
  2. package/dist/classes/document/likeable-document.class.js +6 -3
  3. package/dist/classes/document/viewable-document.class.d.ts +2 -2
  4. package/dist/classes/document/viewable-document.class.js +6 -3
  5. package/dist/classes/entity-map.class.d.ts +1 -1
  6. package/dist/classes/entity-map.class.js +2 -0
  7. package/dist/classes/fetch-options/base-options.class.d.ts +9 -0
  8. package/dist/classes/fetch-options/comments-options.class.d.ts +3 -0
  9. package/dist/classes/fetch-options/comments-options.class.js +1 -1
  10. package/dist/classes/fetch-options/content-options.class.d.ts +3 -0
  11. package/dist/classes/fetch-options/content-options.class.js +1 -1
  12. package/dist/classes/fetch-options/drafted-options.class.d.ts +5 -1
  13. package/dist/classes/fetch-options/drafted-options.class.js +3 -2
  14. package/dist/classes/fetch-options/liked-by-options.class.d.ts +4 -0
  15. package/dist/classes/fetch-options/liked-by-options.class.js +3 -2
  16. package/dist/classes/fetch-options/timestamps-options.class.d.ts +4 -1
  17. package/dist/classes/fetch-options/timestamps-options.class.js +1 -1
  18. package/dist/classes/fetch-options/viewed-by-options.class.d.ts +7 -2
  19. package/dist/classes/fetch-options/viewed-by-options.class.js +15 -4
  20. package/dist/hub-resource.enum.d.ts +10 -10
  21. package/dist/hub-resource.enum.js +16 -16
  22. package/dist/modules/comments/comments.controller.js +1 -1
  23. package/dist/modules/comments/comments.service.d.ts +5 -5
  24. package/dist/modules/comments/comments.service.js +21 -13
  25. package/dist/modules/like/like.service.d.ts +1 -1
  26. package/dist/modules/like/like.service.js +7 -7
  27. package/dist/modules/merge/merge-module-options.interface.d.ts +2 -2
  28. package/dist/modules/merge/merge.controller.d.ts +3 -3
  29. package/dist/modules/merge/merge.service.interface.d.ts +1 -1
  30. package/dist/modules/services/base-http.service.d.ts +44 -40
  31. package/dist/modules/services/base-http.service.js +72 -47
  32. package/dist/modules/services/base-urls.d.ts +22 -19
  33. package/dist/modules/services/base-urls.js +38 -19
  34. package/dist/modules/services/providers/accounts/accounts.service.d.ts +99 -0
  35. package/dist/modules/services/providers/accounts/accounts.service.js +154 -0
  36. package/dist/modules/services/providers/accounts/fetch-account-options.dto.v1.type.d.ts +29 -0
  37. package/dist/modules/services/providers/accounts/index.d.ts +2 -0
  38. package/dist/modules/services/providers/accounts/index.js +18 -0
  39. package/dist/modules/services/providers/books/books.service.d.ts +49 -0
  40. package/dist/modules/services/providers/books/books.service.js +79 -0
  41. package/dist/modules/services/providers/books/fetch-book-options.dto.v1.type.d.ts +27 -0
  42. package/dist/modules/services/providers/books/index.d.ts +2 -0
  43. package/dist/modules/services/providers/{notification → books}/index.js +2 -2
  44. package/dist/modules/services/providers/changelog/changelog.service.d.ts +62 -0
  45. package/dist/modules/services/providers/changelog/changelog.service.js +79 -0
  46. package/dist/modules/services/providers/changelog/fetch-change-options.dto.v1.type.d.ts +15 -0
  47. package/dist/modules/services/providers/changelog/index.d.ts +2 -0
  48. package/dist/modules/services/providers/changelog/index.js +18 -0
  49. package/dist/modules/services/providers/conflicts/conflicts.service.d.ts +59 -0
  50. package/dist/modules/services/providers/conflicts/conflicts.service.js +79 -0
  51. package/dist/modules/services/providers/conflicts/fetch-conflict-options.dto.v1.type.d.ts +18 -0
  52. package/dist/modules/services/providers/conflicts/index.d.ts +2 -0
  53. package/dist/modules/services/providers/conflicts/index.js +18 -0
  54. package/dist/modules/services/providers/content/content-return-types.d.ts +3 -2
  55. package/dist/modules/services/providers/content/content-return-types.js +8 -2
  56. package/dist/modules/services/providers/content/content.service.d.ts +49 -7
  57. package/dist/modules/services/providers/content/content.service.js +61 -19
  58. package/dist/modules/services/providers/content/fetch-content-options.dto.v1.type.d.ts +15 -0
  59. package/dist/modules/services/providers/content/index.d.ts +1 -0
  60. package/dist/modules/services/providers/content/index.js +1 -0
  61. package/dist/modules/services/providers/demo-hive/demo-hive.service.d.ts +49 -0
  62. package/dist/modules/services/providers/demo-hive/demo-hive.service.js +79 -0
  63. package/dist/modules/services/providers/demo-hive/fetch-demo-options.dto.v1.type.d.ts +16 -0
  64. package/dist/modules/services/providers/demo-hive/index.d.ts +2 -0
  65. package/dist/modules/services/providers/demo-hive/index.js +18 -0
  66. package/dist/modules/services/providers/events/events.service.d.ts +49 -0
  67. package/dist/modules/services/providers/events/events.service.js +79 -0
  68. package/dist/modules/services/providers/events/fetch-event-options.dto.v1.type.d.ts +27 -0
  69. package/dist/modules/services/providers/events/index.d.ts +2 -0
  70. package/dist/modules/services/providers/events/index.js +18 -0
  71. package/dist/modules/services/providers/files/crop-image-options.dto.v1.type.d.ts +13 -0
  72. package/dist/modules/services/providers/files/fetch-file-options.dto.v1.type.d.ts +21 -0
  73. package/dist/modules/services/providers/files/fetch-folder-options.dto.v1.type.d.ts +15 -0
  74. package/dist/modules/services/providers/files/files.service.d.ts +106 -0
  75. package/dist/modules/services/providers/files/files.service.js +146 -0
  76. package/dist/modules/services/providers/files/index.d.ts +4 -0
  77. package/dist/modules/services/providers/files/index.js +20 -0
  78. package/dist/modules/services/providers/hackschool/fetch-course-options.dto.v1.type.d.ts +15 -0
  79. package/dist/modules/services/providers/hackschool/fetch-doc-options.dto.v1.type.d.ts +17 -0
  80. package/dist/modules/services/providers/hackschool/fetch-thread-options.dto.v1.type.d.ts +18 -0
  81. package/dist/modules/services/providers/hackschool/hackschool.service.d.ts +93 -0
  82. package/dist/modules/services/providers/hackschool/hackschool.service.js +135 -0
  83. package/dist/modules/services/providers/hackschool/index.d.ts +2 -0
  84. package/dist/modules/services/providers/hackschool/index.js +18 -0
  85. package/dist/modules/services/providers/ideas.service.js +1 -1
  86. package/dist/modules/services/providers/index.d.ts +15 -12
  87. package/dist/modules/services/providers/index.js +17 -12
  88. package/dist/modules/services/providers/lunch-roulette.service.js +1 -1
  89. package/dist/modules/services/providers/mail/dtos/{auth-login-token-mail.dto.d.ts → auth-login-token-mail.dto.v1.d.ts} +1 -1
  90. package/dist/modules/services/providers/mail/dtos/{auth-password-reset-mail.dto.d.ts → auth-password-reset-mail.dto.v1.d.ts} +1 -1
  91. package/dist/modules/services/providers/mail/dtos/{event-cancel-mail.dto.d.ts → event-cancel-mail.dto.v1.d.ts} +1 -1
  92. package/dist/modules/services/providers/mail/dtos/{event-invite-mail.dto.d.ts → event-invite-mail.dto.v1.d.ts} +1 -1
  93. package/dist/modules/services/providers/mail/dtos/{idea-status-updated-mail.dto.d.ts → idea-status-updated-mail.dto.v1.d.ts} +1 -1
  94. package/dist/modules/services/providers/mail/dtos/{idea-submitted-mail.dto.d.ts → idea-submitted-mail.dto.v1.d.ts} +1 -1
  95. package/dist/modules/services/providers/mail/dtos/idea-submitted-mail.dto.v1.js +2 -0
  96. package/dist/modules/services/providers/mail/dtos/index.d.ts +14 -14
  97. package/dist/modules/services/providers/mail/dtos/index.js +14 -14
  98. package/dist/modules/services/providers/mail/dtos/{lunch-roulette-cancel-mail.dto.d.ts → lunch-roulette-cancel-mail.dto.v1.d.ts} +1 -1
  99. package/dist/modules/services/providers/mail/dtos/lunch-roulette-cancel-mail.dto.v1.js +2 -0
  100. package/dist/modules/services/providers/mail/dtos/{lunch-roulette-matched-mail.dto.d.ts → lunch-roulette-matched-mail.dto.v1.d.ts} +1 -1
  101. package/dist/modules/services/providers/mail/dtos/lunch-roulette-matched-mail.dto.v1.js +2 -0
  102. package/dist/modules/services/providers/mail/dtos/{lunch-roulette-submitted-mail.dto.d.ts → lunch-roulette-submitted-mail.dto.v1.d.ts} +1 -1
  103. package/dist/modules/services/providers/mail/dtos/lunch-roulette-submitted-mail.dto.v1.js +2 -0
  104. package/dist/modules/services/providers/mail/dtos/{lunch-roulette-unmatched-mail.dto.d.ts → lunch-roulette-unmatched-mail.dto.v1.d.ts} +1 -1
  105. package/dist/modules/services/providers/mail/dtos/lunch-roulette-unmatched-mail.dto.v1.js +2 -0
  106. package/dist/modules/services/providers/mail/dtos/{newsletter-issue-mail.dto.d.ts → newsletter-issue-mail.dto.v1.d.ts} +1 -1
  107. package/dist/modules/services/providers/mail/dtos/newsletter-issue-mail.dto.v1.js +2 -0
  108. package/dist/modules/services/providers/mail/dtos/{newsletter-subscribed-mail.dto.d.ts → newsletter-subscribed-mail.dto.v1.d.ts} +1 -1
  109. package/dist/modules/services/providers/mail/dtos/newsletter-subscribed-mail.dto.v1.js +2 -0
  110. package/dist/modules/services/providers/mail/dtos/{newsletter-unsubscribed-mail.dto.d.ts → newsletter-unsubscribed-mail.dto.v1.d.ts} +1 -1
  111. package/dist/modules/services/providers/mail/dtos/newsletter-unsubscribed-mail.dto.v1.js +2 -0
  112. package/dist/modules/services/providers/mail/dtos/{notification-mail.dto.d.ts → notification-mail.dto.v1.d.ts} +1 -1
  113. package/dist/modules/services/providers/mail/dtos/notification-mail.dto.v1.js +2 -0
  114. package/dist/modules/services/providers/mail/mail-types.d.ts +17 -16
  115. package/dist/modules/services/providers/mail/mail-types.js +31 -14
  116. package/dist/modules/services/providers/mail/mail.service.d.ts +30 -31
  117. package/dist/modules/services/providers/mail/mail.service.js +49 -50
  118. package/dist/modules/services/providers/mail/models/mail-recipient.model.d.ts +2 -0
  119. package/dist/modules/services/providers/mail/models/mail-recipient.model.js +3 -0
  120. package/dist/modules/services/providers/newsletter/fetch-issue-options.dto.v1.type.d.ts +16 -0
  121. package/dist/modules/services/providers/newsletter/fetch-issue-options.dto.v1.type.js +2 -0
  122. package/dist/modules/services/providers/newsletter/index.d.ts +2 -0
  123. package/dist/modules/services/providers/newsletter/index.js +18 -0
  124. package/dist/modules/services/providers/newsletter/newsletter.service.d.ts +49 -0
  125. package/dist/modules/services/providers/newsletter/newsletter.service.js +79 -0
  126. package/dist/modules/services/providers/newsroom/fetch-news-options.dto.v1.type.d.ts +20 -0
  127. package/dist/modules/services/providers/newsroom/fetch-news-options.dto.v1.type.js +2 -0
  128. package/dist/modules/services/providers/newsroom/index.d.ts +2 -0
  129. package/dist/modules/services/providers/newsroom/index.js +18 -0
  130. package/dist/modules/services/providers/newsroom/newsroom.service.d.ts +49 -0
  131. package/dist/modules/services/providers/newsroom/newsroom.service.js +79 -0
  132. package/dist/modules/services/providers/notifications/dtos/index.d.ts +1 -0
  133. package/dist/modules/services/providers/{notification → notifications}/dtos/index.js +1 -1
  134. package/dist/modules/services/providers/{notification/dtos/schedule-notification.dto.d.ts → notifications/dtos/schedule-notification.dto.v1.d.ts} +2 -10
  135. package/dist/modules/services/providers/notifications/dtos/schedule-notification.dto.v1.js +2 -0
  136. package/dist/modules/services/providers/notifications/fetch-notification-options.dto.v1.type.d.ts +19 -0
  137. package/dist/modules/services/providers/notifications/fetch-notification-options.dto.v1.type.js +2 -0
  138. package/dist/modules/services/providers/notifications/index.d.ts +3 -0
  139. package/dist/modules/services/providers/notifications/index.js +19 -0
  140. package/dist/modules/services/providers/notifications/notifications.service-definition.d.ts +1 -0
  141. package/dist/modules/services/providers/notifications/notifications.service-definition.js +4 -0
  142. package/dist/modules/services/providers/{notification/notification.service.d.ts → notifications/notifications.service.d.ts} +41 -5
  143. package/dist/modules/services/providers/{notification/notification.service.js → notifications/notifications.service.js} +52 -26
  144. package/dist/modules/services/providers/pass/dtos/{create-guild-member-pass.dto.d.ts → create-guild-member-pass.dto.v1.d.ts} +2 -2
  145. package/dist/modules/services/providers/pass/dtos/create-guild-member-pass.dto.v1.js +2 -0
  146. package/dist/modules/services/providers/pass/dtos/{create-team-member-pass.dto.d.ts → create-team-member-pass.dto.v1.d.ts} +2 -2
  147. package/dist/modules/services/providers/pass/dtos/create-team-member-pass.dto.v1.js +2 -0
  148. package/dist/modules/services/providers/pass/dtos/index.d.ts +2 -2
  149. package/dist/modules/services/providers/pass/dtos/index.js +2 -2
  150. package/dist/modules/services/providers/pass/pass-types.d.ts +3 -3
  151. package/dist/modules/services/providers/pass/pass.service.d.ts +14 -14
  152. package/dist/modules/services/providers/pass/pass.service.js +28 -28
  153. package/dist/modules/services/providers/podcasts/fetch-episode-options.dto.v1.type.d.ts +19 -0
  154. package/dist/modules/services/providers/podcasts/fetch-episode-options.dto.v1.type.js +2 -0
  155. package/dist/modules/services/providers/podcasts/index.d.ts +2 -0
  156. package/dist/modules/services/providers/podcasts/index.js +18 -0
  157. package/dist/modules/services/providers/podcasts/podcasts.service.d.ts +49 -0
  158. package/dist/modules/services/providers/podcasts/podcasts.service.js +79 -0
  159. package/dist/modules/services/providers/quick-links/fetch-link-options.dto.v1.type.d.ts +14 -0
  160. package/dist/modules/services/providers/quick-links/fetch-link-options.dto.v1.type.js +2 -0
  161. package/dist/modules/services/providers/quick-links/index.d.ts +2 -0
  162. package/dist/modules/services/providers/quick-links/index.js +18 -0
  163. package/dist/modules/services/providers/quick-links/quick-links.service.d.ts +61 -0
  164. package/dist/modules/services/providers/quick-links/quick-links.service.js +79 -0
  165. package/dist/modules/services/providers/search/dtos/{index-search-document.dto.d.ts → index-document.dto.v1.d.ts} +2 -2
  166. package/dist/modules/services/providers/search/dtos/index-document.dto.v1.js +2 -0
  167. package/dist/modules/services/providers/search/dtos/index.d.ts +1 -1
  168. package/dist/modules/services/providers/search/dtos/index.js +1 -1
  169. package/dist/modules/services/providers/search/search.service.d.ts +6 -6
  170. package/dist/modules/services/providers/search/search.service.js +14 -17
  171. package/dist/modules/services/providers/team/fetch-member-options.dto.v1.type.d.ts +11 -0
  172. package/dist/modules/services/providers/team/fetch-member-options.dto.v1.type.js +2 -0
  173. package/dist/modules/services/providers/team/index.d.ts +2 -0
  174. package/dist/modules/services/providers/team/index.js +18 -0
  175. package/dist/modules/services/providers/team/team.service.d.ts +49 -0
  176. package/dist/modules/services/providers/team/team.service.js +79 -0
  177. package/dist/modules/services/providers/tech-radar/fetch-blip-options.dto.v1.type.d.ts +19 -0
  178. package/dist/modules/services/providers/tech-radar/fetch-blip-options.dto.v1.type.js +2 -0
  179. package/dist/modules/services/providers/tech-radar/fetch-edition-options.dto.v1.type copy.d.ts +15 -0
  180. package/dist/modules/services/providers/tech-radar/fetch-edition-options.dto.v1.type copy.js +2 -0
  181. package/dist/modules/services/providers/tech-radar/index.d.ts +3 -0
  182. package/dist/modules/services/providers/tech-radar/index.js +19 -0
  183. package/dist/modules/services/providers/tech-radar/tech-radar.service.d.ts +71 -0
  184. package/dist/modules/services/providers/tech-radar/tech-radar.service.js +107 -0
  185. package/dist/modules/services/services.module.js +6 -3
  186. package/dist/pipes/params/hub-id.pipe.js +6 -3
  187. package/dist/types/likeable.type.d.ts +2 -2
  188. package/dist/types/viewable.type.d.ts +2 -2
  189. package/package.json +1 -1
  190. package/dist/modules/services/providers/accounts.service.d.ts +0 -67
  191. package/dist/modules/services/providers/accounts.service.js +0 -131
  192. package/dist/modules/services/providers/books.service.d.ts +0 -29
  193. package/dist/modules/services/providers/books.service.js +0 -55
  194. package/dist/modules/services/providers/changelog.service.d.ts +0 -18
  195. package/dist/modules/services/providers/changelog.service.js +0 -43
  196. package/dist/modules/services/providers/demo-hive.service.d.ts +0 -29
  197. package/dist/modules/services/providers/demo-hive.service.js +0 -55
  198. package/dist/modules/services/providers/events.service.d.ts +0 -29
  199. package/dist/modules/services/providers/events.service.js +0 -55
  200. package/dist/modules/services/providers/hackschool.service.d.ts +0 -49
  201. package/dist/modules/services/providers/hackschool.service.js +0 -79
  202. package/dist/modules/services/providers/newletter.service.d.ts +0 -29
  203. package/dist/modules/services/providers/newletter.service.js +0 -55
  204. package/dist/modules/services/providers/newsroom.service.d.ts +0 -47
  205. package/dist/modules/services/providers/newsroom.service.js +0 -73
  206. package/dist/modules/services/providers/notification/dtos/index.d.ts +0 -1
  207. package/dist/modules/services/providers/notification/index.d.ts +0 -2
  208. package/dist/modules/services/providers/notification/notification.service-definition.d.ts +0 -1
  209. package/dist/modules/services/providers/notification/notification.service-definition.js +0 -4
  210. package/dist/modules/services/providers/podcasts.service.d.ts +0 -29
  211. package/dist/modules/services/providers/podcasts.service.js +0 -55
  212. package/dist/modules/services/providers/team.service.d.ts +0 -29
  213. package/dist/modules/services/providers/team.service.js +0 -55
  214. package/dist/modules/services/providers/tech-radar.service.d.ts +0 -39
  215. package/dist/modules/services/providers/tech-radar.service.js +0 -67
  216. /package/dist/modules/services/providers/{mail/dtos/auth-login-token-mail.dto.js → accounts/fetch-account-options.dto.v1.type.js} +0 -0
  217. /package/dist/modules/services/providers/{mail/dtos/auth-password-reset-mail.dto.js → books/fetch-book-options.dto.v1.type.js} +0 -0
  218. /package/dist/modules/services/providers/{mail/dtos/event-cancel-mail.dto.js → changelog/fetch-change-options.dto.v1.type.js} +0 -0
  219. /package/dist/modules/services/providers/{mail/dtos/event-invite-mail.dto.js → conflicts/fetch-conflict-options.dto.v1.type.js} +0 -0
  220. /package/dist/modules/services/providers/{mail/dtos/idea-status-updated-mail.dto.js → content/fetch-content-options.dto.v1.type.js} +0 -0
  221. /package/dist/modules/services/providers/{mail/dtos/idea-submitted-mail.dto.js → demo-hive/fetch-demo-options.dto.v1.type.js} +0 -0
  222. /package/dist/modules/services/providers/{mail/dtos/lunch-roulette-cancel-mail.dto.js → events/fetch-event-options.dto.v1.type.js} +0 -0
  223. /package/dist/modules/services/providers/{mail/dtos/lunch-roulette-matched-mail.dto.js → files/crop-image-options.dto.v1.type.js} +0 -0
  224. /package/dist/modules/services/providers/{mail/dtos/lunch-roulette-submitted-mail.dto.js → files/fetch-file-options.dto.v1.type.js} +0 -0
  225. /package/dist/modules/services/providers/{mail/dtos/lunch-roulette-unmatched-mail.dto.js → files/fetch-folder-options.dto.v1.type.js} +0 -0
  226. /package/dist/modules/services/providers/{mail/dtos/newsletter-issue-mail.dto.js → hackschool/fetch-course-options.dto.v1.type.js} +0 -0
  227. /package/dist/modules/services/providers/{mail/dtos/newsletter-subscribed-mail.dto.js → hackschool/fetch-doc-options.dto.v1.type.js} +0 -0
  228. /package/dist/modules/services/providers/{mail/dtos/newsletter-unsubscribed-mail.dto.js → hackschool/fetch-thread-options.dto.v1.type.js} +0 -0
  229. /package/dist/modules/services/providers/mail/dtos/{notification-mail.dto.js → auth-login-token-mail.dto.v1.js} +0 -0
  230. /package/dist/modules/services/providers/{notification/dtos/schedule-notification.dto.js → mail/dtos/auth-password-reset-mail.dto.v1.js} +0 -0
  231. /package/dist/modules/services/providers/{pass/dtos/create-guild-member-pass.dto.js → mail/dtos/event-cancel-mail.dto.v1.js} +0 -0
  232. /package/dist/modules/services/providers/{pass/dtos/create-team-member-pass.dto.js → mail/dtos/event-invite-mail.dto.v1.js} +0 -0
  233. /package/dist/modules/services/providers/{search/dtos/index-search-document.dto.js → mail/dtos/idea-status-updated-mail.dto.v1.js} +0 -0
@@ -0,0 +1,49 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { LabEvent } from 'itlab-functions';
3
+ import { AuthenticationModuleOptions } from '../../../authentication';
4
+ import { BaseHttpService } from '../../base-http.service';
5
+ import { FetchEventOptionsDtoV1 } from './fetch-event-options.dto.v1.type';
6
+ /**
7
+ * EventsService
8
+ *
9
+ * Service client responsible for interacting with the Events microservice.
10
+ * Extends `BaseHttpService` to inherit:
11
+ * - Environment-sensitive URL resolution (internal vs. external).
12
+ * - Secure inter-service authentication.
13
+ * - Structured logging for traceability of outbound requests.
14
+ *
15
+ * Why this pattern?
16
+ * - Ensures all outbound calls follow a unified configuration and logging structure.
17
+ * - Promotes strong typing and maintainable HTTP logic.
18
+ * - Makes service interactions predictable and debuggable across environments.
19
+ */
20
+ export declare class EventsService extends BaseHttpService {
21
+ /**
22
+ * Constructs an Events service client instance.
23
+ *
24
+ * @param {AuthenticationModuleOptions} authenticationOptions - Injected authentication configuration.
25
+ * @param {ConfigService} configService - NestJS ConfigService for environment detection.
26
+ */
27
+ constructor(authenticationOptions: AuthenticationModuleOptions, configService: ConfigService);
28
+ /**
29
+ * Retrieves a single event entry by its MongoDB identifier.
30
+ *
31
+ * This method gracefully handles downstream failures by logging
32
+ * and returning `undefined` instead of throwing.
33
+ *
34
+ * @param {string} eventId - Unique MongoDB identifier of the event.
35
+ * @param {FetchEventOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
36
+ * @returns {Promise<LabEvent | undefined>} Resolves to an Event or `undefined` on failure.
37
+ */
38
+ fetchEventV1(eventId: string, options?: FetchEventOptionsDtoV1): Promise<LabEvent | undefined>;
39
+ /**
40
+ * Retrieves a collection of event entries.
41
+ *
42
+ * Useful for batch lookups or paginated listings.
43
+ * Returns an empty array if the downstream service call fails.
44
+ *
45
+ * @param {FetchEventOptionsDtoV1} [options] - Optional filter options for narrowing results.
46
+ * @returns {Promise<LabEvent[]>} Resolves to a list of events, or an empty array if none found.
47
+ */
48
+ fetchEventCollectionV1(options?: FetchEventOptionsDtoV1): Promise<LabEvent[]>;
49
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.EventsService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
18
+ const authentication_1 = require("../../../authentication");
19
+ const base_http_service_1 = require("../../base-http.service");
20
+ const base_urls_1 = require("../../base-urls");
21
+ /**
22
+ * EventsService
23
+ *
24
+ * Service client responsible for interacting with the Events microservice.
25
+ * Extends `BaseHttpService` to inherit:
26
+ * - Environment-sensitive URL resolution (internal vs. external).
27
+ * - Secure inter-service authentication.
28
+ * - Structured logging for traceability of outbound requests.
29
+ *
30
+ * Why this pattern?
31
+ * - Ensures all outbound calls follow a unified configuration and logging structure.
32
+ * - Promotes strong typing and maintainable HTTP logic.
33
+ * - Makes service interactions predictable and debuggable across environments.
34
+ */
35
+ let EventsService = class EventsService extends base_http_service_1.BaseHttpService {
36
+ /**
37
+ * Constructs an Events service client instance.
38
+ *
39
+ * @param {AuthenticationModuleOptions} authenticationOptions - Injected authentication configuration.
40
+ * @param {ConfigService} configService - NestJS ConfigService for environment detection.
41
+ */
42
+ constructor(authenticationOptions, configService) {
43
+ super('Events', base_urls_1.BaseUrls.eventsService, authenticationOptions, configService);
44
+ }
45
+ // ─────────────────────────────────────────────────────────────
46
+ // Event Resource Methods
47
+ // ─────────────────────────────────────────────────────────────
48
+ /**
49
+ * Retrieves a single event entry by its MongoDB identifier.
50
+ *
51
+ * This method gracefully handles downstream failures by logging
52
+ * and returning `undefined` instead of throwing.
53
+ *
54
+ * @param {string} eventId - Unique MongoDB identifier of the event.
55
+ * @param {FetchEventOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
56
+ * @returns {Promise<LabEvent | undefined>} Resolves to an Event or `undefined` on failure.
57
+ */
58
+ async fetchEventV1(eventId, options) {
59
+ return this.fetchResource(`v1/internal/event/${eventId}`, { params: options });
60
+ }
61
+ /**
62
+ * Retrieves a collection of event entries.
63
+ *
64
+ * Useful for batch lookups or paginated listings.
65
+ * Returns an empty array if the downstream service call fails.
66
+ *
67
+ * @param {FetchEventOptionsDtoV1} [options] - Optional filter options for narrowing results.
68
+ * @returns {Promise<LabEvent[]>} Resolves to a list of events, or an empty array if none found.
69
+ */
70
+ async fetchEventCollectionV1(options) {
71
+ return this.fetchResourceCollection(`v1/internal/events`, { params: options });
72
+ }
73
+ };
74
+ exports.EventsService = EventsService;
75
+ exports.EventsService = EventsService = __decorate([
76
+ (0, common_1.Injectable)(),
77
+ __param(0, (0, authentication_1.InjectAuthenticationOptions)()),
78
+ __metadata("design:paramtypes", [Object, config_1.ConfigService])
79
+ ], EventsService);
@@ -0,0 +1,27 @@
1
+ import { BaseFetchOptions, CommentsFetchOptions, ContentFetchOptions, DraftedFetchOptions, LikedByFetchOptions, TimestampsFetchOptions, ViewedByFetchOptions } from '../../../../classes';
2
+ /**
3
+ * FetchEventOptionsDtoV1
4
+ *
5
+ * Data Transfer Object for querying event or user collections.
6
+ * Inherits timestamp filtering fields and extends them with
7
+ * event-specific query parameters.
8
+ */
9
+ export type FetchEventOptionsDtoV1 = BaseFetchOptions & TimestampsFetchOptions & DraftedFetchOptions & ContentFetchOptions & ViewedByFetchOptions & LikedByFetchOptions & CommentsFetchOptions & {
10
+ includeAttendedBy?: boolean;
11
+ includeAttendedByIds?: boolean;
12
+ includeSpeakers?: boolean;
13
+ topic?: string;
14
+ topics?: string[];
15
+ mode?: string;
16
+ modes?: string[];
17
+ speakerId?: string;
18
+ speakerIds?: string[];
19
+ series?: string;
20
+ seriesIn?: string[];
21
+ year?: number;
22
+ month?: number;
23
+ startAtMin?: number;
24
+ startAtMax?: number;
25
+ endAtMin?: number;
26
+ endAtMax?: number;
27
+ };
@@ -0,0 +1,2 @@
1
+ export * from './events.service';
2
+ export * from './fetch-event-options.dto.v1.type';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./events.service"), exports);
18
+ __exportStar(require("./fetch-event-options.dto.v1.type"), exports);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CropImageOptionsDtoV1
3
+ *
4
+ * Data Transfer Object for cropping images.
5
+ */
6
+ export type CropImageOptionsDtoV1 = {
7
+ format?: 'webp' | 'png' | 'jpg' | 'jpeg';
8
+ width?: number;
9
+ height?: number;
10
+ radius?: number;
11
+ quality?: number;
12
+ background?: string;
13
+ };
@@ -0,0 +1,21 @@
1
+ import { BaseFetchOptions, TimestampsFetchOptions } from '../../../../classes';
2
+ /**
3
+ * FetchFileOptionsDtoV1
4
+ *
5
+ * Data Transfer Object for querying file collections.
6
+ * Inherits timestamp filtering fields and extends them with
7
+ * file-specific query parameters.
8
+ */
9
+ export type FetchFileOptionsDtoV1 = BaseFetchOptions & TimestampsFetchOptions & {
10
+ inFolder?: boolean;
11
+ folderId?: string;
12
+ folderIds?: string[];
13
+ tag?: string;
14
+ tags?: string[];
15
+ mimetype?: string;
16
+ mimetypes?: string[];
17
+ type?: string;
18
+ types?: string[];
19
+ extension?: string;
20
+ extensions?: string[];
21
+ };
@@ -0,0 +1,15 @@
1
+ import { BaseFetchOptions, TimestampsFetchOptions } from '../../../../classes';
2
+ /**
3
+ * FetchFolderOptionsDtoV1
4
+ *
5
+ * Data Transfer Object for querying folder collections.
6
+ * Inherits timestamp filtering fields and extends them with
7
+ * folder-specific query parameters.
8
+ */
9
+ export type FetchFolderOptionsDtoV1 = BaseFetchOptions & TimestampsFetchOptions & {
10
+ includeFiles?: boolean;
11
+ includeFolders?: boolean;
12
+ isRoot?: boolean;
13
+ parentId?: string;
14
+ parentIds?: string[];
15
+ };
@@ -0,0 +1,106 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { AuthenticationModuleOptions } from '../../../authentication';
3
+ import { BaseHttpService } from '../../base-http.service';
4
+ import { CropImageOptionsDtoV1 } from './crop-image-options.dto.v1.type';
5
+ import { FetchFileOptionsDtoV1 } from './fetch-file-options.dto.v1.type';
6
+ import { FetchFolderOptionsDtoV1 } from './fetch-folder-options.dto.v1.type';
7
+ type LabFile = {
8
+ id: string;
9
+ _url: string;
10
+ folderId?: string;
11
+ name: string;
12
+ tags: string[];
13
+ extension: string;
14
+ mimetype: string;
15
+ type: string;
16
+ size: number;
17
+ };
18
+ type LabFolder = {
19
+ id: string;
20
+ _url: string;
21
+ parentId?: string;
22
+ name: string;
23
+ fileIds: string[];
24
+ size: number;
25
+ files?: LabFile[];
26
+ folders?: LabFolder[];
27
+ };
28
+ /**
29
+ * FilesService
30
+ *
31
+ * Service client responsible for interacting with the Files microservice.
32
+ * Extends `BaseHttpService` to inherit:
33
+ * - Environment-sensitive URL resolution (internal vs. external).
34
+ * - Secure inter-service authentication.
35
+ * - Structured logging for traceability of outbound requests.
36
+ *
37
+ * Why this pattern?
38
+ * - Ensures all outbound calls follow a unified configuration and logging structure.
39
+ * - Promotes strong typing and maintainable HTTP logic.
40
+ * - Makes service interactions predictable and debuggable across environments.
41
+ */
42
+ export declare class FilesService extends BaseHttpService {
43
+ /**
44
+ * Constructs an Files service client instance.
45
+ *
46
+ * @param {AuthenticationModuleOptions} authenticationOptions - Injected authentication configuration.
47
+ * @param {ConfigService} configService - NestJS ConfigService for environment detection.
48
+ */
49
+ constructor(authenticationOptions: AuthenticationModuleOptions, configService: ConfigService);
50
+ /**
51
+ * Retrieves a single file entry by its MongoDB identifier.
52
+ *
53
+ * This method gracefully handles downstream failures by logging
54
+ * and returning `undefined` instead of throwing.
55
+ *
56
+ * @param {string} fileId - Unique MongoDB identifier of the file.
57
+ * @param {FetchFileOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
58
+ * @returns {Promise<LabFile | undefined>} Resolves to an File or `undefined` on failure.
59
+ */
60
+ fetchFileV1(fileId: string, options?: FetchFileOptionsDtoV1): Promise<LabFile | undefined>;
61
+ /**
62
+ * Retrieves a collection of file ids.
63
+ *
64
+ * Useful for batch lookups or paginated listings.
65
+ * Returns an empty array if the downstream service call fails.
66
+ *
67
+ * @param {FetchFileOptionsDtoV1} [options] - Optional filter options for narrowing results.
68
+ * @returns {Promise<string[]>} Resolves to a list of file ids, or an empty array if none found.
69
+ */
70
+ fetchFileIdsV1(options?: FetchFileOptionsDtoV1): Promise<string[]>;
71
+ /**
72
+ * Retrieves a collection of file entries.
73
+ *
74
+ * Useful for batch lookups or paginated listings.
75
+ * Returns an empty array if the downstream service call fails.
76
+ *
77
+ * @param {FetchFileOptionsDtoV1} [options] - Optional filter options for narrowing results.
78
+ * @returns {Promise<LabFile[]>} Resolves to a list of files, or an empty array if none found.
79
+ */
80
+ fetchFileCollectionV1(options?: FetchFileOptionsDtoV1): Promise<LabFile[]>;
81
+ /**
82
+ * Retrieves a single folder entry by its MongoDB identifier.
83
+ *
84
+ * This method gracefully handles downstream failures by logging
85
+ * and returning `undefined` instead of throwing.
86
+ *
87
+ * @param {string} folderId - Unique MongoDB identifier of the folder.
88
+ * @param {FetchFolderOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
89
+ * @returns {Promise<LabFolder | undefined>} Resolves to an Folder or `undefined` on failure.
90
+ */
91
+ fetchFolderV1(folderId: string, options?: FetchFolderOptionsDtoV1): Promise<LabFolder | undefined>;
92
+ /**
93
+ * Retrieves a collection of folder entries.
94
+ *
95
+ * Useful for batch lookups or paginated listings.
96
+ * Returns an empty array if the downstream service call fails.
97
+ *
98
+ * @param {FetchFolderOptionsDtoV1} [options] - Optional filter options for narrowing results.
99
+ * @returns {Promise<LabFolder[]>} Resolves to a list of folders, or an empty array if none found.
100
+ */
101
+ fetchFolderCollectionV1(options?: FetchFolderOptionsDtoV1): Promise<LabFolder[]>;
102
+ uploadAvatarV1(accountId: string, avatar: File): Promise<void>;
103
+ deleteAvatarV1(accountId: string): Promise<void>;
104
+ cropImageV1(image: File, options?: CropImageOptionsDtoV1): Promise<Buffer>;
105
+ }
106
+ export {};
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.FilesService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
18
+ const authentication_1 = require("../../../authentication");
19
+ const base_http_service_1 = require("../../base-http.service");
20
+ const base_urls_1 = require("../../base-urls");
21
+ /**
22
+ * FilesService
23
+ *
24
+ * Service client responsible for interacting with the Files microservice.
25
+ * Extends `BaseHttpService` to inherit:
26
+ * - Environment-sensitive URL resolution (internal vs. external).
27
+ * - Secure inter-service authentication.
28
+ * - Structured logging for traceability of outbound requests.
29
+ *
30
+ * Why this pattern?
31
+ * - Ensures all outbound calls follow a unified configuration and logging structure.
32
+ * - Promotes strong typing and maintainable HTTP logic.
33
+ * - Makes service interactions predictable and debuggable across environments.
34
+ */
35
+ let FilesService = class FilesService extends base_http_service_1.BaseHttpService {
36
+ /**
37
+ * Constructs an Files service client instance.
38
+ *
39
+ * @param {AuthenticationModuleOptions} authenticationOptions - Injected authentication configuration.
40
+ * @param {ConfigService} configService - NestJS ConfigService for environment detection.
41
+ */
42
+ constructor(authenticationOptions, configService) {
43
+ super('Files', base_urls_1.BaseUrls.filesService, authenticationOptions, configService);
44
+ }
45
+ // ─────────────────────────────────────────────────────────────
46
+ // File Resource Methods
47
+ // ─────────────────────────────────────────────────────────────
48
+ /**
49
+ * Retrieves a single file entry by its MongoDB identifier.
50
+ *
51
+ * This method gracefully handles downstream failures by logging
52
+ * and returning `undefined` instead of throwing.
53
+ *
54
+ * @param {string} fileId - Unique MongoDB identifier of the file.
55
+ * @param {FetchFileOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
56
+ * @returns {Promise<LabFile | undefined>} Resolves to an File or `undefined` on failure.
57
+ */
58
+ async fetchFileV1(fileId, options) {
59
+ return this.fetchResource(`v1/internal/file/${fileId}`, { params: options });
60
+ }
61
+ /**
62
+ * Retrieves a collection of file ids.
63
+ *
64
+ * Useful for batch lookups or paginated listings.
65
+ * Returns an empty array if the downstream service call fails.
66
+ *
67
+ * @param {FetchFileOptionsDtoV1} [options] - Optional filter options for narrowing results.
68
+ * @returns {Promise<string[]>} Resolves to a list of file ids, or an empty array if none found.
69
+ */
70
+ async fetchFileIdsV1(options) {
71
+ return this.fetchResourceCollection(`v1/internal/files/list`, { params: options });
72
+ }
73
+ /**
74
+ * Retrieves a collection of file entries.
75
+ *
76
+ * Useful for batch lookups or paginated listings.
77
+ * Returns an empty array if the downstream service call fails.
78
+ *
79
+ * @param {FetchFileOptionsDtoV1} [options] - Optional filter options for narrowing results.
80
+ * @returns {Promise<LabFile[]>} Resolves to a list of files, or an empty array if none found.
81
+ */
82
+ async fetchFileCollectionV1(options) {
83
+ return this.fetchResourceCollection(`v1/internal/files`, { params: options });
84
+ }
85
+ // ─────────────────────────────────────────────────────────────
86
+ // Folder Resource Methods
87
+ // ─────────────────────────────────────────────────────────────
88
+ /**
89
+ * Retrieves a single folder entry by its MongoDB identifier.
90
+ *
91
+ * This method gracefully handles downstream failures by logging
92
+ * and returning `undefined` instead of throwing.
93
+ *
94
+ * @param {string} folderId - Unique MongoDB identifier of the folder.
95
+ * @param {FetchFolderOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
96
+ * @returns {Promise<LabFolder | undefined>} Resolves to an Folder or `undefined` on failure.
97
+ */
98
+ async fetchFolderV1(folderId, options) {
99
+ return this.fetchResource(`v1/internal/folder/${folderId}`, { params: options });
100
+ }
101
+ /**
102
+ * Retrieves a collection of folder entries.
103
+ *
104
+ * Useful for batch lookups or paginated listings.
105
+ * Returns an empty array if the downstream service call fails.
106
+ *
107
+ * @param {FetchFolderOptionsDtoV1} [options] - Optional filter options for narrowing results.
108
+ * @returns {Promise<LabFolder[]>} Resolves to a list of folders, or an empty array if none found.
109
+ */
110
+ async fetchFolderCollectionV1(options) {
111
+ return this.fetchResourceCollection(`v1/internal/folders`, { params: options });
112
+ }
113
+ // ─────────────────────────────────────────────────────────────
114
+ // Avatar Resource Methods
115
+ // ─────────────────────────────────────────────────────────────
116
+ async uploadAvatarV1(accountId, avatar) {
117
+ const formData = new FormData();
118
+ formData.set('avatar', avatar, avatar.name);
119
+ await this.httpClient.post(`v1/internal/avatar/${accountId}`, formData);
120
+ }
121
+ async deleteAvatarV1(accountId) {
122
+ await this.httpClient.delete(`v1/internal/${accountId}`);
123
+ }
124
+ // ─────────────────────────────────────────────────────────────
125
+ // Crop Image Methods
126
+ // ─────────────────────────────────────────────────────────────
127
+ async cropImageV1(image, options) {
128
+ const formData = new FormData();
129
+ formData.set('image', image, image.name);
130
+ try {
131
+ const { data } = await this.httpClient.post(`v1/internal/crop/image`, formData, { params: options });
132
+ return data;
133
+ }
134
+ catch (error) {
135
+ const { status, data, message } = this.parseError(error);
136
+ this.logger.error(`Error cropping image: ${message}`);
137
+ throw new common_1.HttpException(data, status);
138
+ }
139
+ }
140
+ };
141
+ exports.FilesService = FilesService;
142
+ exports.FilesService = FilesService = __decorate([
143
+ (0, common_1.Injectable)(),
144
+ __param(0, (0, authentication_1.InjectAuthenticationOptions)()),
145
+ __metadata("design:paramtypes", [Object, config_1.ConfigService])
146
+ ], FilesService);
@@ -0,0 +1,4 @@
1
+ export * from './crop-image-options.dto.v1.type';
2
+ export * from './fetch-file-options.dto.v1.type';
3
+ export * from './fetch-folder-options.dto.v1.type';
4
+ export * from './files.service';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./crop-image-options.dto.v1.type"), exports);
18
+ __exportStar(require("./fetch-file-options.dto.v1.type"), exports);
19
+ __exportStar(require("./fetch-folder-options.dto.v1.type"), exports);
20
+ __exportStar(require("./files.service"), exports);
@@ -0,0 +1,15 @@
1
+ import { BaseFetchOptions, CommentsFetchOptions, DraftedFetchOptions, TimestampsFetchOptions, ViewedByFetchOptions } from '../../../../classes';
2
+ /**
3
+ * FetchCourseOptionsDtoV1
4
+ *
5
+ * Data Transfer Object for querying course collections.
6
+ * Inherits timestamp filtering fields and extends them with
7
+ * course-specific query parameters.
8
+ */
9
+ export type FetchCourseOptionsDtoV1 = BaseFetchOptions & TimestampsFetchOptions & DraftedFetchOptions & ViewedByFetchOptions & CommentsFetchOptions & {
10
+ includeChapters?: boolean;
11
+ topic?: string;
12
+ topics?: string[];
13
+ timestampMin?: number;
14
+ timestampMax?: number;
15
+ };
@@ -0,0 +1,17 @@
1
+ import { BaseFetchOptions, CommentsFetchOptions, ContentFetchOptions, LikedByFetchOptions, ViewedByFetchOptions } from '../../../../classes';
2
+ /**
3
+ * FetchDocOptionsDtoV1
4
+ *
5
+ * Data Transfer Object for querying doc collections.
6
+ * Inherits timestamp filtering fields and extends them with
7
+ * doc-specific query parameters.
8
+ */
9
+ export type FetchDocOptionsDtoV1 = BaseFetchOptions & ContentFetchOptions & ViewedByFetchOptions & LikedByFetchOptions & CommentsFetchOptions & {
10
+ includeAuthor?: boolean;
11
+ topic?: string;
12
+ topics?: string[];
13
+ authorId?: string;
14
+ authorIds?: string[];
15
+ timestampMin?: number;
16
+ timestampMax?: number;
17
+ };
@@ -0,0 +1,18 @@
1
+ import { BaseFetchOptions, CommentsFetchOptions, ContentFetchOptions, ViewedByFetchOptions } from '../../../../classes';
2
+ /**
3
+ * FetchThreadOptionsDtoV1
4
+ *
5
+ * Data Transfer Object for querying thread collections.
6
+ * Inherits timestamp filtering fields and extends them with
7
+ * thread-specific query parameters.
8
+ */
9
+ export type FetchThreadOptionsDtoV1 = BaseFetchOptions & ContentFetchOptions & ViewedByFetchOptions & CommentsFetchOptions & {
10
+ includeAuthor?: boolean;
11
+ isClosed?: boolean;
12
+ tag?: string;
13
+ tags?: string[];
14
+ authorId?: string;
15
+ authorIds?: string[];
16
+ timestampMin?: number;
17
+ timestampMax?: number;
18
+ };
@@ -0,0 +1,93 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { LabHackschoolCourse, LabHackschoolDoc, LabHackschoolThread } from 'itlab-functions';
3
+ import { AuthenticationModuleOptions } from '../../../authentication';
4
+ import { BaseHttpService } from '../../base-http.service';
5
+ import { FetchCourseOptionsDtoV1 } from './fetch-course-options.dto.v1.type';
6
+ import { FetchDocOptionsDtoV1 } from './fetch-doc-options.dto.v1.type';
7
+ import { FetchThreadOptionsDtoV1 } from './fetch-thread-options.dto.v1.type';
8
+ /**
9
+ * HackschoolService
10
+ *
11
+ * Service client responsible for interacting with the Hackschool microservice.
12
+ * Extends `BaseHttpService` to inherit:
13
+ * - Environment-sensitive URL resolution (internal vs. external).
14
+ * - Secure inter-service authentication.
15
+ * - Structured logging for traceability of outbound requests.
16
+ *
17
+ * Why this pattern?
18
+ * - Ensures all outbound calls follow a unified configuration and logging structure.
19
+ * - Promotes strong typing and maintainable HTTP logic.
20
+ * - Makes service interactions predictable and debuggable across environments.
21
+ */
22
+ export declare class HackschoolService extends BaseHttpService {
23
+ /**
24
+ * Constructs an Hackschool service client instance.
25
+ *
26
+ * @param {AuthenticationModuleOptions} authenticationOptions - Injected authentication configuration.
27
+ * @param {ConfigService} configService - NestJS ConfigService for environment detection.
28
+ */
29
+ constructor(authenticationOptions: AuthenticationModuleOptions, configService: ConfigService);
30
+ /**
31
+ * Retrieves a single course entry by its MongoDB identifier.
32
+ *
33
+ * This method gracefully handles downstream failures by logging
34
+ * and returning `undefined` instead of throwing.
35
+ *
36
+ * @param {string} courseId - Unique MongoDB identifier of the course.
37
+ * @param {FetchCourseOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
38
+ * @returns {Promise<LabHackschoolCourse | undefined>} Resolves to an Course or `undefined` on failure.
39
+ */
40
+ fetchCourseV1(courseId: string, options?: FetchCourseOptionsDtoV1): Promise<LabHackschoolCourse | undefined>;
41
+ /**
42
+ * Retrieves a collection of course entries.
43
+ *
44
+ * Useful for batch lookups or paginated listings.
45
+ * Returns an empty array if the downstream service call fails.
46
+ *
47
+ * @param {FetchCourseOptionsDtoV1} [options] - Optional filter options for narrowing results.
48
+ * @returns {Promise<LabHackschoolCourse[]>} Resolves to a list of courses, or an empty array if none found.
49
+ */
50
+ fetchCourseCollectionV1(options?: FetchCourseOptionsDtoV1): Promise<LabHackschoolCourse[]>;
51
+ /**
52
+ * Retrieves a single thread entry by its MongoDB identifier.
53
+ *
54
+ * This method gracefully handles downstream failures by logging
55
+ * and returning `undefined` instead of throwing.
56
+ *
57
+ * @param {string} threadId - Unique MongoDB identifier of the thread.
58
+ * @param {FetchThreadOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
59
+ * @returns {Promise<LabHackschoolThread | undefined>} Resolves to an Thread or `undefined` on failure.
60
+ */
61
+ fetchThreadV1(threadId: string, options?: FetchThreadOptionsDtoV1): Promise<LabHackschoolThread | undefined>;
62
+ /**
63
+ * Retrieves a collection of thread entries.
64
+ *
65
+ * Useful for batch lookups or paginated listings.
66
+ * Returns an empty array if the downstream service call fails.
67
+ *
68
+ * @param {FetchThreadOptionsDtoV1} [options] - Optional filter options for narrowing results.
69
+ * @returns {Promise<LabHackschoolThread[]>} Resolves to a list of threads, or an empty array if none found.
70
+ */
71
+ fetchThreadCollectionV1(options?: FetchThreadOptionsDtoV1): Promise<LabHackschoolThread[]>;
72
+ /**
73
+ * Retrieves a single doc entry by its MongoDB identifier.
74
+ *
75
+ * This method gracefully handles downstream failures by logging
76
+ * and returning `undefined` instead of throwing.
77
+ *
78
+ * @param {string} docId - Unique MongoDB identifier of the doc.
79
+ * @param {FetchDocOptionsDtoV1} [options] - Optional query parameters for filtering or projection.
80
+ * @returns {Promise<LabHackschoolDoc | undefined>} Resolves to an Doc or `undefined` on failure.
81
+ */
82
+ fetchDocV1(docId: string, options?: FetchDocOptionsDtoV1): Promise<LabHackschoolDoc | undefined>;
83
+ /**
84
+ * Retrieves a collection of doc entries.
85
+ *
86
+ * Useful for batch lookups or paginated listings.
87
+ * Returns an empty array if the downstream service call fails.
88
+ *
89
+ * @param {FetchDocOptionsDtoV1} [options] - Optional filter options for narrowing results.
90
+ * @returns {Promise<LabHackschoolDoc[]>} Resolves to a list of docs, or an empty array if none found.
91
+ */
92
+ fetchDocCollectionV1(options?: FetchDocOptionsDtoV1): Promise<LabHackschoolDoc[]>;
93
+ }