@m481/mp-sdk-ng 0.1.2-alpha.13 → 0.1.2-alpha.14

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.
@@ -18,6 +18,7 @@ class CalendarShiftModel extends BaseModel {
18
18
  shiftId;
19
19
  startAt;
20
20
  endAt;
21
+ assignedUsersIds;
21
22
  }
22
23
 
23
24
  class EventModel extends BaseModel {
@@ -462,31 +463,6 @@ class ShiftsService extends BaseResource {
462
463
  constructor() {
463
464
  super();
464
465
  }
465
- createWithCalendarShifts(data) {
466
- const repeat = data.timespan;
467
- if (!repeat) {
468
- return throwError(() => new Error('No repeat data provided'));
469
- }
470
- // Generate CalendarShifts based on repeat configuration
471
- const calendarShifts = this.generateCalendarShifts(repeat);
472
- let createdShift;
473
- // Create the main Shift first
474
- return super.create(data).pipe(map(data => {
475
- createdShift = data;
476
- // Assign the shiftId to all generated CalendarShifts
477
- return calendarShifts.map(cs => ({
478
- shiftId: createdShift.id,
479
- startAt: cs.startAt,
480
- endAt: cs.endAt
481
- }));
482
- }), switchMap(shiftsToCreate => this.createCalendarShiftsBatch(shiftsToCreate)), catchError$1(error => {
483
- this.log.e('Error creating calendar shifts, rolling back...', error);
484
- return this.delete(createdShift.id).pipe(switchMap(() => throwError(() => new Error('Failed to create calendar shifts. Shift has been rolled back.'))));
485
- }), switchMap(() => from([createdShift])), catchError$1(error => {
486
- this.log.e('Error creating shift', error);
487
- return throwError(() => error);
488
- }));
489
- }
490
466
  delete(id) {
491
467
  this.connect();
492
468
  // First, fetch all CalendarShifts associated with this Shift
@@ -526,112 +502,6 @@ class ShiftsService extends BaseResource {
526
502
  return from(this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)
527
503
  .delete(id, this.getAuthHeader()));
528
504
  }
529
- /**
530
- * Generates CalendarShifts based on repeat configuration
531
- */
532
- generateCalendarShifts(span) {
533
- const shifts = [];
534
- const startDate = new Date(span.initialAt);
535
- let currentDate = new Date(startDate);
536
- let occurrenceCount = 0;
537
- // Determine the end date
538
- const endDate = span.finalizeAt
539
- ? new Date(span.finalizeAt)
540
- : this.calculateEndDateByOccurrences(startDate, span);
541
- while (currentDate <= endDate) {
542
- // Check if we've reached the maximum number of occurrences
543
- if (span.maxSlots && occurrenceCount >= span.maxSlots) {
544
- break;
545
- }
546
- // Add shift based on a recurrence type
547
- if (this.shouldAddShift(currentDate, span)) {
548
- const shift = new CalendarShiftModel();
549
- shift.startAt = currentDate;
550
- // Assume each shift lasts until end of day (you can adjust this)
551
- const endDateTime = new Date(currentDate);
552
- endDateTime.setHours(23, 59, 59, 999);
553
- shift.endAt = endDateTime;
554
- shifts.push(shift);
555
- occurrenceCount++;
556
- }
557
- // Move to next period
558
- currentDate = this.getNextDate(currentDate, span);
559
- }
560
- return shifts;
561
- }
562
- /**
563
- * Determines if a shift should be added on the current date
564
- */
565
- shouldAddShift(date, span) {
566
- let ret = false;
567
- switch (span.type) {
568
- case RecurrenceType.DAILY:
569
- ret = true;
570
- break;
571
- case RecurrenceType.WEEKLY:
572
- if (span.daysOfWeek && span.daysOfWeek.length > 0) {
573
- const dayOfWeek = date.getDay();
574
- ret = span.daysOfWeek.includes(dayOfWeek);
575
- }
576
- else {
577
- ret = true;
578
- }
579
- break;
580
- case RecurrenceType.MONTHLY:
581
- if (span.dayOfMonth) {
582
- ret = date.getDate() === span.dayOfMonth;
583
- }
584
- else {
585
- ret = true;
586
- }
587
- break;
588
- default:
589
- ret = true;
590
- }
591
- return ret;
592
- }
593
- /**
594
- * Calculates the next date based on recurrence type
595
- */
596
- getNextDate(currentDate, span) {
597
- const nextDate = new Date(currentDate);
598
- switch (span.type) {
599
- case RecurrenceType.DAILY:
600
- nextDate.setDate(nextDate.getDate() + span.interval);
601
- break;
602
- case RecurrenceType.WEEKLY:
603
- nextDate.setDate(nextDate.getDate() + (7 * span.interval));
604
- break;
605
- case RecurrenceType.MONTHLY:
606
- nextDate.setMonth(nextDate.getMonth() + span.interval);
607
- break;
608
- }
609
- return nextDate;
610
- }
611
- /**
612
- * Calculates the end date based on number of occurrences
613
- */
614
- calculateEndDateByOccurrences(startDate, repeat) {
615
- if (!repeat.maxSlots) {
616
- // If no occurrences defined, set a reasonable limit (e.g., 1 year)
617
- const defaultEnd = new Date(startDate);
618
- defaultEnd.setFullYear(defaultEnd.getFullYear() + 1);
619
- return defaultEnd;
620
- }
621
- let estimatedEnd = new Date(startDate);
622
- switch (repeat.type) {
623
- case RecurrenceType.DAILY:
624
- estimatedEnd.setDate(estimatedEnd.getDate() + (repeat.maxSlots * repeat.interval));
625
- break;
626
- case RecurrenceType.WEEKLY:
627
- estimatedEnd.setDate(estimatedEnd.getDate() + (repeat.maxSlots * 7 * repeat.interval));
628
- break;
629
- case RecurrenceType.MONTHLY:
630
- estimatedEnd.setMonth(estimatedEnd.getMonth() + (repeat.maxSlots * repeat.interval));
631
- break;
632
- }
633
- return estimatedEnd;
634
- }
635
505
  /**
636
506
  * Fetches all CalendarShifts associated with a specific Shift ID
637
507
  */
@@ -675,22 +545,6 @@ class ShiftsService extends BaseResource {
675
545
  return this.handleError(err);
676
546
  }));
677
547
  }
678
- /**
679
- * Creates multiple CalendarShifts
680
- * TODO move to backend?
681
- */
682
- createCalendarShiftsBatch(shifts) {
683
- this.connect();
684
- if (shifts.length === 0) {
685
- return from([]);
686
- }
687
- this.log.d('Creating calendar shifts batch', shifts.length);
688
- const batch = this.connection.createBatch();
689
- for (const shift of shifts) {
690
- batch.collection(SdkConfig.Entities.CALENDAR_SHIFTS).create({ ...shift });
691
- }
692
- return from(batch.send()).pipe(catchError$1(err => this.handleError(err)));
693
- }
694
548
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ShiftsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
695
549
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ShiftsService });
696
550
  }
@@ -698,7 +552,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
698
552
  type: Injectable
699
553
  }], ctorParameters: () => [] });
700
554
 
701
- class CrewService extends BaseResource {
555
+ class UsersService extends BaseResource {
702
556
  Options = {
703
557
  filter: "isEnabled = true"
704
558
  };
@@ -715,10 +569,13 @@ class CrewService extends BaseResource {
715
569
  delete(id) {
716
570
  throw new Error("Method not supported.");
717
571
  }
718
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CrewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
719
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CrewService });
572
+ findNotAvailable() {
573
+ throw new Error();
574
+ }
575
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UsersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
576
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UsersService });
720
577
  }
721
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CrewService, decorators: [{
578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UsersService, decorators: [{
722
579
  type: Injectable
723
580
  }], ctorParameters: () => [] });
724
581
 
@@ -768,15 +625,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
768
625
  class MpSdkService extends BasePlain {
769
626
  missionsSrv;
770
627
  shiftsSrv;
771
- staffSrv;
628
+ usersSrv;
772
629
  teamsSrv;
773
630
  authSrv = inject(AuthService);
774
631
  authStoreSrv = inject(AuthStoreService);
775
- constructor(missionsSrv, shiftsSrv, staffSrv, teamsSrv) {
632
+ constructor(missionsSrv, shiftsSrv, usersSrv, teamsSrv) {
776
633
  super();
777
634
  this.missionsSrv = missionsSrv;
778
635
  this.shiftsSrv = shiftsSrv;
779
- this.staffSrv = staffSrv;
636
+ this.usersSrv = usersSrv;
780
637
  this.teamsSrv = teamsSrv;
781
638
  }
782
639
  // Auth
@@ -828,22 +685,26 @@ class MpSdkService extends BasePlain {
828
685
  deleteCalendarShift(id) {
829
686
  return this.shiftsSrv.deleteCalendarShiftById(id);
830
687
  }
831
- // Staff
832
- getStaffUsers() {
833
- return this.staffSrv.fetchList();
688
+ // Users
689
+ getUsers() {
690
+ return this.usersSrv.fetchList();
834
691
  }
835
- getStaffUser(id) {
836
- return this.staffSrv.fetchOne(id);
692
+ getUserById(id) {
693
+ return this.usersSrv.fetchOne(id);
837
694
  }
838
- getStaffTeams() {
695
+ getNotAvailableUsers(startAt, endAt) {
696
+ return this.usersSrv.findNotAvailable();
697
+ }
698
+ // Teams
699
+ getTeams() {
839
700
  return this.teamsSrv.fetchList();
840
701
  }
841
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MpSdkService, deps: [{ token: MissionsService }, { token: ShiftsService }, { token: CrewService }, { token: TeamsService }], target: i0.ɵɵFactoryTarget.Injectable });
702
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MpSdkService, deps: [{ token: MissionsService }, { token: ShiftsService }, { token: UsersService }, { token: TeamsService }], target: i0.ɵɵFactoryTarget.Injectable });
842
703
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MpSdkService });
843
704
  }
844
705
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MpSdkService, decorators: [{
845
706
  type: Injectable
846
- }], ctorParameters: () => [{ type: MissionsService }, { type: ShiftsService }, { type: CrewService }, { type: TeamsService }] });
707
+ }], ctorParameters: () => [{ type: MissionsService }, { type: ShiftsService }, { type: UsersService }, { type: TeamsService }] });
847
708
 
848
709
  const defaultConfig = () => {
849
710
  return new Configuration({
@@ -878,7 +739,7 @@ class MpSdkModule {
878
739
  MissionsService,
879
740
  ShiftsService,
880
741
  TeamsService,
881
- CrewService,
742
+ UsersService,
882
743
  MpSdkService
883
744
  ] });
884
745
  }
@@ -899,7 +760,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
899
760
  MissionsService,
900
761
  ShiftsService,
901
762
  TeamsService,
902
- CrewService,
763
+ UsersService,
903
764
  MpSdkService
904
765
  ]
905
766
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"m481-mp-sdk-ng.mjs","sources":["../../../../projects/mp/sdk-ngx/src/lib/models/base.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/calendar-shift.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/event.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/mission.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/shift.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/user.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/team.model.ts","../../../../projects/mp/sdk-ngx/src/lib/services/logger.service.ts","../../../../projects/mp/sdk-ngx/src/lib/base/configuration.type.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-plain.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/services/utils.service.ts","../../../../projects/mp/sdk-ngx/src/lib/services/auth-store.service.ts","../../../../projects/mp/sdk-ngx/src/lib/services/auth.interceptor.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-main.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-pocket.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/mp-sdk.constants.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/auth.service.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-resource.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/missions.service.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/shifts.service.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/crew.service.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/teams.service.ts","../../../../projects/mp/sdk-ngx/src/lib/mp-sdk.service.ts","../../../../projects/mp/sdk-ngx/src/lib/mp-sdk.module.ts","../../../../projects/mp/sdk-ngx/src/public-api.ts","../../../../projects/mp/sdk-ngx/src/m481-mp-sdk-ng.ts"],"sourcesContent":["\nexport abstract class BaseModel\n{\n public id: string;\n public created?: Date;\n public updated?: Date;\n}\n","import { BaseModel } from './base.model';\n\nexport class CalendarShiftModel extends BaseModel\n{\n\tpublic shiftId: string;\n public startAt: Date;\n public endAt: Date;\n}\n","import { BaseModel } from './base.model';\n\nexport type EventScope = \"mission\" | \"shift\" | \"user\";\n\nexport class EventModel extends BaseModel\n{\n\tpublic message: string;\n\tpublic scope: EventScope;\n\tpublic objectId: string;\n\tpublic userId: string;\n}\n","import { BaseModel } from './base.model';\nimport { TeamModel } from './team.model';\n\nexport class MissionModel extends BaseModel\n{\n\tpublic name: string;\n\tpublic isRegular: boolean;\n\tpublic color: string;\n\tpublic hours: Array<Array<number>>; // [ [11, 13], [17, 19] ] -\n \tpublic teamId: string;\n\tpublic team?: TeamModel;\n\tpublic isEnabled?: boolean;\n}\n","import { BaseModel } from './base.model';\nimport { MissionModel } from './mission.model';\n\nexport enum RecurrenceType {\n DAILY,\n WEEKLY,\n MONTHLY\n}\n\nexport interface ShiftSpan {\n initialAt: number;\n maxSlots: number;\n type?: RecurrenceType;\n interval?: number;\n daysOfWeek?: Array<number>;\n dayOfMonth?: number;\n finalizeAt?: number;\n}\n\nexport class ShiftModel extends BaseModel\n{\n\tpublic missionId: string;\n public missionHourIndex: number;\n\tpublic teamId: string;\n\tpublic assignedUsersIds: Array<string>;\n\tpublic mission?: MissionModel;\n public timespan: ShiftSpan;\n public isEnabled?: boolean;\n}\n","import { BaseModel } from './base.model';\nimport { RecordModel } from 'pocketbase';\n\nexport class UserModel extends BaseModel\n{\n\tpublic email: string;\n public username: string;\n\tpublic verified: boolean;\n\tpublic name: string;\n public teamsAdmin: Array<string>;\n public teamsMember: Array<string>;\n public password?: string;\n\tpublic avatar?: any;\n public avatarUrl?: string;\n public isEnabled?: boolean;\n}\n","import { BaseModel } from './base.model';\n\nexport class TeamModel extends BaseModel\n{\n\tpublic name: string;\n public slug: string;\n public isEnabled?: boolean;\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface ILogService {\n get(name: string, level: LogLevel): ILogger;\n}\n\nexport interface ILogger {\n d(...args: Array<unknown>): void;\n w(...args: Array<unknown>): void;\n e(...args: Array<unknown>): void;\n}\n\nexport enum LogLevel {\n ERROR = 0,\n WARN = 1,\n INFO = 2,\n DEBUG = 3,\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class LoggerService implements ILogService {\n public log = window.console;\n public LOG_FNS = [this.log.log, this.log.warn, this.log.error];\n public MSG_PREFIXES = [ [\"[\", \"]\"], [\"[\", \"] WARN: \"], [\"[\", \"] ERROR: \"] ];\n\n public get(prefix: string, level: LogLevel): ILogger {\n const logLevel = level || LogLevel.INFO;\n if (logLevel >= LogLevel.INFO) {\n this.LOG_FNS[0].call(this.log, \"[\" + prefix + \"] Logger created\");\n }\n const loggerFns = this.LOG_FNS.map((logTemplFn, i) => {\n return logTemplFn.bind(this.log, this.MSG_PREFIXES[i][0] + prefix + this.MSG_PREFIXES[i][1]);\n });\n return {\n d: (...args: Array<unknown>): void => {\n if (logLevel === LogLevel.DEBUG) {\n loggerFns[0].apply(this.log, [...args]);\n }\n },\n w: (...args: Array<unknown>): void => {\n if (logLevel >= LogLevel.WARN) {\n loggerFns[1].apply(this.log, [...args]);\n }\n },\n e: (...args: Array<unknown>): void => {\n if (logLevel >= LogLevel.ERROR) {\n loggerFns[2].apply(this.log, [...args]);\n }\n }\n };\n }\n\n}\n","export interface IConfigParams {\n baseUrl?: string;\n secret?: string;\n isProduction?: boolean;\n}\n\nexport class Configuration implements IConfigParams {\n public baseUrl: string;\n public secret?: string;\n public isProduction: boolean;\n\n public constructor(params: IConfigParams) {\n this.baseUrl = params.baseUrl || \"\";\n this.secret = params.secret;\n this.isProduction = params.isProduction || false;\n }\n}\n","import { Directive, inject } from \"@angular/core\";\n\nimport { LoggerService, ILogger, LogLevel } from \"../services/logger.service\";\nimport { Configuration } from './configuration.type';\n\n@Directive()\nexport abstract class BasePlain {\n\n protected log: ILogger;\n protected config = inject(Configuration);\n\n protected constructor(logLevel?: LogLevel) {\n const logger = inject(LoggerService);\n this.log = logger.get(\n this.constructor.name,\n logLevel || this.config.isProduction ? LogLevel.ERROR : LogLevel.DEBUG\n );\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { AES, enc } from \"crypto-js\";\nimport { Configuration } from \"../base/configuration.type\";\nimport { BasePlain } from '../base/base-plain.directive';\n\n@Injectable()\nexport class UtilsService extends BasePlain {\n constructor(private cfg: Configuration) {\n super();\n }\n\n public encryptText(text: string): string {\n let data = text;\n if (this.cfg.secret) {\n data = AES.encrypt(text, this.cfg.secret).toString();\n }\n\n return data;\n }\n\n public decryptText(data: string): string {\n let text = data;\n if (text) {\n if (this.cfg.secret) {\n const bytes = AES.decrypt(data.toString(), this.cfg.secret);\n const decrypted = bytes.toString(enc.Utf8);\n if (decrypted) {\n text = decrypted;\n } else {\n this.log.d(\"error decrypting\", data);\n }\n }\n }\n\n return text;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { UtilsService } from \"./utils.service\";\n\n@Injectable()\nexport class AuthStoreService {\n private readonly KEY_TOKEN = \"mp_sdk:token\";\n private token = \"\";\n\n public constructor(private utilsSrv: UtilsService) {\n }\n\n public setToken(token: string): void {\n this.token = this.utilsSrv.encryptText(token);\n sessionStorage.setItem(this.KEY_TOKEN, this.token);\n }\n\n public getToken(): string {\n const data = sessionStorage.getItem(this.KEY_TOKEN);\n return !!data ? this.utilsSrv.decryptText(data) : null;\n }\n\n public clearToken(): void {\n this.token = null;\n sessionStorage.removeItem(this.KEY_TOKEN);\n }\n\n public isStoredToken(): boolean {\n return this.getToken() !== null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from '@angular/router';\n\nimport { AuthStoreService } from './auth-store.service';\nimport { BasePlain } from '../base/base-plain.directive';\nimport { LogLevel } from './logger.service';\n\n@Injectable()\nexport class AuthInterceptor extends BasePlain implements HttpInterceptor {\n\n // URLs that don't require authentication\n private readonly excludedUrls = [\n '/auth/login',\n '/auth/register',\n '/public',\n '/health'\n ];\n\n constructor(private authStore: AuthStoreService,\n private router: Router) {\n super(LogLevel.DEBUG);\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n // Check if the URL should be excluded\n if (this.shouldExcludeUrl(req.url)) {\n return next.handle(req);\n }\n\n // Get token from AuthStore service\n const authToken = this.authStore.getToken();\n\n this.log.d(\"intercepting\", req.url, authToken);\n let ret: Observable<HttpEvent<any>>;\n if (authToken) {\n // Clone the request and add authorization header\n const authReq = req.clone({\n setHeaders: {\n Authorization: authToken\n }\n });\n // Continue with modified request and handle errors\n\n ret = next.handle(authReq).pipe(\n catchError((error: HttpErrorResponse) => this.handleAuthError(error))\n );\n } else {\n // If no token, continue with original request\n ret = next.handle(req);\n }\n\n return ret\n }\n\n private shouldExcludeUrl(url: string): boolean {\n return this.excludedUrls.some(excludedUrl => url.includes(excludedUrl));\n }\n\n private handleAuthError(error: HttpErrorResponse): Observable<never> {\n if (error.status === 401) {\n // Invalid or expired token\n this.log.w('Invalid or expired authentication token');\n this.authStore.clearToken();\n\n // Redirect to login\n this.router.navigate(['/login']);\n } else if (error.status === 403) {\n // Insufficient permissions\n this.log.w('Insufficient permissions to access the resource');\n }\n\n // Propagate error for component handling\n return throwError(() => error);\n }\n}\n","import { Directive, inject } from \"@angular/core\";;\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { catchError, from, map, Observable } from 'rxjs';\n\nimport { BasePlain } from \"./base-plain.directive\";\nimport { AuthStoreService } from \"../services/auth-store.service\";\nimport { Configuration } from './configuration.type';\nimport { LogLevel } from '../services/logger.service';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { BaseModel } from '../models/base.model';\n\n@Directive()\nexport abstract class BaseSdk extends BasePlain {\n\n protected authStore = inject(AuthStoreService);\n protected http = inject(HttpClient);\n\n protected doGet<T extends BaseModel>(endpoint: string, params?: HttpParams): Observable<T> {\n return this.http.get<T>(this.config.baseUrl + endpoint, {\n params,\n });\n }\n\n protected doGetList<T extends BaseModel>(endpoint: string, params?: HttpParams): Observable<IListDataResponse<T>> {\n return this.http.get<IListDataResponse<T>>(this.config.baseUrl + endpoint, {\n params,\n });\n }\n\n protected getAuthHeader(): { headers: { [key: string]: string; } } {\n return {\n headers: {\n \"Authorization\": this.authStore.getToken(),\n }\n }\n }\n\n protected handleError(error: any): void {\n this.log.e(\"Error\", error);\n }\n}\n","import { Directive } from \"@angular/core\";\nimport { HttpErrorResponse } from '@angular/common/http';\nimport PocketBase, { ClientResponseError, RecordListOptions, RecordOptions } from \"pocketbase\";\nimport Client from \"pocketbase\";\nimport 'cross-fetch/polyfill';\nimport { catchError, from, map, Observable, ObservableInput } from 'rxjs';\n\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { BaseModel } from '../models/base.model';\nimport { BaseSdk } from './base-main.directive';\n\n@Directive()\nexport class BasePocket extends BaseSdk {\n\n protected connection: Client;\n\n protected connect(): void {\n if (!this.connection) {\n this.connection = new PocketBase(this.config.baseUrl);\n\n }\n }\n\n protected getList<T extends BaseModel>(entity: string, options?: RecordListOptions): Observable<IListDataResponse<T>> {\n this.connect();\n this.log.d(\"getList --- entity\", entity, this.authStore.getToken());\n\n return from(\n this.connection.collection(entity).getList<T>(1, 20, this.buildOptions(options))\n ).pipe(\n catchError(err => this.handleError(err)),\n map(d => (d ? {\n page: d.page,\n pageSize: d.perPage,\n pagesTotal: d.totalPages,\n items: d.items,\n total: d.totalItems\n } : null))\n );\n }\n\n protected getOne<T extends BaseModel>(entity: string, id: string, options?: RecordOptions): Observable<T> {\n this.connect();\n this.log.d(\"fetchOne\", entity, this.authStore.getToken());\n return from(\n this.connection.collection(entity).getOne<T>(id, this.buildOptions(options))\n ).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n protected save<T extends BaseModel>(entity: string, data: Partial<T>): Observable<T> {\n this.connect();\n this.log.d(\"save\", entity, data?.id, this.authStore.getToken());\n const target = this.connection.collection(entity);\n let promise: Promise<T>;\n if (data.id) {\n promise = target.update<T>(data.id, data, this.getAuthHeader());\n } else {\n promise = target.create<T>(data, this.getAuthHeader());\n }\n\n return from(promise).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n protected remove(entity: string, id: string): Observable<boolean> {\n this.connect();\n this.log.d(\"remove\", entity, this.authStore.getToken());\n return from(\n this.connection.collection(entity).delete(id, this.getAuthHeader())\n ).pipe(\n catchError(err => this.handleError(err)),\n );\n }\n\n protected override handleError(error: any): ObservableInput<any> {\n if (error instanceof ClientResponseError) {\n this.log.w(\"Http error\", error.status);\n throw new HttpErrorResponse({\n error: error.originalError,\n status: error.status,\n url: error.url\n });\n } else {\n this.log.w(\"Error response unknown\", error);\n throw error;\n }\n }\n\n private buildOptions(options?: RecordListOptions | RecordOptions): RecordListOptions | RecordOptions {\n return options\n ? {...options, ...this.getAuthHeader()}\n : this.getAuthHeader();\n }\n}\n","\nexport class SdkConfig {\n public static readonly Entities = {\n AUTH: \"users\",\n USERS: \"users\",\n EVENTS: \"events\",\n MISSIONS: \"missions\",\n SHIFTS: \"shifts\",\n CALENDAR_SHIFTS: \"calendar_shifts\",\n TEAMS: \"teams\"\n }\n\n public static readonly Endpoints = {\n TEAMS: \"/api/collections/teams/records\"\n }\n\n public static readonly ModelKeys = {\n CREATE_AT: \"created\",\n UPDATE_AT: \"updated\"\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError, from, map, Observable } from 'rxjs';\nimport 'cross-fetch/polyfill';\n\nimport { UserModel } from '../models/user.model';\nimport { BasePocket } from '../base/base-pocket.directive';\nimport { SdkConfig } from '../mp-sdk.constants';\n\n@Injectable()\nexport class AuthService extends BasePocket {\n\n constructor() {\n super();\n }\n\n public login(user: string, pass: string): Observable<UserModel> {\n this.connect();\n return from(\n this.connection.collection(SdkConfig.Entities.AUTH).authWithPassword<UserModel>(user, pass)\n ).pipe(\n catchError(err => this.handleError(err)),\n map(data => {\n this.log.d(\"login ok\", data);\n this.authStore.setToken(data.token);\n return data.record;\n })\n )\n }\n\n public logout(): void {\n this.authStore.clearToken();\n }\n}\n","import { Directive } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { BasePocket } from './base-pocket.directive';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { BaseModel } from '../models/base.model';\nimport { SendOptions } from 'pocketbase';\n\n@Directive()\nexport abstract class BaseResource<T extends BaseModel> extends BasePocket {\n\n protected abstract readonly Options: SendOptions;\n protected abstract readonly Entity: string;\n\n public fetchList(): Observable<IListDataResponse<T>> {\n return this.getList<T>(this.Entity, this.Options);\n }\n\n public fetchOne(id: string): Observable<T> {\n return this.getOne<T>(this.Entity, id)\n }\n\n public create(data: Partial<T>): Observable<T> {\n return this.save<T>(this.Entity, data);\n }\n\n public update(id: string, data: Partial<T>): Observable<T> {\n return this.save<T>(this.Entity, {id, ...data});\n }\n\n public delete(id: string): Observable<boolean> {\n return this.remove(this.Entity, id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport 'cross-fetch/polyfill';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { BaseResource } from '../base/base-resource.directive';\nimport { MissionModel } from '../models/mission.model';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\n\n@Injectable()\nexport class MissionsService extends BaseResource<MissionModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\"\n };\n protected readonly Entity = SdkConfig.Entities.MISSIONS;\n\n constructor() {\n super();\n }\n\n public getArchived(): Observable<IListDataResponse<MissionModel>> {\n return this.getList<MissionModel>(SdkConfig.Entities.MISSIONS, {\n filter: \"isEnabled = false\"\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport 'cross-fetch/polyfill';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { BaseResource } from '../base/base-resource.directive';\nimport { ShiftModel, RecurrenceType, ShiftSpan } from '../models/shift.model';\nimport { CalendarShiftModel } from '../models/calendar-shift.model';\nimport { Observable, from, throwError, catchError, switchMap, map } from 'rxjs';\nimport { IListDataResponse } from \"../models/reponses/list-data.response\";\n\n@Injectable()\nexport class ShiftsService extends BaseResource<ShiftModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\"\n };\n\n protected readonly Entity = SdkConfig.Entities.SHIFTS;\n\n constructor() {\n super();\n }\n\n public createWithCalendarShifts(data: Partial<ShiftModel>): Observable<ShiftModel> {\n const repeat = data.timespan;\n\n if (!repeat) {\n return throwError(() => new Error('No repeat data provided'));\n }\n\n // Generate CalendarShifts based on repeat configuration\n const calendarShifts = this.generateCalendarShifts(repeat);\n let createdShift: ShiftModel;\n\n // Create the main Shift first\n return super.create(data).pipe(\n map(data => {\n createdShift = data;\n // Assign the shiftId to all generated CalendarShifts\n return calendarShifts.map(cs => ({\n shiftId: createdShift.id,\n startAt: cs.startAt,\n endAt: cs.endAt\n }));\n }),\n switchMap(shiftsToCreate => this.createCalendarShiftsBatch(shiftsToCreate)),\n catchError(error => {\n this.log.e('Error creating calendar shifts, rolling back...', error);\n return this.delete(createdShift.id!).pipe(\n switchMap(() => throwError(() => new Error('Failed to create calendar shifts. Shift has been rolled back.')))\n );\n }),\n switchMap(() => from([createdShift])),\n catchError(error => {\n this.log.e('Error creating shift', error);\n return throwError(() => error);\n })\n );\n }\n\n public override delete(id: string): Observable<boolean> {\n this.connect();\n\n // First, fetch all CalendarShifts associated with this Shift\n return this.getCalendarShiftsByShiftId(id).pipe(\n switchMap(calendarShifts => {\n // Store the IDs for potential rollback\n const calendarShiftIds = calendarShifts.map(cs => cs.id);\n\n // Delete all CalendarShifts first\n return this.deleteCalendarShiftsBatch(calendarShiftIds).pipe(\n switchMap(() => {\n // After successful CalendarShift deletion, delete the main Shift\n return super.delete(id).pipe(\n catchError(error => {\n // If Shift deletion fails, try to restore CalendarShifts\n this.log.e('Error deleting shift, attempting rollback...', error);\n return this.restoreCalendarShifts(calendarShifts).pipe(\n switchMap(() => throwError(() => new Error('Failed to delete shift. CalendarShifts have been restored.')))\n );\n })\n );\n }),\n catchError(error => {\n // If CalendarShift deletion fails, propagate the error\n this.log.e('Error deleting calendar shifts', error);\n return throwError(() => new Error('Failed to delete calendar shifts.'));\n })\n );\n }),\n catchError(error => {\n this.log.e('Error fetching calendar shifts for deletion', error);\n return throwError(() => error);\n })\n );\n }\n\n public getCalendarShifts(year?: number): Observable<IListDataResponse<CalendarShiftModel>> {\n this.log.d('Fetching calendar shifts');\n const y = year || new Date().getFullYear();\n const startDate = new Date(y, 0, 1);\n const endDate = new Date(y, 11, 31);\n this.log.d(\n `Fetching calendar shifts for year ${y}`,\n `Start date: ${startDate.toISOString()}`,\n `End date: ${endDate.toISOString()}`\n )\n const filter = `startAt >= \"${startDate.toISOString()}\" && endAt <= \"${endDate.toISOString()}\"`;\n\n return from(\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .getList<CalendarShiftModel>(1, 1000, { filter, ...this.getAuthHeader() })\n ).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n public deleteCalendarShiftById(id: string): Observable<boolean> {\n this.log.d('Deleting calendar shift', id);\n return from(\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .delete(id, this.getAuthHeader())\n );\n }\n\n /**\n * Generates CalendarShifts based on repeat configuration\n */\n private generateCalendarShifts(span: ShiftSpan): CalendarShiftModel[] {\n const shifts: CalendarShiftModel[] = [];\n const startDate = new Date(span.initialAt);\n let currentDate = new Date(startDate);\n let occurrenceCount = 0;\n\n // Determine the end date\n const endDate = span.finalizeAt\n ? new Date(span.finalizeAt)\n : this.calculateEndDateByOccurrences(startDate, span);\n\n while (currentDate <= endDate) {\n // Check if we've reached the maximum number of occurrences\n if (span.maxSlots && occurrenceCount >= span.maxSlots) {\n break;\n }\n\n // Add shift based on a recurrence type\n if (this.shouldAddShift(currentDate, span)) {\n const shift = new CalendarShiftModel();\n shift.startAt = currentDate;\n // Assume each shift lasts until end of day (you can adjust this)\n const endDateTime = new Date(currentDate);\n endDateTime.setHours(23, 59, 59, 999);\n shift.endAt = endDateTime;\n\n shifts.push(shift);\n occurrenceCount++;\n }\n\n // Move to next period\n currentDate = this.getNextDate(currentDate, span);\n }\n\n return shifts;\n }\n\n /**\n * Determines if a shift should be added on the current date\n */\n private shouldAddShift(date: Date, span: ShiftSpan): boolean {\n let ret = false;\n switch (span.type) {\n case RecurrenceType.DAILY:\n ret = true;\n break;\n case RecurrenceType.WEEKLY:\n if (span.daysOfWeek && span.daysOfWeek.length > 0) {\n const dayOfWeek = date.getDay();\n ret = span.daysOfWeek.includes(dayOfWeek);\n } else {\n ret = true;\n }\n break;\n case RecurrenceType.MONTHLY:\n if (span.dayOfMonth) {\n ret = date.getDate() === span.dayOfMonth;\n } else {\n ret = true;\n }\n break;\n default:\n ret = true;\n }\n\n return ret;\n }\n\n /**\n * Calculates the next date based on recurrence type\n */\n private getNextDate(currentDate: Date, span: ShiftSpan): Date {\n const nextDate = new Date(currentDate);\n\n switch (span.type) {\n case RecurrenceType.DAILY:\n nextDate.setDate(nextDate.getDate() + span.interval);\n break;\n\n case RecurrenceType.WEEKLY:\n nextDate.setDate(nextDate.getDate() + (7 * span.interval));\n break;\n\n case RecurrenceType.MONTHLY:\n nextDate.setMonth(nextDate.getMonth() + span.interval);\n break;\n }\n\n return nextDate;\n }\n\n /**\n * Calculates the end date based on number of occurrences\n */\n private calculateEndDateByOccurrences(startDate: Date, repeat: ShiftSpan): Date {\n if (!repeat.maxSlots) {\n // If no occurrences defined, set a reasonable limit (e.g., 1 year)\n const defaultEnd = new Date(startDate);\n defaultEnd.setFullYear(defaultEnd.getFullYear() + 1);\n return defaultEnd;\n }\n\n let estimatedEnd = new Date(startDate);\n\n switch (repeat.type) {\n case RecurrenceType.DAILY:\n estimatedEnd.setDate(estimatedEnd.getDate() + (repeat.maxSlots * repeat.interval));\n break;\n\n case RecurrenceType.WEEKLY:\n estimatedEnd.setDate(estimatedEnd.getDate() + (repeat.maxSlots * 7 * repeat.interval));\n break;\n\n case RecurrenceType.MONTHLY:\n estimatedEnd.setMonth(estimatedEnd.getMonth() + (repeat.maxSlots * repeat.interval));\n break;\n }\n\n return estimatedEnd;\n }\n\n /**\n * Fetches all CalendarShifts associated with a specific Shift ID\n */\n private getCalendarShiftsByShiftId(shiftId: string): Observable<CalendarShiftModel[]> {\n this.log.d('Fetching calendar shifts for shift', shiftId);\n\n const filter = `shiftId = \"${shiftId}\"`;\n\n return from(\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .getFullList<CalendarShiftModel>({ filter, ...this.getAuthHeader() })\n ).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n /**\n * Deletes multiple CalendarShifts in batch\n */\n private deleteCalendarShiftsBatch(calendarShiftIds: string[]): Observable<boolean> {\n if (calendarShiftIds.length === 0) {\n return from([true]);\n }\n\n this.log.d('Deleting calendar shifts batch', calendarShiftIds.length);\n\n // PocketBase batch ops could be disabled,\n // so we create a manual transaction using Promise.all\n const promises = calendarShiftIds.map(id =>\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .delete(id, this.getAuthHeader())\n );\n\n return from(Promise.all(promises)).pipe(\n switchMap(() => from([true])),\n catchError(err => this.handleError(err))\n );\n }\n\n /**\n * Restores CalendarShifts in case of rollback\n */\n private restoreCalendarShifts(calendarShifts: CalendarShiftModel[]): Observable<boolean> {\n if (calendarShifts.length === 0) {\n return from([true]);\n }\n\n this.log.d('Restoring calendar shifts', calendarShifts.length);\n\n // Recreate the CalendarShifts with their original data\n const promises = calendarShifts.map(cs =>\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .create({\n shiftId: cs.shiftId,\n startAt: cs.startAt,\n endAt: cs.endAt\n }, this.getAuthHeader())\n );\n\n return from(Promise.all(promises)).pipe(\n switchMap(() => from([true])),\n catchError(err => {\n this.log.e('Failed to restore calendar shifts during rollback', err);\n return this.handleError(err);\n })\n );\n }\n\n /**\n * Creates multiple CalendarShifts\n * TODO move to backend?\n */\n private createCalendarShiftsBatch(shifts: Partial<CalendarShiftModel>[]): Observable<any> {\n this.connect();\n\n if (shifts.length === 0) {\n return from([]);\n }\n\n this.log.d('Creating calendar shifts batch', shifts.length);\n\n const batch = this.connection.createBatch();\n for (const shift of shifts) {\n batch.collection(SdkConfig.Entities.CALENDAR_SHIFTS).create({ ...shift });\n }\n\n return from(batch.send()).pipe(\n catchError(err => this.handleError(err))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport 'cross-fetch/polyfill';\nimport { Observable } from 'rxjs';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { BaseResource } from '../base/base-resource.directive';\nimport { UserModel } from '../models/user.model';\n\n@Injectable()\nexport class CrewService extends BaseResource<UserModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\"\n };\n protected readonly Entity = SdkConfig.Entities.USERS;\n\n constructor() {\n super();\n }\n\n public override create(data: Partial<UserModel>): Observable<UserModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override update(id: string, data: Partial<UserModel>): Observable<UserModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override delete(id: string): Observable<boolean> {\n throw new Error(\"Method not supported.\");\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, tap } from 'rxjs';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { TeamModel } from '../models/team.model';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { HttpParams } from '@angular/common/http';\nimport { BaseResource } from '../base/base-resource.directive';\n\n@Injectable()\nexport class TeamsService extends BaseResource<TeamModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\",\n fields: \"id,name,isEnabled\"\n };\n protected readonly Entity = SdkConfig.Entities.TEAMS;\n\n constructor() {\n super()\n }\n\n // Unsupported methods\n /**\n * @\n */\n public override fetchOne(id: string): Observable<TeamModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override create(data: Partial<TeamModel>): Observable<TeamModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override update(id: string, data: Partial<TeamModel>): Observable<TeamModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override delete(id: string): Observable<boolean> {\n throw new Error(\"Method not supported.\");\n }\n\n // Alternative methods using Angular Http\n\n public getTeams(): Observable<IListDataResponse<TeamModel>> {\n const params = new HttpParams({\n fromObject: this.Options\n });\n return this.doGetList<TeamModel>(SdkConfig.Endpoints.TEAMS, params)\n .pipe(\n tap(d => this.log.d(\"teams!!\", d))\n );\n }\n\n public fetchTeams(): Observable<IListDataResponse<TeamModel>> {\n return this.getList<TeamModel>(SdkConfig.Entities.TEAMS, this.Options);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { BasePlain } from './base/base-plain.directive';\nimport { AuthService } from './resources/auth.service';\nimport { UserModel } from './models/user.model';\nimport { IListDataResponse } from './models/reponses/list-data.response';\nimport { AuthStoreService } from './services/auth-store.service';\nimport { MissionsService } from './resources/missions.service';\nimport { MissionModel } from './models/mission.model';\nimport { ShiftsService } from './resources/shifts.service';\nimport { ShiftModel } from './models/shift.model';\nimport { CrewService } from './resources/crew.service';\nimport { TeamsService } from './resources/teams.service';\nimport { TeamModel } from './models/team.model';\nimport { CalendarShiftModel } from \"./models/calendar-shift.model\";\n\n@Injectable()\nexport class MpSdkService extends BasePlain {\n\n private readonly authSrv = inject(AuthService);\n private readonly authStoreSrv = inject(AuthStoreService);\n\n constructor(private readonly missionsSrv: MissionsService,\n private readonly shiftsSrv: ShiftsService,\n private readonly staffSrv: CrewService,\n private readonly teamsSrv: TeamsService) {\n super();\n }\n\n // Auth\n public login(user: string, pass: string): Observable<UserModel> {\n return this.authSrv.login(user, pass);\n }\n\n public logout(): void {\n this.authSrv.logout();\n }\n\n public isLoggedIn(): boolean {\n return this.authStoreSrv.isStoredToken();\n }\n\n // Missions\n public getMissions(): Observable<IListDataResponse<MissionModel>> {\n return this.missionsSrv.fetchList();\n }\n\n public getArchivedMissions(): Observable<IListDataResponse<MissionModel>> {\n return this.missionsSrv.getArchived();\n }\n\n public getMissionById(id: string): Observable<MissionModel> {\n return this.missionsSrv.fetchOne(id);\n }\n\n public saveMission(m: Partial<MissionModel>): Observable<MissionModel> {\n return !m.id\n ? this.missionsSrv.create(m)\n : this.missionsSrv.update(m.id, m);\n }\n\n public deleteMission(id): Observable<boolean> {\n return this.missionsSrv.delete(id);\n }\n\n // Shifts\n public getShifts(): Observable<IListDataResponse<ShiftModel>> {\n return this.shiftsSrv.fetchList();\n }\n\n public getShiftById(id: string): Observable<ShiftModel> {\n return this.shiftsSrv.fetchOne(id);\n }\n\n public getCalendarShifts(year?: number): Observable<IListDataResponse<CalendarShiftModel>> {\n return this.shiftsSrv.getCalendarShifts()\n }\n\n public saveShift(m: Partial<ShiftModel>): Observable<ShiftModel> {\n return !m.id\n ? this.shiftsSrv.create(m)\n : this.shiftsSrv.update(m.id, m);\n }\n\n public deleteShift(id): Observable<boolean> {\n return this.shiftsSrv.delete(id);\n }\n\n public deleteCalendarShift(id): Observable<boolean> {\n return this.shiftsSrv.deleteCalendarShiftById(id);\n }\n\n // Staff\n public getStaffUsers(): Observable<IListDataResponse<UserModel>> {\n return this.staffSrv.fetchList();\n }\n\n public getStaffUser(id: string): Observable<UserModel> {\n return this.staffSrv.fetchOne(id);\n }\n\n public getStaffTeams(): Observable<IListDataResponse<TeamModel>> {\n return this.teamsSrv.fetchList();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport {\n HTTP_INTERCEPTORS,\n provideHttpClient,\n withInterceptorsFromDi\n} from '@angular/common/http';\n\n\nimport { AuthInterceptor } from './services/auth.interceptor';\nimport { Configuration } from './base/configuration.type';\nimport { AuthService } from './resources/auth.service';\nimport { AuthStoreService } from './services/auth-store.service';\nimport { MpSdkService } from './mp-sdk.service';\nimport { LoggerService } from './services/logger.service';\nimport { UtilsService } from './services/utils.service';\nimport { TeamsService } from './resources/teams.service';\nimport { MissionsService } from './resources/missions.service';\nimport { ShiftsService } from './resources/shifts.service';\nimport { CrewService } from './resources/crew.service';\n\nconst defaultConfig = (): Configuration => {\n return new Configuration({\n baseUrl: \"http://localhost:3000/api/\",\n secret: \"lwjhvkjdfhglk\",\n isProduction: false\n });\n};\n\n@NgModule({\n providers: [\n provideHttpClient(withInterceptorsFromDi()),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n LoggerService,\n UtilsService,\n AuthStoreService,\n AuthService,\n MissionsService,\n ShiftsService,\n TeamsService,\n CrewService,\n MpSdkService\n ]\n})\nexport class MpSdkModule\n{\n public static forRoot(\n configurationFactory: () => Configuration,\n ): ModuleWithProviders<MpSdkModule> {\n return {\n ngModule: MpSdkModule,\n providers: [{\n provide: Configuration,\n useFactory: configurationFactory || defaultConfig\n }],\n };\n }\n}\n","/*\n * Public API Surface of lib\n */\n\nexport * from \"./lib/models/calendar-shift.model\";\nexport * from \"./lib/models/event.model\";\nexport * from \"./lib/models/mission.model\";\nexport * from \"./lib/models/shift.model\";\nexport * from \"./lib/models/user.model\";\nexport * from \"./lib/models/team.model\";\n\nexport * from \"./lib/mp-sdk.module\";\nexport * from \"./lib/mp-sdk.service\";\nexport * from \"./lib/base/configuration.type\";\nexport * from \"./lib/services/auth-store.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LogLevel","i1.Configuration","i1.UtilsService","i1.AuthStoreService","catchError","i1.MissionsService","i2.ShiftsService","i3.CrewService","i4.TeamsService"],"mappings":"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"}
1
+ {"version":3,"file":"m481-mp-sdk-ng.mjs","sources":["../../../../projects/mp/sdk-ngx/src/lib/models/base.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/calendar-shift.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/event.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/mission.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/shift.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/user.model.ts","../../../../projects/mp/sdk-ngx/src/lib/models/team.model.ts","../../../../projects/mp/sdk-ngx/src/lib/services/logger.service.ts","../../../../projects/mp/sdk-ngx/src/lib/base/configuration.type.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-plain.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/services/utils.service.ts","../../../../projects/mp/sdk-ngx/src/lib/services/auth-store.service.ts","../../../../projects/mp/sdk-ngx/src/lib/services/auth.interceptor.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-main.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-pocket.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/mp-sdk.constants.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/auth.service.ts","../../../../projects/mp/sdk-ngx/src/lib/base/base-resource.directive.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/missions.service.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/shifts.service.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/users.service.ts","../../../../projects/mp/sdk-ngx/src/lib/resources/teams.service.ts","../../../../projects/mp/sdk-ngx/src/lib/mp-sdk.service.ts","../../../../projects/mp/sdk-ngx/src/lib/mp-sdk.module.ts","../../../../projects/mp/sdk-ngx/src/public-api.ts","../../../../projects/mp/sdk-ngx/src/m481-mp-sdk-ng.ts"],"sourcesContent":["\nexport abstract class BaseModel\n{\n public id: string;\n public created?: Date;\n public updated?: Date;\n}\n","import { BaseModel } from './base.model';\n\nexport class CalendarShiftModel extends BaseModel\n{\n\tpublic shiftId: string;\n public startAt: Date;\n public endAt: Date;\n public assignedUsersIds: Array<string>;\n}\n","import { BaseModel } from './base.model';\n\nexport type EventScope = \"mission\" | \"shift\" | \"user\";\n\nexport class EventModel extends BaseModel\n{\n\tpublic message: string;\n\tpublic scope: EventScope;\n\tpublic objectId: string;\n\tpublic userId: string;\n}\n","import { BaseModel } from './base.model';\nimport { TeamModel } from './team.model';\n\nexport class MissionModel extends BaseModel\n{\n\tpublic name: string;\n\tpublic isRegular: boolean;\n\tpublic color: string;\n\tpublic hours: Array<Array<number>>; // [ [11, 13], [17, 19] ] -\n \tpublic teamId: string;\n\tpublic team?: TeamModel;\n\tpublic isEnabled?: boolean;\n}\n","import { BaseModel } from './base.model';\nimport { MissionModel } from './mission.model';\n\nexport enum RecurrenceType {\n DAILY,\n WEEKLY,\n MONTHLY\n}\n\nexport interface ShiftSpan {\n initialAt: number;\n maxSlots: number;\n type?: RecurrenceType;\n interval?: number;\n daysOfWeek?: Array<number>;\n dayOfMonth?: number;\n finalizeAt?: number;\n}\n\nexport class ShiftModel extends BaseModel\n{\n\tpublic missionId: string;\n public missionHourIndex: number;\n\tpublic teamId: string;\n\tpublic assignedUsersIds: Array<string>;\n\tpublic mission?: MissionModel;\n public timespan: ShiftSpan;\n public isEnabled?: boolean;\n}\n","import { BaseModel } from './base.model';\nimport { RecordModel } from 'pocketbase';\n\nexport class UserModel extends BaseModel\n{\n\tpublic email: string;\n public username: string;\n\tpublic verified: boolean;\n\tpublic name: string;\n public teamsAdmin: Array<string>;\n public teamsMember: Array<string>;\n public password?: string;\n\tpublic avatar?: any;\n public avatarUrl?: string;\n public isEnabled?: boolean;\n}\n","import { BaseModel } from './base.model';\n\nexport class TeamModel extends BaseModel\n{\n\tpublic name: string;\n public slug: string;\n public isEnabled?: boolean;\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface ILogService {\n get(name: string, level: LogLevel): ILogger;\n}\n\nexport interface ILogger {\n d(...args: Array<unknown>): void;\n w(...args: Array<unknown>): void;\n e(...args: Array<unknown>): void;\n}\n\nexport enum LogLevel {\n ERROR = 0,\n WARN = 1,\n INFO = 2,\n DEBUG = 3,\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class LoggerService implements ILogService {\n public log = window.console;\n public LOG_FNS = [this.log.log, this.log.warn, this.log.error];\n public MSG_PREFIXES = [ [\"[\", \"]\"], [\"[\", \"] WARN: \"], [\"[\", \"] ERROR: \"] ];\n\n public get(prefix: string, level: LogLevel): ILogger {\n const logLevel = level || LogLevel.INFO;\n if (logLevel >= LogLevel.INFO) {\n this.LOG_FNS[0].call(this.log, \"[\" + prefix + \"] Logger created\");\n }\n const loggerFns = this.LOG_FNS.map((logTemplFn, i) => {\n return logTemplFn.bind(this.log, this.MSG_PREFIXES[i][0] + prefix + this.MSG_PREFIXES[i][1]);\n });\n return {\n d: (...args: Array<unknown>): void => {\n if (logLevel === LogLevel.DEBUG) {\n loggerFns[0].apply(this.log, [...args]);\n }\n },\n w: (...args: Array<unknown>): void => {\n if (logLevel >= LogLevel.WARN) {\n loggerFns[1].apply(this.log, [...args]);\n }\n },\n e: (...args: Array<unknown>): void => {\n if (logLevel >= LogLevel.ERROR) {\n loggerFns[2].apply(this.log, [...args]);\n }\n }\n };\n }\n\n}\n","export interface IConfigParams {\n baseUrl?: string;\n secret?: string;\n isProduction?: boolean;\n}\n\nexport class Configuration implements IConfigParams {\n public baseUrl: string;\n public secret?: string;\n public isProduction: boolean;\n\n public constructor(params: IConfigParams) {\n this.baseUrl = params.baseUrl || \"\";\n this.secret = params.secret;\n this.isProduction = params.isProduction || false;\n }\n}\n","import { Directive, inject } from \"@angular/core\";\n\nimport { LoggerService, ILogger, LogLevel } from \"../services/logger.service\";\nimport { Configuration } from './configuration.type';\n\n@Directive()\nexport abstract class BasePlain {\n\n protected log: ILogger;\n protected config = inject(Configuration);\n\n protected constructor(logLevel?: LogLevel) {\n const logger = inject(LoggerService);\n this.log = logger.get(\n this.constructor.name,\n logLevel || this.config.isProduction ? LogLevel.ERROR : LogLevel.DEBUG\n );\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { AES, enc } from \"crypto-js\";\nimport { Configuration } from \"../base/configuration.type\";\nimport { BasePlain } from '../base/base-plain.directive';\n\n@Injectable()\nexport class UtilsService extends BasePlain {\n constructor(private cfg: Configuration) {\n super();\n }\n\n public encryptText(text: string): string {\n let data = text;\n if (this.cfg.secret) {\n data = AES.encrypt(text, this.cfg.secret).toString();\n }\n\n return data;\n }\n\n public decryptText(data: string): string {\n let text = data;\n if (text) {\n if (this.cfg.secret) {\n const bytes = AES.decrypt(data.toString(), this.cfg.secret);\n const decrypted = bytes.toString(enc.Utf8);\n if (decrypted) {\n text = decrypted;\n } else {\n this.log.d(\"error decrypting\", data);\n }\n }\n }\n\n return text;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { UtilsService } from \"./utils.service\";\n\n@Injectable()\nexport class AuthStoreService {\n private readonly KEY_TOKEN = \"mp_sdk:token\";\n private token = \"\";\n\n public constructor(private utilsSrv: UtilsService) {\n }\n\n public setToken(token: string): void {\n this.token = this.utilsSrv.encryptText(token);\n sessionStorage.setItem(this.KEY_TOKEN, this.token);\n }\n\n public getToken(): string {\n const data = sessionStorage.getItem(this.KEY_TOKEN);\n return !!data ? this.utilsSrv.decryptText(data) : null;\n }\n\n public clearToken(): void {\n this.token = null;\n sessionStorage.removeItem(this.KEY_TOKEN);\n }\n\n public isStoredToken(): boolean {\n return this.getToken() !== null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from '@angular/router';\n\nimport { AuthStoreService } from './auth-store.service';\nimport { BasePlain } from '../base/base-plain.directive';\nimport { LogLevel } from './logger.service';\n\n@Injectable()\nexport class AuthInterceptor extends BasePlain implements HttpInterceptor {\n\n // URLs that don't require authentication\n private readonly excludedUrls = [\n '/auth/login',\n '/auth/register',\n '/public',\n '/health'\n ];\n\n constructor(private authStore: AuthStoreService,\n private router: Router) {\n super(LogLevel.DEBUG);\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n // Check if the URL should be excluded\n if (this.shouldExcludeUrl(req.url)) {\n return next.handle(req);\n }\n\n // Get token from AuthStore service\n const authToken = this.authStore.getToken();\n\n this.log.d(\"intercepting\", req.url, authToken);\n let ret: Observable<HttpEvent<any>>;\n if (authToken) {\n // Clone the request and add authorization header\n const authReq = req.clone({\n setHeaders: {\n Authorization: authToken\n }\n });\n // Continue with modified request and handle errors\n\n ret = next.handle(authReq).pipe(\n catchError((error: HttpErrorResponse) => this.handleAuthError(error))\n );\n } else {\n // If no token, continue with original request\n ret = next.handle(req);\n }\n\n return ret\n }\n\n private shouldExcludeUrl(url: string): boolean {\n return this.excludedUrls.some(excludedUrl => url.includes(excludedUrl));\n }\n\n private handleAuthError(error: HttpErrorResponse): Observable<never> {\n if (error.status === 401) {\n // Invalid or expired token\n this.log.w('Invalid or expired authentication token');\n this.authStore.clearToken();\n\n // Redirect to login\n this.router.navigate(['/login']);\n } else if (error.status === 403) {\n // Insufficient permissions\n this.log.w('Insufficient permissions to access the resource');\n }\n\n // Propagate error for component handling\n return throwError(() => error);\n }\n}\n","import { Directive, inject } from \"@angular/core\";;\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { catchError, from, map, Observable } from 'rxjs';\n\nimport { BasePlain } from \"./base-plain.directive\";\nimport { AuthStoreService } from \"../services/auth-store.service\";\nimport { Configuration } from './configuration.type';\nimport { LogLevel } from '../services/logger.service';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { BaseModel } from '../models/base.model';\n\n@Directive()\nexport abstract class BaseSdk extends BasePlain {\n\n protected authStore = inject(AuthStoreService);\n protected http = inject(HttpClient);\n\n protected doGet<T extends BaseModel>(endpoint: string, params?: HttpParams): Observable<T> {\n return this.http.get<T>(this.config.baseUrl + endpoint, {\n params,\n });\n }\n\n protected doGetList<T extends BaseModel>(endpoint: string, params?: HttpParams): Observable<IListDataResponse<T>> {\n return this.http.get<IListDataResponse<T>>(this.config.baseUrl + endpoint, {\n params,\n });\n }\n\n protected getAuthHeader(): { headers: { [key: string]: string; } } {\n return {\n headers: {\n \"Authorization\": this.authStore.getToken(),\n }\n }\n }\n\n protected handleError(error: any): void {\n this.log.e(\"Error\", error);\n }\n}\n","import { Directive } from \"@angular/core\";\nimport { HttpErrorResponse } from '@angular/common/http';\nimport PocketBase, { ClientResponseError, RecordListOptions, RecordOptions } from \"pocketbase\";\nimport Client from \"pocketbase\";\nimport 'cross-fetch/polyfill';\nimport { catchError, from, map, Observable, ObservableInput } from 'rxjs';\n\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { BaseModel } from '../models/base.model';\nimport { BaseSdk } from './base-main.directive';\n\n@Directive()\nexport class BasePocket extends BaseSdk {\n\n protected connection: Client;\n\n protected connect(): void {\n if (!this.connection) {\n this.connection = new PocketBase(this.config.baseUrl);\n\n }\n }\n\n protected getList<T extends BaseModel>(entity: string, options?: RecordListOptions): Observable<IListDataResponse<T>> {\n this.connect();\n this.log.d(\"getList --- entity\", entity, this.authStore.getToken());\n\n return from(\n this.connection.collection(entity).getList<T>(1, 20, this.buildOptions(options))\n ).pipe(\n catchError(err => this.handleError(err)),\n map(d => (d ? {\n page: d.page,\n pageSize: d.perPage,\n pagesTotal: d.totalPages,\n items: d.items,\n total: d.totalItems\n } : null))\n );\n }\n\n protected getOne<T extends BaseModel>(entity: string, id: string, options?: RecordOptions): Observable<T> {\n this.connect();\n this.log.d(\"fetchOne\", entity, this.authStore.getToken());\n return from(\n this.connection.collection(entity).getOne<T>(id, this.buildOptions(options))\n ).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n protected save<T extends BaseModel>(entity: string, data: Partial<T>): Observable<T> {\n this.connect();\n this.log.d(\"save\", entity, data?.id, this.authStore.getToken());\n const target = this.connection.collection(entity);\n let promise: Promise<T>;\n if (data.id) {\n promise = target.update<T>(data.id, data, this.getAuthHeader());\n } else {\n promise = target.create<T>(data, this.getAuthHeader());\n }\n\n return from(promise).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n protected remove(entity: string, id: string): Observable<boolean> {\n this.connect();\n this.log.d(\"remove\", entity, this.authStore.getToken());\n return from(\n this.connection.collection(entity).delete(id, this.getAuthHeader())\n ).pipe(\n catchError(err => this.handleError(err)),\n );\n }\n\n protected override handleError(error: any): ObservableInput<any> {\n if (error instanceof ClientResponseError) {\n this.log.w(\"Http error\", error.status);\n throw new HttpErrorResponse({\n error: error.originalError,\n status: error.status,\n url: error.url\n });\n } else {\n this.log.w(\"Error response unknown\", error);\n throw error;\n }\n }\n\n private buildOptions(options?: RecordListOptions | RecordOptions): RecordListOptions | RecordOptions {\n return options\n ? {...options, ...this.getAuthHeader()}\n : this.getAuthHeader();\n }\n}\n","\nexport class SdkConfig {\n public static readonly Entities = {\n AUTH: \"users\",\n USERS: \"users\",\n EVENTS: \"events\",\n MISSIONS: \"missions\",\n SHIFTS: \"shifts\",\n CALENDAR_SHIFTS: \"calendar_shifts\",\n TEAMS: \"teams\"\n }\n\n public static readonly Endpoints = {\n TEAMS: \"/api/collections/teams/records\"\n }\n\n public static readonly ModelKeys = {\n CREATE_AT: \"created\",\n UPDATE_AT: \"updated\"\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError, from, map, Observable } from 'rxjs';\nimport 'cross-fetch/polyfill';\n\nimport { UserModel } from '../models/user.model';\nimport { BasePocket } from '../base/base-pocket.directive';\nimport { SdkConfig } from '../mp-sdk.constants';\n\n@Injectable()\nexport class AuthService extends BasePocket {\n\n constructor() {\n super();\n }\n\n public login(user: string, pass: string): Observable<UserModel> {\n this.connect();\n return from(\n this.connection.collection(SdkConfig.Entities.AUTH).authWithPassword<UserModel>(user, pass)\n ).pipe(\n catchError(err => this.handleError(err)),\n map(data => {\n this.log.d(\"login ok\", data);\n this.authStore.setToken(data.token);\n return data.record;\n })\n )\n }\n\n public logout(): void {\n this.authStore.clearToken();\n }\n}\n","import { Directive } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { BasePocket } from './base-pocket.directive';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { BaseModel } from '../models/base.model';\nimport { SendOptions } from 'pocketbase';\n\n@Directive()\nexport abstract class BaseResource<T extends BaseModel> extends BasePocket {\n\n protected abstract readonly Options: SendOptions;\n protected abstract readonly Entity: string;\n\n public fetchList(): Observable<IListDataResponse<T>> {\n return this.getList<T>(this.Entity, this.Options);\n }\n\n public fetchOne(id: string): Observable<T> {\n return this.getOne<T>(this.Entity, id)\n }\n\n public create(data: Partial<T>): Observable<T> {\n return this.save<T>(this.Entity, data);\n }\n\n public update(id: string, data: Partial<T>): Observable<T> {\n return this.save<T>(this.Entity, {id, ...data});\n }\n\n public delete(id: string): Observable<boolean> {\n return this.remove(this.Entity, id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport 'cross-fetch/polyfill';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { BaseResource } from '../base/base-resource.directive';\nimport { MissionModel } from '../models/mission.model';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\n\n@Injectable()\nexport class MissionsService extends BaseResource<MissionModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\"\n };\n protected readonly Entity = SdkConfig.Entities.MISSIONS;\n\n constructor() {\n super();\n }\n\n public getArchived(): Observable<IListDataResponse<MissionModel>> {\n return this.getList<MissionModel>(SdkConfig.Entities.MISSIONS, {\n filter: \"isEnabled = false\"\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport 'cross-fetch/polyfill';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { BaseResource } from '../base/base-resource.directive';\nimport { ShiftModel, RecurrenceType, ShiftSpan } from '../models/shift.model';\nimport { CalendarShiftModel } from '../models/calendar-shift.model';\nimport { Observable, from, throwError, catchError, switchMap, map } from 'rxjs';\nimport { IListDataResponse } from \"../models/reponses/list-data.response\";\n\n@Injectable()\nexport class ShiftsService extends BaseResource<ShiftModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\"\n };\n\n protected readonly Entity = SdkConfig.Entities.SHIFTS;\n\n constructor() {\n super();\n }\n\n public override delete(id: string): Observable<boolean> {\n this.connect();\n\n // First, fetch all CalendarShifts associated with this Shift\n return this.getCalendarShiftsByShiftId(id).pipe(\n switchMap(calendarShifts => {\n // Store the IDs for potential rollback\n const calendarShiftIds = calendarShifts.map(cs => cs.id);\n\n // Delete all CalendarShifts first\n return this.deleteCalendarShiftsBatch(calendarShiftIds).pipe(\n switchMap(() => {\n // After successful CalendarShift deletion, delete the main Shift\n return super.delete(id).pipe(\n catchError(error => {\n // If Shift deletion fails, try to restore CalendarShifts\n this.log.e('Error deleting shift, attempting rollback...', error);\n return this.restoreCalendarShifts(calendarShifts).pipe(\n switchMap(() => throwError(() => new Error('Failed to delete shift. CalendarShifts have been restored.')))\n );\n })\n );\n }),\n catchError(error => {\n // If CalendarShift deletion fails, propagate the error\n this.log.e('Error deleting calendar shifts', error);\n return throwError(() => new Error('Failed to delete calendar shifts.'));\n })\n );\n }),\n catchError(error => {\n this.log.e('Error fetching calendar shifts for deletion', error);\n return throwError(() => error);\n })\n );\n }\n\n public getCalendarShifts(year?: number): Observable<IListDataResponse<CalendarShiftModel>> {\n this.log.d('Fetching calendar shifts');\n const y = year || new Date().getFullYear();\n const startDate = new Date(y, 0, 1);\n const endDate = new Date(y, 11, 31);\n this.log.d(\n `Fetching calendar shifts for year ${y}`,\n `Start date: ${startDate.toISOString()}`,\n `End date: ${endDate.toISOString()}`\n )\n const filter = `startAt >= \"${startDate.toISOString()}\" && endAt <= \"${endDate.toISOString()}\"`;\n\n return from(\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .getList<CalendarShiftModel>(1, 1000, { filter, ...this.getAuthHeader() })\n ).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n public deleteCalendarShiftById(id: string): Observable<boolean> {\n this.log.d('Deleting calendar shift', id);\n return from(\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .delete(id, this.getAuthHeader())\n );\n }\n\n /**\n * Fetches all CalendarShifts associated with a specific Shift ID\n */\n private getCalendarShiftsByShiftId(shiftId: string): Observable<CalendarShiftModel[]> {\n this.log.d('Fetching calendar shifts for shift', shiftId);\n\n const filter = `shiftId = \"${shiftId}\"`;\n\n return from(\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .getFullList<CalendarShiftModel>({ filter, ...this.getAuthHeader() })\n ).pipe(\n catchError(err => this.handleError(err))\n );\n }\n\n /**\n * Deletes multiple CalendarShifts in batch\n */\n private deleteCalendarShiftsBatch(calendarShiftIds: string[]): Observable<boolean> {\n if (calendarShiftIds.length === 0) {\n return from([true]);\n }\n\n this.log.d('Deleting calendar shifts batch', calendarShiftIds.length);\n\n // PocketBase batch ops could be disabled,\n // so we create a manual transaction using Promise.all\n const promises = calendarShiftIds.map(id =>\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .delete(id, this.getAuthHeader())\n );\n\n return from(Promise.all(promises)).pipe(\n switchMap(() => from([true])),\n catchError(err => this.handleError(err))\n );\n }\n\n /**\n * Restores CalendarShifts in case of rollback\n */\n private restoreCalendarShifts(calendarShifts: CalendarShiftModel[]): Observable<boolean> {\n if (calendarShifts.length === 0) {\n return from([true]);\n }\n\n this.log.d('Restoring calendar shifts', calendarShifts.length);\n\n // Recreate the CalendarShifts with their original data\n const promises = calendarShifts.map(cs =>\n this.connection.collection(SdkConfig.Entities.CALENDAR_SHIFTS)\n .create({\n shiftId: cs.shiftId,\n startAt: cs.startAt,\n endAt: cs.endAt\n }, this.getAuthHeader())\n );\n\n return from(Promise.all(promises)).pipe(\n switchMap(() => from([true])),\n catchError(err => {\n this.log.e('Failed to restore calendar shifts during rollback', err);\n return this.handleError(err);\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport 'cross-fetch/polyfill';\nimport { Observable } from 'rxjs';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { BaseResource } from '../base/base-resource.directive';\nimport { UserModel } from '../models/user.model';\n\n@Injectable()\nexport class UsersService extends BaseResource<UserModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\"\n };\n protected readonly Entity = SdkConfig.Entities.USERS;\n\n constructor() {\n super();\n }\n\n public override create(data: Partial<UserModel>): Observable<UserModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override update(id: string, data: Partial<UserModel>): Observable<UserModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override delete(id: string): Observable<boolean> {\n throw new Error(\"Method not supported.\");\n }\n\n public findNotAvailable(): Observable<Array<string>> {\n throw new Error();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, tap } from 'rxjs';\n\nimport { SdkConfig } from '../mp-sdk.constants';\nimport { TeamModel } from '../models/team.model';\nimport { IListDataResponse } from '../models/reponses/list-data.response';\nimport { HttpParams } from '@angular/common/http';\nimport { BaseResource } from '../base/base-resource.directive';\n\n@Injectable()\nexport class TeamsService extends BaseResource<TeamModel> {\n\n protected readonly Options = {\n filter: \"isEnabled = true\",\n fields: \"id,name,isEnabled\"\n };\n protected readonly Entity = SdkConfig.Entities.TEAMS;\n\n constructor() {\n super()\n }\n\n // Unsupported methods\n /**\n * @\n */\n public override fetchOne(id: string): Observable<TeamModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override create(data: Partial<TeamModel>): Observable<TeamModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override update(id: string, data: Partial<TeamModel>): Observable<TeamModel> {\n throw new Error(\"Method not supported.\");\n }\n\n public override delete(id: string): Observable<boolean> {\n throw new Error(\"Method not supported.\");\n }\n\n // Alternative methods using Angular Http\n\n public getTeams(): Observable<IListDataResponse<TeamModel>> {\n const params = new HttpParams({\n fromObject: this.Options\n });\n return this.doGetList<TeamModel>(SdkConfig.Endpoints.TEAMS, params)\n .pipe(\n tap(d => this.log.d(\"teams!!\", d))\n );\n }\n\n public fetchTeams(): Observable<IListDataResponse<TeamModel>> {\n return this.getList<TeamModel>(SdkConfig.Entities.TEAMS, this.Options);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { BasePlain } from './base/base-plain.directive';\nimport { AuthService } from './resources/auth.service';\nimport { UserModel } from './models/user.model';\nimport { IListDataResponse } from './models/reponses/list-data.response';\nimport { AuthStoreService } from './services/auth-store.service';\nimport { MissionsService } from './resources/missions.service';\nimport { MissionModel } from './models/mission.model';\nimport { ShiftsService } from './resources/shifts.service';\nimport { ShiftModel } from './models/shift.model';\nimport { UsersService } from './resources/users.service';\nimport { TeamsService } from './resources/teams.service';\nimport { TeamModel } from './models/team.model';\nimport { CalendarShiftModel } from \"./models/calendar-shift.model\";\n\n@Injectable()\nexport class MpSdkService extends BasePlain {\n\n private readonly authSrv = inject(AuthService);\n private readonly authStoreSrv = inject(AuthStoreService);\n\n constructor(private readonly missionsSrv: MissionsService,\n private readonly shiftsSrv: ShiftsService,\n private readonly usersSrv: UsersService,\n private readonly teamsSrv: TeamsService) {\n super();\n }\n\n // Auth\n public login(user: string, pass: string): Observable<UserModel> {\n return this.authSrv.login(user, pass);\n }\n\n public logout(): void {\n this.authSrv.logout();\n }\n\n public isLoggedIn(): boolean {\n return this.authStoreSrv.isStoredToken();\n }\n\n // Missions\n public getMissions(): Observable<IListDataResponse<MissionModel>> {\n return this.missionsSrv.fetchList();\n }\n\n public getArchivedMissions(): Observable<IListDataResponse<MissionModel>> {\n return this.missionsSrv.getArchived();\n }\n\n public getMissionById(id: string): Observable<MissionModel> {\n return this.missionsSrv.fetchOne(id);\n }\n\n public saveMission(m: Partial<MissionModel>): Observable<MissionModel> {\n return !m.id\n ? this.missionsSrv.create(m)\n : this.missionsSrv.update(m.id, m);\n }\n\n public deleteMission(id): Observable<boolean> {\n return this.missionsSrv.delete(id);\n }\n\n // Shifts\n public getShifts(): Observable<IListDataResponse<ShiftModel>> {\n return this.shiftsSrv.fetchList();\n }\n\n public getShiftById(id: string): Observable<ShiftModel> {\n return this.shiftsSrv.fetchOne(id);\n }\n\n public getCalendarShifts(year?: number): Observable<IListDataResponse<CalendarShiftModel>> {\n return this.shiftsSrv.getCalendarShifts()\n }\n\n public saveShift(m: Partial<ShiftModel>): Observable<ShiftModel> {\n return !m.id\n ? this.shiftsSrv.create(m)\n : this.shiftsSrv.update(m.id, m);\n }\n\n public deleteShift(id): Observable<boolean> {\n return this.shiftsSrv.delete(id);\n }\n\n public deleteCalendarShift(id): Observable<boolean> {\n return this.shiftsSrv.deleteCalendarShiftById(id);\n }\n\n // Users\n public getUsers(): Observable<IListDataResponse<UserModel>> {\n return this.usersSrv.fetchList();\n }\n\n public getUserById(id: string): Observable<UserModel> {\n return this.usersSrv.fetchOne(id);\n }\n\n public getNotAvailableUsers(startAt: number, endAt: number): Observable<Array<string>> {\n return this.usersSrv.findNotAvailable();\n }\n\n // Teams\n\n public getTeams(): Observable<IListDataResponse<TeamModel>> {\n return this.teamsSrv.fetchList();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport {\n HTTP_INTERCEPTORS,\n provideHttpClient,\n withInterceptorsFromDi\n} from '@angular/common/http';\n\n\nimport { AuthInterceptor } from './services/auth.interceptor';\nimport { Configuration } from './base/configuration.type';\nimport { AuthService } from './resources/auth.service';\nimport { AuthStoreService } from './services/auth-store.service';\nimport { MpSdkService } from './mp-sdk.service';\nimport { LoggerService } from './services/logger.service';\nimport { UtilsService } from './services/utils.service';\nimport { TeamsService } from './resources/teams.service';\nimport { MissionsService } from './resources/missions.service';\nimport { ShiftsService } from './resources/shifts.service';\nimport { UsersService } from './resources/users.service';\n\nconst defaultConfig = (): Configuration => {\n return new Configuration({\n baseUrl: \"http://localhost:3000/api/\",\n secret: \"lwjhvkjdfhglk\",\n isProduction: false\n });\n};\n\n@NgModule({\n providers: [\n provideHttpClient(withInterceptorsFromDi()),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n LoggerService,\n UtilsService,\n AuthStoreService,\n AuthService,\n MissionsService,\n ShiftsService,\n TeamsService,\n UsersService,\n MpSdkService\n ]\n})\nexport class MpSdkModule\n{\n public static forRoot(\n configurationFactory: () => Configuration,\n ): ModuleWithProviders<MpSdkModule> {\n return {\n ngModule: MpSdkModule,\n providers: [{\n provide: Configuration,\n useFactory: configurationFactory || defaultConfig\n }],\n };\n }\n}\n","/*\n * Public API Surface of lib\n */\n\nexport * from \"./lib/models/calendar-shift.model\";\nexport * from \"./lib/models/event.model\";\nexport * from \"./lib/models/mission.model\";\nexport * from \"./lib/models/shift.model\";\nexport * from \"./lib/models/user.model\";\nexport * from \"./lib/models/team.model\";\n\nexport * from \"./lib/mp-sdk.module\";\nexport * from \"./lib/mp-sdk.service\";\nexport * from \"./lib/base/configuration.type\";\nexport * from \"./lib/services/auth-store.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LogLevel","i1.Configuration","i1.UtilsService","i1.AuthStoreService","catchError","i1.MissionsService","i2.ShiftsService","i3.UsersService","i4.TeamsService"],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare class CalendarShiftModel extends BaseModel {
3
3
  shiftId: string;
4
4
  startAt: Date;
5
5
  endAt: Date;
6
+ assignedUsersIds: Array<string>;
6
7
  }
@@ -6,7 +6,7 @@ import { MissionsService } from './resources/missions.service';
6
6
  import { MissionModel } from './models/mission.model';
7
7
  import { ShiftsService } from './resources/shifts.service';
8
8
  import { ShiftModel } from './models/shift.model';
9
- import { CrewService } from './resources/crew.service';
9
+ import { UsersService } from './resources/users.service';
10
10
  import { TeamsService } from './resources/teams.service';
11
11
  import { TeamModel } from './models/team.model';
12
12
  import { CalendarShiftModel } from "./models/calendar-shift.model";
@@ -14,11 +14,11 @@ import * as i0 from "@angular/core";
14
14
  export declare class MpSdkService extends BasePlain {
15
15
  private readonly missionsSrv;
16
16
  private readonly shiftsSrv;
17
- private readonly staffSrv;
17
+ private readonly usersSrv;
18
18
  private readonly teamsSrv;
19
19
  private readonly authSrv;
20
20
  private readonly authStoreSrv;
21
- constructor(missionsSrv: MissionsService, shiftsSrv: ShiftsService, staffSrv: CrewService, teamsSrv: TeamsService);
21
+ constructor(missionsSrv: MissionsService, shiftsSrv: ShiftsService, usersSrv: UsersService, teamsSrv: TeamsService);
22
22
  login(user: string, pass: string): Observable<UserModel>;
23
23
  logout(): void;
24
24
  isLoggedIn(): boolean;
@@ -33,9 +33,10 @@ export declare class MpSdkService extends BasePlain {
33
33
  saveShift(m: Partial<ShiftModel>): Observable<ShiftModel>;
34
34
  deleteShift(id: any): Observable<boolean>;
35
35
  deleteCalendarShift(id: any): Observable<boolean>;
36
- getStaffUsers(): Observable<IListDataResponse<UserModel>>;
37
- getStaffUser(id: string): Observable<UserModel>;
38
- getStaffTeams(): Observable<IListDataResponse<TeamModel>>;
36
+ getUsers(): Observable<IListDataResponse<UserModel>>;
37
+ getUserById(id: string): Observable<UserModel>;
38
+ getNotAvailableUsers(startAt: number, endAt: number): Observable<Array<string>>;
39
+ getTeams(): Observable<IListDataResponse<TeamModel>>;
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<MpSdkService, never>;
40
41
  static ɵprov: i0.ɵɵInjectableDeclaration<MpSdkService>;
41
42
  }
@@ -11,26 +11,9 @@ export declare class ShiftsService extends BaseResource<ShiftModel> {
11
11
  };
12
12
  protected readonly Entity: string;
13
13
  constructor();
14
- createWithCalendarShifts(data: Partial<ShiftModel>): Observable<ShiftModel>;
15
14
  delete(id: string): Observable<boolean>;
16
15
  getCalendarShifts(year?: number): Observable<IListDataResponse<CalendarShiftModel>>;
17
16
  deleteCalendarShiftById(id: string): Observable<boolean>;
18
- /**
19
- * Generates CalendarShifts based on repeat configuration
20
- */
21
- private generateCalendarShifts;
22
- /**
23
- * Determines if a shift should be added on the current date
24
- */
25
- private shouldAddShift;
26
- /**
27
- * Calculates the next date based on recurrence type
28
- */
29
- private getNextDate;
30
- /**
31
- * Calculates the end date based on number of occurrences
32
- */
33
- private calculateEndDateByOccurrences;
34
17
  /**
35
18
  * Fetches all CalendarShifts associated with a specific Shift ID
36
19
  */
@@ -43,11 +26,6 @@ export declare class ShiftsService extends BaseResource<ShiftModel> {
43
26
  * Restores CalendarShifts in case of rollback
44
27
  */
45
28
  private restoreCalendarShifts;
46
- /**
47
- * Creates multiple CalendarShifts
48
- * TODO move to backend?
49
- */
50
- private createCalendarShiftsBatch;
51
29
  static ɵfac: i0.ɵɵFactoryDeclaration<ShiftsService, never>;
52
30
  static ɵprov: i0.ɵɵInjectableDeclaration<ShiftsService>;
53
31
  }
@@ -3,7 +3,7 @@ import { Observable } from 'rxjs';
3
3
  import { BaseResource } from '../base/base-resource.directive';
4
4
  import { UserModel } from '../models/user.model';
5
5
  import * as i0 from "@angular/core";
6
- export declare class CrewService extends BaseResource<UserModel> {
6
+ export declare class UsersService extends BaseResource<UserModel> {
7
7
  protected readonly Options: {
8
8
  filter: string;
9
9
  };
@@ -12,6 +12,7 @@ export declare class CrewService extends BaseResource<UserModel> {
12
12
  create(data: Partial<UserModel>): Observable<UserModel>;
13
13
  update(id: string, data: Partial<UserModel>): Observable<UserModel>;
14
14
  delete(id: string): Observable<boolean>;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<CrewService, never>;
16
- static ɵprov: i0.ɵɵInjectableDeclaration<CrewService>;
15
+ findNotAvailable(): Observable<Array<string>>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<UsersService, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<UsersService>;
17
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m481/mp-sdk-ng",
3
- "version": "0.1.2-alpha.13",
3
+ "version": "0.1.2-alpha.14",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0"