@oneuptime/common 7.0.2513 → 7.0.2550
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.
- package/AnalyticsModels/BaseModel.ts +437 -443
- package/AnalyticsModels/CommonModel.ts +216 -226
- package/AnalyticsModels/NestedModel.ts +5 -5
- package/Models/AccessControlModel.ts +10 -10
- package/Models/BaseModel.ts +662 -670
- package/Models/FileModel.ts +102 -102
- package/Models/GlobalConfig.ts +5 -5
- package/Models/TenantModel.ts +8 -8
- package/Models/UserModel.ts +8 -8
- package/ServiceRoute.ts +17 -17
- package/Tests/MockType.ts +9 -0
- package/Tests/Spy.ts +11 -0
- package/Tests/Types/API/ErrorResponse.test.ts +14 -14
- package/Tests/Types/API/HTTPErrorResponse.test.ts +55 -55
- package/Tests/Types/API/HTTPMethod.test.ts +14 -14
- package/Tests/Types/API/Headers.test.ts +13 -13
- package/Tests/Types/API/Hostname.test.ts +20 -20
- package/Tests/Types/API/Protocal.test.ts +17 -17
- package/Tests/Types/API/Response.test.ts +19 -19
- package/Tests/Types/API/ResponseType.test.ts +11 -11
- package/Tests/Types/API/Route.test.ts +28 -28
- package/Tests/Types/API/StatusCode.test.ts +24 -24
- package/Tests/Types/API/URL.test.ts +39 -39
- package/Tests/Types/Alerts/AlertEventType.test.ts +46 -46
- package/Tests/Types/Alerts/AlertType.test.ts +17 -17
- package/Tests/Types/AppEnvironment.test.ts +11 -11
- package/Tests/Types/ApplicationLog/ApplicationLogType.test.ts +11 -11
- package/Tests/Types/ArrayUtil.test.ts +77 -77
- package/Tests/Types/Billing/SubscriptionPlan.test.ts +255 -270
- package/Tests/Types/BrandColors.test.ts +138 -138
- package/Tests/Types/Char.test.ts +81 -81
- package/Tests/Types/Code/CodeType.test.ts +11 -11
- package/Tests/Types/Color.test.ts +42 -42
- package/Tests/Types/Company/CompanySize.test.ts +17 -17
- package/Tests/Types/Company/JobRole.test.ts +20 -20
- package/Tests/Types/Countries.test.ts +287 -301
- package/Tests/Types/Database/ColumnLength.test.ts +41 -41
- package/Tests/Types/Database/ColumnType.test.ts +77 -77
- package/Tests/Types/Database/Columns.test.ts +18 -18
- package/Tests/Types/Database/CompareBase.test.ts +32 -32
- package/Tests/Types/Database/Date.test.ts +73 -75
- package/Tests/Types/Database/EqualToOrNull.test.ts +61 -61
- package/Tests/Types/Database/InBetween.test.ts +71 -71
- package/Tests/Types/Database/LimitMax.test.ts +14 -14
- package/Tests/Types/Database/NotEqual.test.ts +15 -15
- package/Tests/Types/Database/Search.test.ts +8 -8
- package/Tests/Types/DatabaseType.test.ts +5 -5
- package/Tests/Types/Date.test.ts +87 -93
- package/Tests/Types/Dictionary.test.ts +22 -22
- package/Tests/Types/Domain.test.ts +36 -36
- package/Tests/Types/Email/Email.test.ts +55 -55
- package/Tests/Types/EmailWithName.test.ts +46 -46
- package/Tests/Types/EncryptionAlgorithm.test.ts +5 -5
- package/Tests/Types/Exception/ApiException.test.ts +12 -13
- package/Tests/Types/Exception/BadDataException.test.ts +12 -12
- package/Tests/Types/Exception/BadOperationException.test.ts +12 -13
- package/Tests/Types/Exception/BadRequestException.test.ts +12 -12
- package/Tests/Types/Exception/DatabaseNotConnectedException.test.ts +10 -10
- package/Tests/Types/Exception/Exception.test.ts +15 -17
- package/Tests/Types/Exception/NotImplementedException.test.ts +10 -10
- package/Tests/Types/File.test.ts +20 -20
- package/Tests/Types/HashedString.test.ts +18 -18
- package/Tests/Types/Html.test.ts +6 -6
- package/Tests/Types/IP/IP.test.ts +65 -67
- package/Tests/Types/IP/IPType.test.ts +8 -8
- package/Tests/Types/IP/IPv4.test.ts +15 -15
- package/Tests/Types/IP/IPv6.test.ts +15 -15
- package/Tests/Types/JSON.test.ts +35 -35
- package/Tests/Types/JSONFunctions.test.ts +41 -44
- package/Tests/Types/ListData.test.ts +33 -33
- package/Tests/Types/Name.test.ts +24 -24
- package/Tests/Types/ObjectID.test.ts +10 -10
- package/Tests/Types/Permission.test.ts +8 -8
- package/Tests/Types/Phone.test.ts +35 -35
- package/Tests/Types/Port.test.ts +33 -33
- package/Tests/Types/PositiveNumber.test.ts +123 -123
- package/Tests/Types/SecuritySeverity.test.ts +14 -14
- package/Tests/Types/SerializableObject.test.ts +33 -34
- package/Tests/Types/Sleep.test.ts +16 -19
- package/Tests/Types/Text.test.ts +6 -8
- package/Tests/Types/Timezone.test.ts +644 -674
- package/Tests/Types/Typeof.test.ts +14 -14
- package/Tests/Types/UserType.test.ts +14 -14
- package/Tests/Types/Version.test.ts +33 -33
- package/Tests/Types/XML.test.ts +33 -33
- package/Tests/Utils/API.test.ts +339 -342
- package/Tests/Utils/Analytics.test.ts +65 -65
- package/Tests/Utils/CronTime.test.ts +26 -26
- package/Tests/Utils/Faker.test.ts +30 -32
- package/Tests/Utils/Slug.test.ts +20 -20
- package/Tests/Utils/UUID.test.ts +10 -10
- package/Types/API/EmptyResponse.ts +1 -1
- package/Types/API/HTTPErrorResponse.ts +18 -21
- package/Types/API/HTTPMethod.ts +5 -5
- package/Types/API/HTTPResponse.ts +108 -110
- package/Types/API/Headers.ts +1 -1
- package/Types/API/Hostname.ts +94 -94
- package/Types/API/Protocol.ts +6 -6
- package/Types/API/ResponseType.ts +3 -3
- package/Types/API/Route.ts +76 -76
- package/Types/API/StatusCode.ts +31 -34
- package/Types/API/URL.ts +217 -221
- package/Types/Alerts/AlertEventType.ts +10 -10
- package/Types/Alerts/AlertType.ts +5 -5
- package/Types/AnalyticsDatabase/AnalyticsTableEngine.ts +1 -1
- package/Types/AnalyticsDatabase/TableColumn.ts +157 -160
- package/Types/AnalyticsDatabase/TableColumnType.ts +12 -12
- package/Types/AppEnvironment.ts +3 -3
- package/Types/ApplicationLog/ApplicationLogType.ts +3 -3
- package/Types/ArrayUtil.ts +68 -70
- package/Types/BaseDatabase/AccessControl.ts +5 -5
- package/Types/BaseDatabase/ColumnBillingAccessControl.ts +4 -4
- package/Types/BaseDatabase/DatabaseCommonInteractionProps.ts +20 -20
- package/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.ts +75 -76
- package/Types/BaseDatabase/DatabaseType.ts +2 -2
- package/Types/BaseDatabase/EnableWorkflowOn.ts +4 -4
- package/Types/BaseDatabase/EqualToOrNull.ts +29 -29
- package/Types/BaseDatabase/GreaterThan.ts +18 -18
- package/Types/BaseDatabase/GreaterThanOrEqual.ts +18 -18
- package/Types/BaseDatabase/InBetween.ts +61 -61
- package/Types/BaseDatabase/Includes.ts +32 -34
- package/Types/BaseDatabase/IsNull.ts +21 -21
- package/Types/BaseDatabase/LessThan.ts +18 -18
- package/Types/BaseDatabase/LessThanOrEqual.ts +18 -18
- package/Types/BaseDatabase/ModelPermission.ts +31 -31
- package/Types/BaseDatabase/NotEqual.ts +29 -29
- package/Types/BaseDatabase/NotNull.ts +21 -21
- package/Types/BaseDatabase/Search.ts +34 -34
- package/Types/BaseDatabase/SortOrder.ts +2 -2
- package/Types/BaseDatabase/TableBillingAccessControl.ts +5 -5
- package/Types/Billing/MeteredPlan.ts +21 -21
- package/Types/Billing/SubscriptionPlan.ts +223 -228
- package/Types/Billing/SubscriptionStatus.ts +23 -23
- package/Types/BrandColors.ts +60 -60
- package/Types/BrowserType.ts +3 -3
- package/Types/Calendar/CalendarEvent.ts +9 -9
- package/Types/Call/CallRequest.ts +19 -19
- package/Types/Call/CallStatus.ts +5 -5
- package/Types/CallAndSMS/TwilioConfig.ts +4 -4
- package/Types/Char.ts +62 -62
- package/Types/Code/CodeType.ts +7 -7
- package/Types/CodeRepository/CodeRepositoryType.ts +6 -0
- package/Types/CodeRepository/PullRequest.ts +16 -0
- package/Types/CodeRepository/PullRequestState.ts +7 -0
- package/Types/Color.ts +88 -88
- package/Types/Company/CompanySize.ts +5 -5
- package/Types/Company/JobRole.ts +6 -6
- package/Types/Copilot/CopilotEventStatus.ts +6 -0
- package/Types/Copilot/CopilotEventType.ts +6 -0
- package/Types/Countries.ts +243 -243
- package/Types/Currency.ts +23 -23
- package/Types/CustomField/CustomFieldType.ts +3 -3
- package/Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid.ts +4 -4
- package/Types/Database/AccessControl/ColumnAccessControl.ts +33 -33
- package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +34 -36
- package/Types/Database/AccessControl/TableAccessControl.ts +16 -16
- package/Types/Database/AccessControl/TableBillingAccessControl.ts +16 -16
- package/Types/Database/AccessControlColumn.ts +4 -4
- package/Types/Database/AllowUserQueryWithoutTenant.ts +4 -4
- package/Types/Database/CanAccessIfCanReadOn.ts +6 -6
- package/Types/Database/ColumnLength.ts +61 -61
- package/Types/Database/ColumnType.ts +33 -33
- package/Types/Database/Columns.ts +16 -16
- package/Types/Database/CompareBase.ts +28 -28
- package/Types/Database/CrudApiEndpoint.ts +5 -5
- package/Types/Database/CurrentUserCanAccessRecordBy.ts +4 -4
- package/Types/Database/DatabaseProperty.ts +42 -42
- package/Types/Database/Date.ts +20 -20
- package/Types/Database/EnableDocumentation.ts +6 -7
- package/Types/Database/EnableWorkflow.ts +5 -5
- package/Types/Database/IsPermissionsIf.ts +12 -12
- package/Types/Database/LabelsColumn.ts +4 -4
- package/Types/Database/MultiTenentQueryAllowed.ts +4 -4
- package/Types/Database/PartialEntity.ts +1 -1
- package/Types/Database/SlugifyColumn.ts +5 -5
- package/Types/Database/TableColumn.ts +42 -42
- package/Types/Database/TableColumnType.ts +39 -39
- package/Types/Database/TableMetadata.ts +14 -14
- package/Types/Database/TenantColumn.ts +4 -4
- package/Types/Database/TotalItemsBy.ts +9 -9
- package/Types/Database/UniqueColumnBy.ts +27 -27
- package/Types/DatabaseType.ts +2 -2
- package/Types/Date.ts +965 -978
- package/Types/Day/DayOfWeek.ts +24 -24
- package/Types/Decimal.ts +57 -57
- package/Types/Dictionary.ts +1 -1
- package/Types/DiskSize.ts +32 -32
- package/Types/Domain.ts +74 -74
- package/Types/Email/EmailBody.ts +2 -2
- package/Types/Email/EmailMessage.ts +8 -8
- package/Types/Email/EmailServer.ts +12 -12
- package/Types/Email/EmailTemplate.ts +5 -5
- package/Types/Email/EmailTemplateType.ts +36 -36
- package/Types/Email.ts +99 -101
- package/Types/EmailWithName.ts +26 -26
- package/Types/EncryptionAlgorithm.ts +1 -1
- package/Types/Events/EventInterval.ts +5 -5
- package/Types/Events/Recurring.ts +90 -92
- package/Types/Exception/ApiException.ts +5 -5
- package/Types/Exception/BadDataException.ts +5 -5
- package/Types/Exception/BadOperationException.ts +5 -5
- package/Types/Exception/BadRequestException.ts +5 -5
- package/Types/Exception/DatabaseNotConnectedException.ts +8 -8
- package/Types/Exception/Exception.ts +15 -15
- package/Types/Exception/ExceptionCode.ts +17 -17
- package/Types/Exception/NotAuthenticatedException.ts +5 -5
- package/Types/Exception/NotAuthorizedException.ts +5 -5
- package/Types/Exception/NotFoundException.ts +5 -5
- package/Types/Exception/NotImplementedException.ts +8 -8
- package/Types/Exception/PaymentRequiredException.ts +5 -5
- package/Types/Exception/ServerException.ts +5 -5
- package/Types/Exception/SsoAuthorizationException.ts +12 -12
- package/Types/Exception/TenantNotFoundException.ts +5 -5
- package/Types/Exception/TimeoutException.ts +5 -5
- package/Types/Exception/UnableToReachServer.ts +5 -5
- package/Types/Exception/WebsiteRequestException.ts +5 -5
- package/Types/File/MimeType.ts +5 -5
- package/Types/File.ts +2 -2
- package/Types/Filter/FilterCondition.ts +2 -2
- package/Types/Filter/FilterType.ts +6 -6
- package/Types/HashCode.ts +8 -8
- package/Types/HashedString.ts +80 -82
- package/Types/Html.ts +13 -13
- package/Types/IP/IP.ts +93 -93
- package/Types/IP/IPType.ts +2 -2
- package/Types/IP/IPv4.ts +7 -7
- package/Types/IP/IPv6.ts +7 -7
- package/Types/Icon/IconProp.ts +122 -122
- package/Types/Infrastructure/BasicMetrics.ts +15 -15
- package/Types/Infrastructure/OSType.ts +4 -4
- package/Types/IsolatedVM/ReturnResult.ts +2 -2
- package/Types/JSON.ts +139 -139
- package/Types/JSONFunctions.ts +310 -320
- package/Types/JsonWebTokenData.ts +11 -11
- package/Types/Link.ts +5 -5
- package/Types/ListData.ts +26 -26
- package/Types/Mail/MailStatus.ts +2 -2
- package/Types/MeteredPlan/ProductType.ts +4 -4
- package/Types/Mixins.ts +1 -1
- package/Types/Monitor/CriteriaFilter.ts +107 -107
- package/Types/Monitor/CriteriaIncident.ts +7 -7
- package/Types/Monitor/CustomCodeMonitor/CustomCodeMonitorResponse.ts +5 -5
- package/Types/Monitor/IncomingMonitor/IncomingMonitorRequest.ts +10 -10
- package/Types/Monitor/MonitorCriteria.ts +151 -162
- package/Types/Monitor/MonitorCriteriaInstance.ts +622 -628
- package/Types/Monitor/MonitorStep.ts +314 -319
- package/Types/Monitor/MonitorSteps.ts +156 -161
- package/Types/Monitor/MonitorType.ts +164 -154
- package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +12 -12
- package/Types/Monitor/ServerMonitor/ServerMonitorResponse.ts +10 -10
- package/Types/Monitor/SyntheticMonitors/BrowserType.ts +1 -1
- package/Types/Monitor/SyntheticMonitors/ScreenSizeType.ts +1 -1
- package/Types/Monitor/SyntheticMonitors/Screenshot.ts +1 -1
- package/Types/Monitor/SyntheticMonitors/SyntheticMonitorResponse.ts +8 -8
- package/Types/Name.ts +65 -65
- package/Types/NotificationRule/NotificationRuleType.ts +3 -3
- package/Types/NotificationSetting/NotificationSettingEventType.ts +18 -18
- package/Types/ObjectID.ts +73 -73
- package/Types/OnCallDutyPolicy/Layer.ts +782 -824
- package/Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus.ts +6 -6
- package/Types/OnCallDutyPolicy/OnCallDutyPolicyAlertStatus.ts +3 -3
- package/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.ts +5 -5
- package/Types/OnCallDutyPolicy/RestrictionTimes.ts +177 -179
- package/Types/Operation/OperationResult.ts +2 -2
- package/Types/Operation/OperationStatus.ts +5 -5
- package/Types/Permission.ts +3373 -3412
- package/Types/Phone.ts +58 -59
- package/Types/Port.ts +73 -73
- package/Types/PositiveNumber.ts +53 -61
- package/Types/PricingPlan.ts +5 -5
- package/Types/Probe/ProbeApiIngestResponse.ts +6 -6
- package/Types/Probe/ProbeMonitorResponse.ts +25 -25
- package/Types/Probe/ProbeStatusReport.ts +4 -4
- package/Types/Reflection.ts +4 -4
- package/Types/SMS/SMS.ts +3 -3
- package/Types/SMS/SmsTemplateType.ts +9 -9
- package/Types/SSO/DigestMethod.ts +4 -4
- package/Types/SSO/SignatureMethod.ts +4 -4
- package/Types/ScheduledEvent/ScheduledEventState.ts +4 -4
- package/Types/ScreenSizeType.ts +3 -3
- package/Types/SecuritySeverity.ts +4 -4
- package/Types/SerializableObject.ts +12 -12
- package/Types/SerializableObjectDictionary.ts +58 -58
- package/Types/ServiceCatalog/ServiceLanguage.ts +20 -0
- package/Types/Sleep.ts +6 -6
- package/Types/SmsStatus.ts +3 -3
- package/Types/StatusPage/StatusPageChartType.ts +6 -6
- package/Types/Text.ts +126 -130
- package/Types/Time/StartAndEndTime.ts +2 -2
- package/Types/Timezone.ts +592 -592
- package/Types/TimezoneCode.ts +63 -0
- package/Types/Typeof.ts +4 -4
- package/Types/UserNotification/UserNotificationEventType.ts +1 -1
- package/Types/UserNotification/UserNotificationExecutionStatus.ts +5 -5
- package/Types/UserNotification/UserNotificationStatus.ts +5 -5
- package/Types/UserType.ts +4 -4
- package/Types/Version.ts +50 -50
- package/Types/WebsiteRequest.ts +55 -55
- package/Types/Workflow/Component.ts +72 -72
- package/Types/Workflow/ComponentID.ts +16 -16
- package/Types/Workflow/Components/API.ts +349 -357
- package/Types/Workflow/Components/BaseModel.ts +572 -573
- package/Types/Workflow/Components/Condition.ts +60 -60
- package/Types/Workflow/Components/Email.ts +102 -103
- package/Types/Workflow/Components/JSON.ts +151 -156
- package/Types/Workflow/Components/JavaScript.ts +61 -61
- package/Types/Workflow/Components/Log.ts +39 -39
- package/Types/Workflow/Components/Manual.ts +33 -34
- package/Types/Workflow/Components/MicrosoftTeams.ts +61 -62
- package/Types/Workflow/Components/Schedule.ts +32 -32
- package/Types/Workflow/Components/Slack.ts +63 -64
- package/Types/Workflow/Components/Webhook.ts +51 -51
- package/Types/Workflow/Components/Workflow.ts +38 -38
- package/Types/Workflow/Components.ts +76 -76
- package/Types/Workflow/WorkflowPlan.ts +4 -4
- package/Types/Workflow/WorkflowStatus.ts +6 -6
- package/Types/XML.ts +16 -16
- package/Typings/Index.d.ts +3 -3
- package/Utils/API.ts +355 -309
- package/Utils/Analytics.ts +31 -31
- package/Utils/CronTime.ts +7 -7
- package/Utils/Enum.ts +14 -0
- package/Utils/Faker.ts +25 -25
- package/Utils/ObjectUtil.ts +5 -5
- package/Utils/Realtime.ts +24 -24
- package/Utils/Slug.ts +15 -15
- package/Utils/UUID.ts +4 -4
- package/build/dist/AnalyticsModels/BaseModel.js +32 -32
- package/build/dist/AnalyticsModels/BaseModel.js.map +1 -1
- package/build/dist/AnalyticsModels/CommonModel.js +14 -17
- package/build/dist/AnalyticsModels/CommonModel.js.map +1 -1
- package/build/dist/AnalyticsModels/NestedModel.js +1 -1
- package/build/dist/AnalyticsModels/NestedModel.js.map +1 -1
- package/build/dist/Models/AccessControlModel.js +1 -1
- package/build/dist/Models/AccessControlModel.js.map +1 -1
- package/build/dist/Models/BaseModel.js +28 -28
- package/build/dist/Models/BaseModel.js.map +1 -1
- package/build/dist/Models/FileModel.js +14 -14
- package/build/dist/Models/FileModel.js.map +1 -1
- package/build/dist/Models/GlobalConfig.js +1 -1
- package/build/dist/Models/GlobalConfig.js.map +1 -1
- package/build/dist/Models/TenantModel.js +1 -1
- package/build/dist/Models/TenantModel.js.map +1 -1
- package/build/dist/Models/UserModel.js +1 -1
- package/build/dist/Models/UserModel.js.map +1 -1
- package/build/dist/ServiceRoute.js +17 -17
- package/build/dist/Tests/MockType.js +5 -0
- package/build/dist/Tests/MockType.js.map +1 -0
- package/build/dist/Tests/Spy.js +4 -0
- package/build/dist/Tests/Spy.js.map +1 -0
- package/build/dist/Tests/Types/API/ErrorResponse.test.js +5 -5
- package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +1 -1
- package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +18 -18
- package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +1 -1
- package/build/dist/Tests/Types/API/HTTPMethod.test.js +10 -10
- package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Headers.test.js +8 -8
- package/build/dist/Tests/Types/API/Headers.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Hostname.test.js +11 -11
- package/build/dist/Tests/Types/API/Hostname.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Protocal.test.js +12 -12
- package/build/dist/Tests/Types/API/Protocal.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Response.test.js +7 -7
- package/build/dist/Tests/Types/API/Response.test.js.map +1 -1
- package/build/dist/Tests/Types/API/ResponseType.test.js +8 -8
- package/build/dist/Tests/Types/API/ResponseType.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Route.test.js +15 -15
- package/build/dist/Tests/Types/API/Route.test.js.map +1 -1
- package/build/dist/Tests/Types/API/StatusCode.test.js +14 -14
- package/build/dist/Tests/Types/API/StatusCode.test.js.map +1 -1
- package/build/dist/Tests/Types/API/URL.test.js +20 -20
- package/build/dist/Tests/Types/API/URL.test.js.map +1 -1
- package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +22 -22
- package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +1 -1
- package/build/dist/Tests/Types/Alerts/AlertType.test.js +12 -12
- package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +1 -1
- package/build/dist/Tests/Types/AppEnvironment.test.js +8 -8
- package/build/dist/Tests/Types/AppEnvironment.test.js.map +1 -1
- package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +8 -8
- package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +1 -1
- package/build/dist/Tests/Types/ArrayUtil.test.js +9 -9
- package/build/dist/Tests/Types/ArrayUtil.test.js.map +1 -1
- package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +75 -77
- package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +1 -1
- package/build/dist/Tests/Types/BrandColors.test.js +55 -55
- package/build/dist/Tests/Types/BrandColors.test.js.map +1 -1
- package/build/dist/Tests/Types/Char.test.js +72 -72
- package/build/dist/Tests/Types/Char.test.js.map +1 -1
- package/build/dist/Tests/Types/Code/CodeType.test.js +8 -8
- package/build/dist/Tests/Types/Code/CodeType.test.js.map +1 -1
- package/build/dist/Tests/Types/Color.test.js +24 -24
- package/build/dist/Tests/Types/Color.test.js.map +1 -1
- package/build/dist/Tests/Types/Company/CompanySize.test.js +12 -12
- package/build/dist/Tests/Types/Company/CompanySize.test.js.map +1 -1
- package/build/dist/Tests/Types/Company/JobRole.test.js +14 -14
- package/build/dist/Tests/Types/Company/JobRole.test.js.map +1 -1
- package/build/dist/Tests/Types/Countries.test.js +244 -244
- package/build/dist/Tests/Types/Countries.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/ColumnLength.test.js +15 -15
- package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/ColumnType.test.js +52 -52
- package/build/dist/Tests/Types/Database/ColumnType.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/Columns.test.js +14 -14
- package/build/dist/Tests/Types/Database/Columns.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/CompareBase.test.js +13 -13
- package/build/dist/Tests/Types/Database/CompareBase.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/Date.test.js +32 -32
- package/build/dist/Tests/Types/Database/Date.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +30 -30
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/InBetween.test.js +20 -20
- package/build/dist/Tests/Types/Database/InBetween.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/LimitMax.test.js +9 -9
- package/build/dist/Tests/Types/Database/LimitMax.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/NotEqual.test.js +9 -9
- package/build/dist/Tests/Types/Database/NotEqual.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/Search.test.js +6 -6
- package/build/dist/Tests/Types/Database/Search.test.js.map +1 -1
- package/build/dist/Tests/Types/DatabaseType.test.js +4 -4
- package/build/dist/Tests/Types/DatabaseType.test.js.map +1 -1
- package/build/dist/Tests/Types/Date.test.js +32 -32
- package/build/dist/Tests/Types/Date.test.js.map +1 -1
- package/build/dist/Tests/Types/Dictionary.test.js +10 -10
- package/build/dist/Tests/Types/Dictionary.test.js.map +1 -1
- package/build/dist/Tests/Types/Domain.test.js +23 -23
- package/build/dist/Tests/Types/Domain.test.js.map +1 -1
- package/build/dist/Tests/Types/Email/Email.test.js +31 -31
- package/build/dist/Tests/Types/Email/Email.test.js.map +1 -1
- package/build/dist/Tests/Types/EmailWithName.test.js +11 -11
- package/build/dist/Tests/Types/EmailWithName.test.js.map +1 -1
- package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +4 -4
- package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/ApiException.test.js +6 -7
- package/build/dist/Tests/Types/Exception/ApiException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/BadDataException.test.js +7 -7
- package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/BadOperationException.test.js +6 -7
- package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/BadRequestException.test.js +7 -7
- package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +5 -5
- package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/Exception.test.js +9 -9
- package/build/dist/Tests/Types/Exception/Exception.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +5 -5
- package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +1 -1
- package/build/dist/Tests/Types/File.test.js +13 -13
- package/build/dist/Tests/Types/File.test.js.map +1 -1
- package/build/dist/Tests/Types/HashedString.test.js +8 -8
- package/build/dist/Tests/Types/HashedString.test.js.map +1 -1
- package/build/dist/Tests/Types/Html.test.js +5 -5
- package/build/dist/Tests/Types/Html.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IP.test.js +40 -40
- package/build/dist/Tests/Types/IP/IP.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IPType.test.js +6 -6
- package/build/dist/Tests/Types/IP/IPType.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IPv4.test.js +9 -9
- package/build/dist/Tests/Types/IP/IPv4.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IPv6.test.js +9 -9
- package/build/dist/Tests/Types/IP/IPv6.test.js.map +1 -1
- package/build/dist/Tests/Types/JSON.test.js +28 -28
- package/build/dist/Tests/Types/JSON.test.js.map +1 -1
- package/build/dist/Tests/Types/JSONFunctions.test.js +13 -13
- package/build/dist/Tests/Types/JSONFunctions.test.js.map +1 -1
- package/build/dist/Tests/Types/ListData.test.js +10 -10
- package/build/dist/Tests/Types/ListData.test.js.map +1 -1
- package/build/dist/Tests/Types/Name.test.js +17 -17
- package/build/dist/Tests/Types/Name.test.js.map +1 -1
- package/build/dist/Tests/Types/ObjectID.test.js +8 -8
- package/build/dist/Tests/Types/ObjectID.test.js.map +1 -1
- package/build/dist/Tests/Types/Permission.test.js +6 -6
- package/build/dist/Tests/Types/Permission.test.js.map +1 -1
- package/build/dist/Tests/Types/Phone.test.js +21 -21
- package/build/dist/Tests/Types/Phone.test.js.map +1 -1
- package/build/dist/Tests/Types/Port.test.js +13 -13
- package/build/dist/Tests/Types/Port.test.js.map +1 -1
- package/build/dist/Tests/Types/PositiveNumber.test.js +19 -19
- package/build/dist/Tests/Types/PositiveNumber.test.js.map +1 -1
- package/build/dist/Tests/Types/SecuritySeverity.test.js +10 -10
- package/build/dist/Tests/Types/SecuritySeverity.test.js.map +1 -1
- package/build/dist/Tests/Types/SerializableObject.test.js +14 -12
- package/build/dist/Tests/Types/SerializableObject.test.js.map +1 -1
- package/build/dist/Tests/Types/Sleep.test.js +4 -4
- package/build/dist/Tests/Types/Sleep.test.js.map +1 -1
- package/build/dist/Tests/Types/Text.test.js +5 -5
- package/build/dist/Tests/Types/Text.test.js.map +1 -1
- package/build/dist/Tests/Types/Timezone.test.js +593 -593
- package/build/dist/Tests/Types/Timezone.test.js.map +1 -1
- package/build/dist/Tests/Types/Typeof.test.js +10 -10
- package/build/dist/Tests/Types/Typeof.test.js.map +1 -1
- package/build/dist/Tests/Types/UserType.test.js +10 -10
- package/build/dist/Tests/Types/UserType.test.js.map +1 -1
- package/build/dist/Tests/Types/Version.test.js +21 -21
- package/build/dist/Tests/Types/Version.test.js.map +1 -1
- package/build/dist/Tests/Types/XML.test.js +17 -17
- package/build/dist/Tests/Types/XML.test.js.map +1 -1
- package/build/dist/Tests/Utils/API.test.js +83 -83
- package/build/dist/Tests/Utils/API.test.js.map +1 -1
- package/build/dist/Tests/Utils/Analytics.test.js +25 -25
- package/build/dist/Tests/Utils/Analytics.test.js.map +1 -1
- package/build/dist/Tests/Utils/CronTime.test.js +14 -14
- package/build/dist/Tests/Utils/CronTime.test.js.map +1 -1
- package/build/dist/Tests/Utils/Faker.test.js +10 -10
- package/build/dist/Tests/Utils/Faker.test.js.map +1 -1
- package/build/dist/Tests/Utils/Slug.test.js +12 -12
- package/build/dist/Tests/Utils/Slug.test.js.map +1 -1
- package/build/dist/Tests/Utils/UUID.test.js +3 -3
- package/build/dist/Tests/Utils/UUID.test.js.map +1 -1
- package/build/dist/Types/API/HTTPErrorResponse.js +10 -11
- package/build/dist/Types/API/HTTPErrorResponse.js.map +1 -1
- package/build/dist/Types/API/HTTPMethod.js.map +1 -1
- package/build/dist/Types/API/HTTPResponse.js +9 -9
- package/build/dist/Types/API/HTTPResponse.js.map +1 -1
- package/build/dist/Types/API/Hostname.js +14 -14
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/API/Protocol.js.map +1 -1
- package/build/dist/Types/API/ResponseType.js.map +1 -1
- package/build/dist/Types/API/Route.js +11 -11
- package/build/dist/Types/API/Route.js.map +1 -1
- package/build/dist/Types/API/StatusCode.js +3 -4
- package/build/dist/Types/API/StatusCode.js.map +1 -1
- package/build/dist/Types/API/URL.js +44 -44
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/Alerts/AlertEventType.js.map +1 -1
- package/build/dist/Types/Alerts/AlertType.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableEngine.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/TableColumn.js +6 -7
- package/build/dist/Types/AnalyticsDatabase/TableColumn.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
- package/build/dist/Types/AppEnvironment.js.map +1 -1
- package/build/dist/Types/ApplicationLog/ApplicationLogType.js.map +1 -1
- package/build/dist/Types/ArrayUtil.js.map +1 -1
- package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js +10 -11
- package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js.map +1 -1
- package/build/dist/Types/BaseDatabase/DatabaseType.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js +6 -6
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/GreaterThan.js +6 -6
- package/build/dist/Types/BaseDatabase/GreaterThan.js.map +1 -1
- package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js +6 -6
- package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/InBetween.js +8 -8
- package/build/dist/Types/BaseDatabase/InBetween.js.map +1 -1
- package/build/dist/Types/BaseDatabase/Includes.js +7 -7
- package/build/dist/Types/BaseDatabase/Includes.js.map +1 -1
- package/build/dist/Types/BaseDatabase/IsNull.js +6 -6
- package/build/dist/Types/BaseDatabase/IsNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/LessThan.js +6 -6
- package/build/dist/Types/BaseDatabase/LessThan.js.map +1 -1
- package/build/dist/Types/BaseDatabase/LessThanOrEqual.js +6 -6
- package/build/dist/Types/BaseDatabase/LessThanOrEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/ModelPermission.js +1 -1
- package/build/dist/Types/BaseDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js +6 -6
- package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotNull.js +6 -6
- package/build/dist/Types/BaseDatabase/NotNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/Search.js +6 -6
- package/build/dist/Types/BaseDatabase/Search.js.map +1 -1
- package/build/dist/Types/BaseDatabase/SortOrder.js.map +1 -1
- package/build/dist/Types/Billing/MeteredPlan.js.map +1 -1
- package/build/dist/Types/Billing/SubscriptionPlan.js +15 -16
- package/build/dist/Types/Billing/SubscriptionPlan.js.map +1 -1
- package/build/dist/Types/Billing/SubscriptionStatus.js.map +1 -1
- package/build/dist/Types/BrandColors.js +40 -40
- package/build/dist/Types/BrandColors.js.map +1 -1
- package/build/dist/Types/BrowserType.js.map +1 -1
- package/build/dist/Types/Call/CallRequest.js +1 -1
- package/build/dist/Types/Call/CallRequest.js.map +1 -1
- package/build/dist/Types/Call/CallStatus.js.map +1 -1
- package/build/dist/Types/Code/CodeType.js.map +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js +7 -0
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -0
- package/build/dist/Types/CodeRepository/PullRequest.js +2 -0
- package/build/dist/Types/CodeRepository/PullRequest.js.map +1 -0
- package/build/dist/Types/CodeRepository/PullRequestState.js +8 -0
- package/build/dist/Types/CodeRepository/PullRequestState.js.map +1 -0
- package/build/dist/Types/Color.js +13 -13
- package/build/dist/Types/Color.js.map +1 -1
- package/build/dist/Types/Company/CompanySize.js.map +1 -1
- package/build/dist/Types/Company/JobRole.js.map +1 -1
- package/build/dist/Types/Copilot/CopilotEventStatus.js +7 -0
- package/build/dist/Types/Copilot/CopilotEventStatus.js.map +1 -0
- package/build/dist/Types/Copilot/CopilotEventType.js +7 -0
- package/build/dist/Types/Copilot/CopilotEventType.js.map +1 -0
- package/build/dist/Types/Countries.js.map +1 -1
- package/build/dist/Types/Currency.js +3 -3
- package/build/dist/Types/Currency.js.map +1 -1
- package/build/dist/Types/CustomField/CustomFieldType.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +2 -2
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +2 -2
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/TableAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/TableBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControlColumn.js.map +1 -1
- package/build/dist/Types/Database/AllowUserQueryWithoutTenant.js.map +1 -1
- package/build/dist/Types/Database/CanAccessIfCanReadOn.js.map +1 -1
- package/build/dist/Types/Database/ColumnLength.js +1 -1
- package/build/dist/Types/Database/ColumnLength.js.map +1 -1
- package/build/dist/Types/Database/ColumnType.js.map +1 -1
- package/build/dist/Types/Database/Columns.js.map +1 -1
- package/build/dist/Types/Database/CompareBase.js +5 -5
- package/build/dist/Types/Database/CompareBase.js.map +1 -1
- package/build/dist/Types/Database/CrudApiEndpoint.js.map +1 -1
- package/build/dist/Types/Database/CurrentUserCanAccessRecordBy.js.map +1 -1
- package/build/dist/Types/Database/DatabaseProperty.js +3 -3
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/Date.js +2 -2
- package/build/dist/Types/Database/Date.js.map +1 -1
- package/build/dist/Types/Database/EnableDocumentation.js +1 -2
- package/build/dist/Types/Database/EnableDocumentation.js.map +1 -1
- package/build/dist/Types/Database/EnableWorkflow.js.map +1 -1
- package/build/dist/Types/Database/IsPermissionsIf.js.map +1 -1
- package/build/dist/Types/Database/LabelsColumn.js.map +1 -1
- package/build/dist/Types/Database/MultiTenentQueryAllowed.js.map +1 -1
- package/build/dist/Types/Database/SlugifyColumn.js.map +1 -1
- package/build/dist/Types/Database/TableColumn.js +2 -2
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Database/TableColumnType.js.map +1 -1
- package/build/dist/Types/Database/TableMetadata.js.map +1 -1
- package/build/dist/Types/Database/TenantColumn.js.map +1 -1
- package/build/dist/Types/Database/TotalItemsBy.js.map +1 -1
- package/build/dist/Types/Database/UniqueColumnBy.js +2 -2
- package/build/dist/Types/Database/UniqueColumnBy.js.map +1 -1
- package/build/dist/Types/DatabaseType.js.map +1 -1
- package/build/dist/Types/Date.js +132 -136
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Day/DayOfWeek.js.map +1 -1
- package/build/dist/Types/Decimal.js +8 -8
- package/build/dist/Types/Decimal.js.map +1 -1
- package/build/dist/Types/DiskSize.js +3 -3
- package/build/dist/Types/DiskSize.js.map +1 -1
- package/build/dist/Types/Domain.js +13 -13
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Email.js +32 -32
- package/build/dist/Types/Email.js.map +1 -1
- package/build/dist/Types/EmailWithName.js +4 -4
- package/build/dist/Types/EmailWithName.js.map +1 -1
- package/build/dist/Types/EncryptionAlgorithm.js.map +1 -1
- package/build/dist/Types/Events/EventInterval.js.map +1 -1
- package/build/dist/Types/Events/Recurring.js +15 -15
- package/build/dist/Types/Events/Recurring.js.map +1 -1
- package/build/dist/Types/Exception/ApiException.js +2 -2
- package/build/dist/Types/Exception/ApiException.js.map +1 -1
- package/build/dist/Types/Exception/BadDataException.js +2 -2
- package/build/dist/Types/Exception/BadDataException.js.map +1 -1
- package/build/dist/Types/Exception/BadOperationException.js +2 -2
- package/build/dist/Types/Exception/BadOperationException.js.map +1 -1
- package/build/dist/Types/Exception/BadRequestException.js +2 -2
- package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
- package/build/dist/Types/Exception/DatabaseNotConnectedException.js +3 -3
- package/build/dist/Types/Exception/DatabaseNotConnectedException.js.map +1 -1
- package/build/dist/Types/Exception/Exception.js +1 -1
- package/build/dist/Types/Exception/Exception.js.map +1 -1
- package/build/dist/Types/Exception/ExceptionCode.js.map +1 -1
- package/build/dist/Types/Exception/NotAuthenticatedException.js +2 -2
- package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
- package/build/dist/Types/Exception/NotAuthorizedException.js +2 -2
- package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
- package/build/dist/Types/Exception/NotFoundException.js +2 -2
- package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
- package/build/dist/Types/Exception/NotImplementedException.js +3 -3
- package/build/dist/Types/Exception/NotImplementedException.js.map +1 -1
- package/build/dist/Types/Exception/PaymentRequiredException.js +2 -2
- package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
- package/build/dist/Types/Exception/ServerException.js +3 -3
- package/build/dist/Types/Exception/ServerException.js.map +1 -1
- package/build/dist/Types/Exception/SsoAuthorizationException.js +3 -3
- package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
- package/build/dist/Types/Exception/TenantNotFoundException.js +2 -2
- package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
- package/build/dist/Types/Exception/TimeoutException.js +2 -2
- package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
- package/build/dist/Types/Exception/UnableToReachServer.js +2 -2
- package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
- package/build/dist/Types/Exception/WebsiteRequestException.js +2 -2
- package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
- package/build/dist/Types/File/MimeType.js.map +1 -1
- package/build/dist/Types/Filter/FilterCondition.js.map +1 -1
- package/build/dist/Types/Filter/FilterType.js.map +1 -1
- package/build/dist/Types/HashCode.js.map +1 -1
- package/build/dist/Types/HashedString.js +14 -14
- package/build/dist/Types/HashedString.js.map +1 -1
- package/build/dist/Types/Html.js +1 -1
- package/build/dist/Types/Html.js.map +1 -1
- package/build/dist/Types/IP/IP.js +13 -13
- package/build/dist/Types/IP/IP.js.map +1 -1
- package/build/dist/Types/IP/IPType.js.map +1 -1
- package/build/dist/Types/IP/IPv4.js +3 -3
- package/build/dist/Types/IP/IPv4.js.map +1 -1
- package/build/dist/Types/IP/IPv6.js +3 -3
- package/build/dist/Types/IP/IPv6.js.map +1 -1
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- package/build/dist/Types/Infrastructure/OSType.js.map +1 -1
- package/build/dist/Types/JSON.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +33 -35
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/ListData.js.map +1 -1
- package/build/dist/Types/Mail/MailStatus.js.map +1 -1
- package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteria.js +17 -19
- package/build/dist/Types/Monitor/MonitorCriteria.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +54 -55
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +48 -52
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorSteps.js +19 -19
- package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +37 -23
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SyntheticMonitors/BrowserType.js +1 -1
- package/build/dist/Types/Monitor/SyntheticMonitors/ScreenSizeType.js +1 -1
- package/build/dist/Types/Name.js +16 -16
- package/build/dist/Types/Name.js.map +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/ObjectID.js +15 -15
- package/build/dist/Types/ObjectID.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +14 -18
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyAlertStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js +14 -14
- package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js.map +1 -1
- package/build/dist/Types/Operation/OperationResult.js.map +1 -1
- package/build/dist/Types/Operation/OperationStatus.js.map +1 -1
- package/build/dist/Types/Permission.js +726 -686
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Phone.js +8 -8
- package/build/dist/Types/Phone.js.map +1 -1
- package/build/dist/Types/Port.js +11 -11
- package/build/dist/Types/Port.js.map +1 -1
- package/build/dist/Types/PositiveNumber.js +7 -8
- package/build/dist/Types/PositiveNumber.js.map +1 -1
- package/build/dist/Types/SMS/SmsTemplateType.js.map +1 -1
- package/build/dist/Types/SSO/DigestMethod.js.map +1 -1
- package/build/dist/Types/SSO/SignatureMethod.js.map +1 -1
- package/build/dist/Types/ScheduledEvent/ScheduledEventState.js.map +1 -1
- package/build/dist/Types/ScreenSizeType.js.map +1 -1
- package/build/dist/Types/SecuritySeverity.js.map +1 -1
- package/build/dist/Types/SerializableObject.js +1 -1
- package/build/dist/Types/SerializableObject.js.map +1 -1
- package/build/dist/Types/SerializableObjectDictionary.js +29 -29
- package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
- package/build/dist/Types/ServiceCatalog/ServiceLanguage.js +21 -0
- package/build/dist/Types/ServiceCatalog/ServiceLanguage.js.map +1 -0
- package/build/dist/Types/Sleep.js.map +1 -1
- package/build/dist/Types/SmsStatus.js.map +1 -1
- package/build/dist/Types/StatusPage/StatusPageChartType.js.map +1 -1
- package/build/dist/Types/Text.js +35 -35
- package/build/dist/Types/Text.js.map +1 -1
- package/build/dist/Types/Timezone.js.map +1 -1
- package/build/dist/Types/TimezoneCode.js +64 -0
- package/build/dist/Types/TimezoneCode.js.map +1 -0
- package/build/dist/Types/Typeof.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationExecutionStatus.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationStatus.js.map +1 -1
- package/build/dist/Types/UserType.js.map +1 -1
- package/build/dist/Types/Version.js +9 -9
- package/build/dist/Types/Version.js.map +1 -1
- package/build/dist/Types/WebsiteRequest.js +3 -3
- package/build/dist/Types/WebsiteRequest.js.map +1 -1
- package/build/dist/Types/Workflow/Component.js.map +1 -1
- package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
- package/build/dist/Types/Workflow/Components/API.js +139 -139
- package/build/dist/Types/Workflow/Components/API.js.map +1 -1
- package/build/dist/Types/Workflow/Components/BaseModel.js +139 -139
- package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Condition.js +27 -27
- package/build/dist/Types/Workflow/Components/Condition.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Email.js +44 -44
- package/build/dist/Types/Workflow/Components/Email.js.map +1 -1
- package/build/dist/Types/Workflow/Components/JSON.js +60 -60
- package/build/dist/Types/Workflow/Components/JSON.js.map +1 -1
- package/build/dist/Types/Workflow/Components/JavaScript.js +26 -26
- package/build/dist/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Log.js +15 -15
- package/build/dist/Types/Workflow/Components/Log.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Manual.js +12 -12
- package/build/dist/Types/Workflow/Components/Manual.js.map +1 -1
- package/build/dist/Types/Workflow/Components/MicrosoftTeams.js +26 -26
- package/build/dist/Types/Workflow/Components/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Schedule.js +12 -12
- package/build/dist/Types/Workflow/Components/Schedule.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Slack.js +26 -26
- package/build/dist/Types/Workflow/Components/Slack.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Webhook.js +20 -20
- package/build/dist/Types/Workflow/Components/Webhook.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Workflow.js +15 -15
- package/build/dist/Types/Workflow/Components/Workflow.js.map +1 -1
- package/build/dist/Types/Workflow/Components.js +33 -33
- package/build/dist/Types/Workflow/Components.js.map +1 -1
- package/build/dist/Types/Workflow/WorkflowPlan.js.map +1 -1
- package/build/dist/Types/Workflow/WorkflowStatus.js.map +1 -1
- package/build/dist/Types/XML.js +3 -3
- package/build/dist/Types/XML.js.map +1 -1
- package/build/dist/Utils/API.js +66 -16
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Analytics.js +1 -1
- package/build/dist/Utils/Analytics.js.map +1 -1
- package/build/dist/Utils/CronTime.js +7 -7
- package/build/dist/Utils/Enum.js +9 -0
- package/build/dist/Utils/Enum.js.map +1 -0
- package/build/dist/Utils/Faker.js +5 -5
- package/build/dist/Utils/Faker.js.map +1 -1
- package/build/dist/Utils/ObjectUtil.js.map +1 -1
- package/build/dist/Utils/Realtime.js +1 -1
- package/build/dist/Utils/Realtime.js.map +1 -1
- package/build/dist/Utils/Slug.js +3 -3
- package/build/dist/Utils/Slug.js.map +1 -1
- package/build/dist/Utils/UUID.js +1 -1
- package/build/dist/Utils/UUID.js.map +1 -1
- package/jest.config.json +6 -1
- package/package.json +3 -3
|
@@ -1,1018 +1,976 @@
|
|
|
1
|
-
import UserModel from
|
|
2
|
-
import CalendarEvent from
|
|
3
|
-
import OneUptimeDate from
|
|
4
|
-
import DayOfWeek from
|
|
5
|
-
import EventInterval from
|
|
6
|
-
import Recurring from
|
|
7
|
-
import StartAndEndTime from
|
|
8
|
-
import Typeof from
|
|
1
|
+
import UserModel from "../../Models/UserModel";
|
|
2
|
+
import CalendarEvent from "../Calendar/CalendarEvent";
|
|
3
|
+
import OneUptimeDate from "../Date";
|
|
4
|
+
import DayOfWeek from "../Day/DayOfWeek";
|
|
5
|
+
import EventInterval from "../Events/EventInterval";
|
|
6
|
+
import Recurring from "../Events/Recurring";
|
|
7
|
+
import StartAndEndTime from "../Time/StartAndEndTime";
|
|
8
|
+
import Typeof from "../Typeof";
|
|
9
9
|
import RestrictionTimes, {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
} from
|
|
10
|
+
RestrictionType,
|
|
11
|
+
WeeklyResctriction,
|
|
12
|
+
} from "./RestrictionTimes";
|
|
13
13
|
|
|
14
14
|
export interface LayerProps {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
users: Array<UserModel>;
|
|
16
|
+
startDateTimeOfLayer: Date;
|
|
17
|
+
restrictionTimes: RestrictionTimes;
|
|
18
|
+
handOffTime: Date;
|
|
19
|
+
rotation: Recurring;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export interface EventProps extends LayerProps {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
calendarStartDate: Date;
|
|
24
|
+
calendarEndDate: Date;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export interface MultiLayerProps {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
layers: Array<LayerProps>;
|
|
29
|
+
calendarStartDate: Date;
|
|
30
|
+
calendarEndDate: Date;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export interface PriorityCalendarEvents extends CalendarEvent {
|
|
34
|
-
|
|
34
|
+
priority: number;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export default class LayerUtil {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
public static getEvents(data: EventProps): Array<CalendarEvent> {
|
|
39
|
+
let events: Array<CalendarEvent> = [];
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
if (!LayerUtil.isDataValid(data)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
data = LayerUtil.sanitizeData(data);
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
let start: Date = data.calendarStartDate;
|
|
48
|
+
const end: Date = data.calendarEndDate;
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
// start time of the layer is after the start time of the calendar, so we need to update the start time of the calendar
|
|
51
|
+
if (OneUptimeDate.isAfter(data.startDateTimeOfLayer, start)) {
|
|
52
|
+
start = data.startDateTimeOfLayer;
|
|
53
|
+
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
// split events by rotation.
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
const rotation: Recurring = data.rotation;
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
let hasReachedTheEndOfTheCalendar: boolean = false;
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
let handOffTime: Date = data.handOffTime;
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
if (!handOffTime) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
// Looop vars
|
|
68
|
+
let currentUserIndex: number = 0;
|
|
69
|
+
let currentEventStartTime: Date = start;
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
// bring handoff time to the same day as the currentStartTime.
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
// before we do this, we need to update the user index.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
currentUserIndex = LayerUtil.getCurrentUserIndexBasedOnHandoffTime({
|
|
76
|
+
rotation,
|
|
77
|
+
handOffTime,
|
|
78
|
+
currentUserIndex,
|
|
79
|
+
startDateTimeOfLayer: data.startDateTimeOfLayer,
|
|
80
|
+
users: data.users,
|
|
81
|
+
currentEventStartTime,
|
|
82
|
+
});
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
// update handoff time to the same day as current start time
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
handOffTime = LayerUtil.moveHandsOffTimeAfterCurrentEventStartTime({
|
|
87
|
+
handOffTime,
|
|
88
|
+
currentEventStartTime,
|
|
89
|
+
rotation: data.rotation,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
let currentEventEndTime: Date = OneUptimeDate.getCurrentDate(); // temporary set to current time to avoid typescript error
|
|
93
|
+
|
|
94
|
+
// check if calendar end is before the handoff time. if it is, then we need to return the event with the current user index as no handoff is needed.
|
|
95
|
+
|
|
96
|
+
if (OneUptimeDate.isBefore(end, handOffTime)) {
|
|
97
|
+
const trimmedStartAndEndTimes: Array<StartAndEndTime> =
|
|
98
|
+
LayerUtil.trimStartAndEndTimesBasedOnRestrictionTimes({
|
|
99
|
+
eventStartTime: currentEventStartTime,
|
|
100
|
+
eventEndTime: end,
|
|
101
|
+
restrictionTimes: data.restrictionTimes,
|
|
90
102
|
});
|
|
91
103
|
|
|
92
|
-
|
|
104
|
+
events = [
|
|
105
|
+
...events,
|
|
106
|
+
...LayerUtil.getCalendarEventsFromStartAndEndDates(
|
|
107
|
+
trimmedStartAndEndTimes,
|
|
108
|
+
data.users,
|
|
109
|
+
currentUserIndex,
|
|
110
|
+
),
|
|
111
|
+
];
|
|
93
112
|
|
|
94
|
-
|
|
113
|
+
return events;
|
|
114
|
+
}
|
|
95
115
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
LayerUtil.trimStartAndEndTimesBasedOnRestrictionTimes({
|
|
99
|
-
eventStartTime: currentEventStartTime,
|
|
100
|
-
eventEndTime: end,
|
|
101
|
-
restrictionTimes: data.restrictionTimes,
|
|
102
|
-
});
|
|
116
|
+
while (!hasReachedTheEndOfTheCalendar) {
|
|
117
|
+
currentEventEndTime = handOffTime;
|
|
103
118
|
|
|
104
|
-
|
|
105
|
-
...events,
|
|
106
|
-
...LayerUtil.getCalendarEventsFromStartAndEndDates(
|
|
107
|
-
trimmedStartAndEndTimes,
|
|
108
|
-
data.users,
|
|
109
|
-
currentUserIndex
|
|
110
|
-
),
|
|
111
|
-
];
|
|
119
|
+
// if current event start time and end time is the same then increase current event start time by 1 second.
|
|
112
120
|
|
|
113
|
-
|
|
114
|
-
|
|
121
|
+
if (OneUptimeDate.isSame(currentEventStartTime, currentEventEndTime)) {
|
|
122
|
+
currentEventStartTime = OneUptimeDate.addRemoveSeconds(
|
|
123
|
+
currentEventEndTime,
|
|
124
|
+
1,
|
|
125
|
+
);
|
|
126
|
+
handOffTime = LayerUtil.moveHandsOffTimeAfterCurrentEventStartTime({
|
|
127
|
+
handOffTime,
|
|
128
|
+
currentEventStartTime,
|
|
129
|
+
rotation: data.rotation,
|
|
130
|
+
});
|
|
115
131
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// if current event start time and end time is the same then increase current event start time by 1 second.
|
|
120
|
-
|
|
121
|
-
if (
|
|
122
|
-
OneUptimeDate.isSame(currentEventStartTime, currentEventEndTime)
|
|
123
|
-
) {
|
|
124
|
-
currentEventStartTime = OneUptimeDate.addRemoveSeconds(
|
|
125
|
-
currentEventEndTime,
|
|
126
|
-
1
|
|
127
|
-
);
|
|
128
|
-
handOffTime =
|
|
129
|
-
LayerUtil.moveHandsOffTimeAfterCurrentEventStartTime({
|
|
130
|
-
handOffTime,
|
|
131
|
-
currentEventStartTime,
|
|
132
|
-
rotation: data.rotation,
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
137
134
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
135
|
+
// check calendar end time. if the end time of the event is after the end time of the calendar, we need to update the end time of the event
|
|
136
|
+
if (OneUptimeDate.isAfter(currentEventEndTime, end)) {
|
|
137
|
+
currentEventEndTime = end;
|
|
138
|
+
hasReachedTheEndOfTheCalendar = true;
|
|
139
|
+
}
|
|
143
140
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
events = [
|
|
154
|
-
...events,
|
|
155
|
-
...LayerUtil.getCalendarEventsFromStartAndEndDates(
|
|
156
|
-
trimmedStartAndEndTimes,
|
|
157
|
-
data.users,
|
|
158
|
-
currentUserIndex
|
|
159
|
-
),
|
|
160
|
-
];
|
|
161
|
-
|
|
162
|
-
// update the current event start time
|
|
163
|
-
|
|
164
|
-
currentEventStartTime = OneUptimeDate.addRemoveSeconds(
|
|
165
|
-
currentEventEndTime,
|
|
166
|
-
1
|
|
167
|
-
);
|
|
168
|
-
|
|
169
|
-
// update the handoff time
|
|
170
|
-
|
|
171
|
-
handOffTime = LayerUtil.moveHandsOffTimeAfterCurrentEventStartTime({
|
|
172
|
-
handOffTime,
|
|
173
|
-
currentEventStartTime,
|
|
174
|
-
rotation: data.rotation,
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
// update the current user index
|
|
178
|
-
currentUserIndex = LayerUtil.incrementUserIndex(
|
|
179
|
-
currentUserIndex,
|
|
180
|
-
data.users.length
|
|
181
|
-
);
|
|
182
|
-
}
|
|
141
|
+
// check restriction times. if the end time of the event is after the end time of the restriction times, we need to update the end time of the event.
|
|
142
|
+
|
|
143
|
+
const trimmedStartAndEndTimes: Array<StartAndEndTime> =
|
|
144
|
+
LayerUtil.trimStartAndEndTimesBasedOnRestrictionTimes({
|
|
145
|
+
eventStartTime: currentEventStartTime,
|
|
146
|
+
eventEndTime: currentEventEndTime,
|
|
147
|
+
restrictionTimes: data.restrictionTimes,
|
|
148
|
+
});
|
|
183
149
|
|
|
184
|
-
|
|
150
|
+
events = [
|
|
151
|
+
...events,
|
|
152
|
+
...LayerUtil.getCalendarEventsFromStartAndEndDates(
|
|
153
|
+
trimmedStartAndEndTimes,
|
|
154
|
+
data.users,
|
|
155
|
+
currentUserIndex,
|
|
156
|
+
),
|
|
157
|
+
];
|
|
158
|
+
|
|
159
|
+
// update the current event start time
|
|
160
|
+
|
|
161
|
+
currentEventStartTime = OneUptimeDate.addRemoveSeconds(
|
|
162
|
+
currentEventEndTime,
|
|
163
|
+
1,
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
// update the handoff time
|
|
167
|
+
|
|
168
|
+
handOffTime = LayerUtil.moveHandsOffTimeAfterCurrentEventStartTime({
|
|
169
|
+
handOffTime,
|
|
170
|
+
currentEventStartTime,
|
|
171
|
+
rotation: data.rotation,
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// update the current user index
|
|
175
|
+
currentUserIndex = LayerUtil.incrementUserIndex(
|
|
176
|
+
currentUserIndex,
|
|
177
|
+
data.users.length,
|
|
178
|
+
);
|
|
179
|
+
}
|
|
185
180
|
|
|
186
|
-
|
|
181
|
+
// increment ids of all the events and return them, to make sure they are unique
|
|
187
182
|
|
|
188
|
-
|
|
189
|
-
event.id = id;
|
|
190
|
-
id++;
|
|
191
|
-
}
|
|
183
|
+
let id: number = 1;
|
|
192
184
|
|
|
193
|
-
|
|
185
|
+
for (const event of events) {
|
|
186
|
+
event.id = id;
|
|
187
|
+
id++;
|
|
194
188
|
}
|
|
195
189
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
data.restrictionTimes = RestrictionTimes.fromJSON(
|
|
199
|
-
data.restrictionTimes
|
|
200
|
-
);
|
|
201
|
-
}
|
|
190
|
+
return events;
|
|
191
|
+
}
|
|
202
192
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
193
|
+
private static sanitizeData(data: EventProps): EventProps {
|
|
194
|
+
if (!(data.restrictionTimes instanceof RestrictionTimes)) {
|
|
195
|
+
data.restrictionTimes = RestrictionTimes.fromJSON(data.restrictionTimes);
|
|
196
|
+
}
|
|
206
197
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
);
|
|
211
|
-
}
|
|
198
|
+
if (!(data.rotation instanceof Recurring)) {
|
|
199
|
+
data.rotation = Recurring.fromJSON(data.rotation);
|
|
200
|
+
}
|
|
212
201
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
202
|
+
if (typeof data.startDateTimeOfLayer === Typeof.String) {
|
|
203
|
+
data.startDateTimeOfLayer = OneUptimeDate.fromString(
|
|
204
|
+
data.startDateTimeOfLayer,
|
|
205
|
+
);
|
|
206
|
+
}
|
|
218
207
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
);
|
|
223
|
-
}
|
|
208
|
+
if (typeof data.calendarStartDate === Typeof.String) {
|
|
209
|
+
data.calendarStartDate = OneUptimeDate.fromString(data.calendarStartDate);
|
|
210
|
+
}
|
|
224
211
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
212
|
+
if (typeof data.calendarEndDate === Typeof.String) {
|
|
213
|
+
data.calendarEndDate = OneUptimeDate.fromString(data.calendarEndDate);
|
|
214
|
+
}
|
|
228
215
|
|
|
229
|
-
|
|
216
|
+
if (typeof data.handOffTime === Typeof.String) {
|
|
217
|
+
data.handOffTime = OneUptimeDate.fromString(data.handOffTime);
|
|
230
218
|
}
|
|
231
219
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
if (
|
|
235
|
-
OneUptimeDate.isBefore(data.calendarEndDate, data.calendarStartDate)
|
|
236
|
-
) {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
220
|
+
return data;
|
|
221
|
+
}
|
|
239
222
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
)
|
|
246
|
-
) {
|
|
247
|
-
return false;
|
|
248
|
-
}
|
|
223
|
+
private static isDataValid(data: EventProps): boolean {
|
|
224
|
+
// if calendar end time is before the start time then return an empty array.
|
|
225
|
+
if (OneUptimeDate.isBefore(data.calendarEndDate, data.calendarStartDate)) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
249
228
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
229
|
+
// end time of the layer is before the end time of the calendar, so, we dont have any events and we can return empty array
|
|
230
|
+
if (
|
|
231
|
+
OneUptimeDate.isAfter(data.startDateTimeOfLayer, data.calendarEndDate)
|
|
232
|
+
) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
254
235
|
|
|
255
|
-
|
|
236
|
+
// if users are empty, we dont have any events and we can return empty array
|
|
237
|
+
if (data.users.length === 0) {
|
|
238
|
+
return false;
|
|
256
239
|
}
|
|
257
240
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
currentEventStartTime: Date;
|
|
261
|
-
rotation: Recurring;
|
|
262
|
-
}): Date {
|
|
263
|
-
// if handoff time is ahead of the current event start time, then we dont need to move and we can return it as is.
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
264
243
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
244
|
+
private static moveHandsOffTimeAfterCurrentEventStartTime(data: {
|
|
245
|
+
handOffTime: Date;
|
|
246
|
+
currentEventStartTime: Date;
|
|
247
|
+
rotation: Recurring;
|
|
248
|
+
}): Date {
|
|
249
|
+
// if handoff time is ahead of the current event start time, then we dont need to move and we can return it as is.
|
|
270
250
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
const rotationInterval: number = data.rotation.intervalCount.toNumber();
|
|
275
|
-
|
|
276
|
-
if (data.rotation.intervalType === EventInterval.Day) {
|
|
277
|
-
intervalBetweenStartTimeAndHandoffTime =
|
|
278
|
-
OneUptimeDate.getDaysBetweenTwoDatesInclusive(
|
|
279
|
-
handOffTime,
|
|
280
|
-
data.currentEventStartTime
|
|
281
|
-
);
|
|
282
|
-
|
|
283
|
-
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
284
|
-
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
285
|
-
} else if (
|
|
286
|
-
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
287
|
-
0
|
|
288
|
-
) {
|
|
289
|
-
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
290
|
-
}
|
|
251
|
+
if (OneUptimeDate.isAfter(data.handOffTime, data.currentEventStartTime)) {
|
|
252
|
+
return data.handOffTime;
|
|
253
|
+
}
|
|
291
254
|
|
|
292
|
-
|
|
255
|
+
let handOffTime: Date = data.handOffTime;
|
|
293
256
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
intervalBetweenStartTimeAndHandoffTime
|
|
297
|
-
);
|
|
257
|
+
let intervalBetweenStartTimeAndHandoffTime: number = 0;
|
|
258
|
+
const rotationInterval: number = data.rotation.intervalCount.toNumber();
|
|
298
259
|
|
|
299
|
-
|
|
300
|
-
|
|
260
|
+
if (data.rotation.intervalType === EventInterval.Day) {
|
|
261
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
262
|
+
OneUptimeDate.getDaysBetweenTwoDatesInclusive(
|
|
263
|
+
handOffTime,
|
|
264
|
+
data.currentEventStartTime,
|
|
265
|
+
);
|
|
301
266
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
311
|
-
} else if (
|
|
312
|
-
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
313
|
-
0
|
|
314
|
-
) {
|
|
315
|
-
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
316
|
-
}
|
|
267
|
+
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
268
|
+
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
269
|
+
} else if (
|
|
270
|
+
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
271
|
+
0
|
|
272
|
+
) {
|
|
273
|
+
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
274
|
+
}
|
|
317
275
|
|
|
318
|
-
|
|
276
|
+
// add intervalBetweenStartTimeAndHandoffTime to handoff time
|
|
319
277
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
278
|
+
handOffTime = OneUptimeDate.addRemoveDays(
|
|
279
|
+
handOffTime,
|
|
280
|
+
intervalBetweenStartTimeAndHandoffTime,
|
|
281
|
+
);
|
|
324
282
|
|
|
325
|
-
|
|
326
|
-
|
|
283
|
+
return handOffTime;
|
|
284
|
+
}
|
|
327
285
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
336
|
-
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
337
|
-
} else if (
|
|
338
|
-
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
339
|
-
0
|
|
340
|
-
) {
|
|
341
|
-
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
342
|
-
}
|
|
286
|
+
if (data.rotation.intervalType === EventInterval.Hour) {
|
|
287
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
288
|
+
OneUptimeDate.getHoursBetweenTwoDatesInclusive(
|
|
289
|
+
handOffTime,
|
|
290
|
+
data.currentEventStartTime,
|
|
291
|
+
);
|
|
343
292
|
|
|
344
|
-
|
|
293
|
+
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
294
|
+
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
295
|
+
} else if (
|
|
296
|
+
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
297
|
+
0
|
|
298
|
+
) {
|
|
299
|
+
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
300
|
+
}
|
|
345
301
|
|
|
346
|
-
|
|
347
|
-
handOffTime,
|
|
348
|
-
intervalBetweenStartTimeAndHandoffTime
|
|
349
|
-
);
|
|
302
|
+
// add intervalBetweenStartTimeAndHandoffTime to handoff time
|
|
350
303
|
|
|
351
|
-
|
|
352
|
-
|
|
304
|
+
handOffTime = OneUptimeDate.addRemoveHours(
|
|
305
|
+
handOffTime,
|
|
306
|
+
intervalBetweenStartTimeAndHandoffTime,
|
|
307
|
+
);
|
|
353
308
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
OneUptimeDate.getMonthsBetweenTwoDatesInclusive(
|
|
357
|
-
handOffTime,
|
|
358
|
-
data.currentEventStartTime
|
|
359
|
-
);
|
|
360
|
-
|
|
361
|
-
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
362
|
-
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
363
|
-
} else if (
|
|
364
|
-
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
365
|
-
0
|
|
366
|
-
) {
|
|
367
|
-
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
368
|
-
}
|
|
309
|
+
return handOffTime;
|
|
310
|
+
}
|
|
369
311
|
|
|
370
|
-
|
|
312
|
+
if (data.rotation.intervalType === EventInterval.Week) {
|
|
313
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
314
|
+
OneUptimeDate.getWeeksBetweenTwoDatesInclusive(
|
|
315
|
+
handOffTime,
|
|
316
|
+
data.currentEventStartTime,
|
|
317
|
+
);
|
|
371
318
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
319
|
+
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
320
|
+
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
321
|
+
} else if (
|
|
322
|
+
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
323
|
+
0
|
|
324
|
+
) {
|
|
325
|
+
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
326
|
+
}
|
|
376
327
|
|
|
377
|
-
|
|
378
|
-
}
|
|
328
|
+
// add intervalBetweenStartTimeAndHandoffTime to handoff time
|
|
379
329
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
388
|
-
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
389
|
-
} else if (
|
|
390
|
-
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
391
|
-
0
|
|
392
|
-
) {
|
|
393
|
-
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
394
|
-
}
|
|
330
|
+
handOffTime = OneUptimeDate.addRemoveWeeks(
|
|
331
|
+
handOffTime,
|
|
332
|
+
intervalBetweenStartTimeAndHandoffTime,
|
|
333
|
+
);
|
|
334
|
+
|
|
335
|
+
return handOffTime;
|
|
336
|
+
}
|
|
395
337
|
|
|
396
|
-
|
|
338
|
+
if (data.rotation.intervalType === EventInterval.Month) {
|
|
339
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
340
|
+
OneUptimeDate.getMonthsBetweenTwoDatesInclusive(
|
|
341
|
+
handOffTime,
|
|
342
|
+
data.currentEventStartTime,
|
|
343
|
+
);
|
|
397
344
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
345
|
+
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
346
|
+
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
347
|
+
} else if (
|
|
348
|
+
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
349
|
+
0
|
|
350
|
+
) {
|
|
351
|
+
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
352
|
+
}
|
|
402
353
|
|
|
403
|
-
|
|
404
|
-
}
|
|
354
|
+
// add intervalBetweenStartTimeAndHandoffTime to handoff time
|
|
405
355
|
|
|
406
|
-
|
|
356
|
+
handOffTime = OneUptimeDate.addRemoveMonths(
|
|
357
|
+
handOffTime,
|
|
358
|
+
intervalBetweenStartTimeAndHandoffTime,
|
|
359
|
+
);
|
|
360
|
+
|
|
361
|
+
return handOffTime;
|
|
407
362
|
}
|
|
408
363
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
currentEventStartTime: Date;
|
|
416
|
-
}): number {
|
|
417
|
-
let intervalBetweenStartTimeAndHandoffTime: number = 0;
|
|
418
|
-
const rotation: Recurring = data.rotation;
|
|
419
|
-
const handOffTime: Date = data.handOffTime;
|
|
420
|
-
let currentUserIndex: number = data.currentUserIndex;
|
|
364
|
+
if (data.rotation.intervalType === EventInterval.Year) {
|
|
365
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
366
|
+
OneUptimeDate.getYearsBetweenTwoDatesInclusive(
|
|
367
|
+
handOffTime,
|
|
368
|
+
data.currentEventStartTime,
|
|
369
|
+
);
|
|
421
370
|
|
|
422
|
-
|
|
371
|
+
if (intervalBetweenStartTimeAndHandoffTime < rotationInterval) {
|
|
372
|
+
intervalBetweenStartTimeAndHandoffTime = rotationInterval;
|
|
373
|
+
} else if (
|
|
374
|
+
intervalBetweenStartTimeAndHandoffTime % rotationInterval !==
|
|
375
|
+
0
|
|
376
|
+
) {
|
|
377
|
+
intervalBetweenStartTimeAndHandoffTime += rotationInterval;
|
|
378
|
+
}
|
|
423
379
|
|
|
424
|
-
|
|
425
|
-
OneUptimeDate.isBefore(
|
|
426
|
-
data.currentEventStartTime,
|
|
427
|
-
data.startDateTimeOfLayer
|
|
428
|
-
)
|
|
429
|
-
) {
|
|
430
|
-
return currentUserIndex;
|
|
431
|
-
}
|
|
380
|
+
// add intervalBetweenStartTimeAndHandoffTime to handoff time
|
|
432
381
|
|
|
433
|
-
|
|
382
|
+
handOffTime = OneUptimeDate.addRemoveYears(
|
|
383
|
+
handOffTime,
|
|
384
|
+
intervalBetweenStartTimeAndHandoffTime,
|
|
385
|
+
);
|
|
434
386
|
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
}
|
|
387
|
+
return handOffTime;
|
|
388
|
+
}
|
|
438
389
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
intervalBetweenStartTimeAndHandoffTime =
|
|
442
|
-
OneUptimeDate.getDaysBetweenTwoDatesInclusive(
|
|
443
|
-
handOffTime,
|
|
444
|
-
data.currentEventStartTime
|
|
445
|
-
);
|
|
446
|
-
}
|
|
390
|
+
return handOffTime;
|
|
391
|
+
}
|
|
447
392
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
393
|
+
private static getCurrentUserIndexBasedOnHandoffTime(data: {
|
|
394
|
+
rotation: Recurring;
|
|
395
|
+
handOffTime: Date;
|
|
396
|
+
currentUserIndex: number;
|
|
397
|
+
startDateTimeOfLayer: Date;
|
|
398
|
+
users: Array<UserModel>;
|
|
399
|
+
currentEventStartTime: Date;
|
|
400
|
+
}): number {
|
|
401
|
+
let intervalBetweenStartTimeAndHandoffTime: number = 0;
|
|
402
|
+
const rotation: Recurring = data.rotation;
|
|
403
|
+
const handOffTime: Date = data.handOffTime;
|
|
404
|
+
let currentUserIndex: number = data.currentUserIndex;
|
|
405
|
+
|
|
406
|
+
// if current event start time if before the start time of the layer then return current Index
|
|
407
|
+
|
|
408
|
+
if (
|
|
409
|
+
OneUptimeDate.isBefore(
|
|
410
|
+
data.currentEventStartTime,
|
|
411
|
+
data.startDateTimeOfLayer,
|
|
412
|
+
)
|
|
413
|
+
) {
|
|
414
|
+
return currentUserIndex;
|
|
415
|
+
}
|
|
456
416
|
|
|
457
|
-
|
|
458
|
-
// calculate the number of weeks between the start time of the layer and the handoff time.
|
|
459
|
-
intervalBetweenStartTimeAndHandoffTime =
|
|
460
|
-
OneUptimeDate.getWeeksBetweenTwoDatesInclusive(
|
|
461
|
-
handOffTime,
|
|
462
|
-
data.currentEventStartTime
|
|
463
|
-
);
|
|
464
|
-
}
|
|
417
|
+
// if handoff time is ahead of current event stat time then return current index
|
|
465
418
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
OneUptimeDate.getMonthsBetweenTwoDatesInclusive(
|
|
470
|
-
handOffTime,
|
|
471
|
-
data.currentEventStartTime
|
|
472
|
-
);
|
|
473
|
-
}
|
|
419
|
+
if (OneUptimeDate.isAfter(handOffTime, data.currentEventStartTime)) {
|
|
420
|
+
return currentUserIndex;
|
|
421
|
+
}
|
|
474
422
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
423
|
+
if (rotation.intervalType === EventInterval.Day) {
|
|
424
|
+
// calculate the number of days between the start time of the layer and the handoff time.
|
|
425
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
426
|
+
OneUptimeDate.getDaysBetweenTwoDatesInclusive(
|
|
427
|
+
handOffTime,
|
|
428
|
+
data.currentEventStartTime,
|
|
429
|
+
);
|
|
430
|
+
}
|
|
483
431
|
|
|
484
|
-
|
|
432
|
+
if (rotation.intervalType === EventInterval.Hour) {
|
|
433
|
+
// calculate the number of hours between the start time of the layer and the handoff time.
|
|
434
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
435
|
+
OneUptimeDate.getHoursBetweenTwoDatesInclusive(
|
|
436
|
+
handOffTime,
|
|
437
|
+
data.currentEventStartTime,
|
|
438
|
+
);
|
|
439
|
+
}
|
|
485
440
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
441
|
+
if (rotation.intervalType === EventInterval.Week) {
|
|
442
|
+
// calculate the number of weeks between the start time of the layer and the handoff time.
|
|
443
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
444
|
+
OneUptimeDate.getWeeksBetweenTwoDatesInclusive(
|
|
445
|
+
handOffTime,
|
|
446
|
+
data.currentEventStartTime,
|
|
489
447
|
);
|
|
448
|
+
}
|
|
490
449
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
450
|
+
if (rotation.intervalType === EventInterval.Month) {
|
|
451
|
+
// calculate the number of months between the start time of the layer and the handoff time.
|
|
452
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
453
|
+
OneUptimeDate.getMonthsBetweenTwoDatesInclusive(
|
|
454
|
+
handOffTime,
|
|
455
|
+
data.currentEventStartTime,
|
|
456
|
+
);
|
|
457
|
+
}
|
|
495
458
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
459
|
+
if (rotation.intervalType === EventInterval.Year) {
|
|
460
|
+
// calculate the number of years between the start time of the layer and the handoff time.
|
|
461
|
+
intervalBetweenStartTimeAndHandoffTime =
|
|
462
|
+
OneUptimeDate.getYearsBetweenTwoDatesInclusive(
|
|
463
|
+
data.startDateTimeOfLayer,
|
|
464
|
+
handOffTime,
|
|
500
465
|
);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
// now divide the interval between start time and handoff time by the interval count.
|
|
469
|
+
|
|
470
|
+
let numberOfIntervalsBetweenStartAndHandoffTime: number = Math.ceil(
|
|
471
|
+
intervalBetweenStartTimeAndHandoffTime /
|
|
472
|
+
rotation.intervalCount.toNumber(),
|
|
473
|
+
);
|
|
501
474
|
|
|
502
|
-
|
|
475
|
+
if (numberOfIntervalsBetweenStartAndHandoffTime < 0) {
|
|
476
|
+
numberOfIntervalsBetweenStartAndHandoffTime =
|
|
477
|
+
numberOfIntervalsBetweenStartAndHandoffTime * -1;
|
|
503
478
|
}
|
|
504
479
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
const restrictionTimes: RestrictionTimes = data.restrictionTimes;
|
|
480
|
+
currentUserIndex = LayerUtil.incrementUserIndex(
|
|
481
|
+
currentUserIndex,
|
|
482
|
+
data.users.length,
|
|
483
|
+
numberOfIntervalsBetweenStartAndHandoffTime,
|
|
484
|
+
);
|
|
511
485
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
{
|
|
515
|
-
startTime: data.eventStartTime,
|
|
516
|
-
endTime: data.eventEndTime,
|
|
517
|
-
},
|
|
518
|
-
];
|
|
519
|
-
}
|
|
486
|
+
return currentUserIndex;
|
|
487
|
+
}
|
|
520
488
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
);
|
|
537
|
-
|
|
538
|
-
return LayerUtil.getEventsByDailyRestriction({
|
|
539
|
-
eventStartTime: data.eventStartTime,
|
|
540
|
-
eventEndTime: data.eventEndTime,
|
|
541
|
-
restrictionStartAndEndTime:
|
|
542
|
-
restrictionTimes.dayRestrictionTimes,
|
|
543
|
-
props: {
|
|
544
|
-
intervalType: EventInterval.Day,
|
|
545
|
-
},
|
|
546
|
-
});
|
|
547
|
-
}
|
|
489
|
+
public static trimStartAndEndTimesBasedOnRestrictionTimes(data: {
|
|
490
|
+
eventStartTime: Date;
|
|
491
|
+
eventEndTime: Date;
|
|
492
|
+
restrictionTimes: RestrictionTimes;
|
|
493
|
+
}): Array<StartAndEndTime> {
|
|
494
|
+
const restrictionTimes: RestrictionTimes = data.restrictionTimes;
|
|
495
|
+
|
|
496
|
+
if (restrictionTimes.restictionType === RestrictionType.None) {
|
|
497
|
+
return [
|
|
498
|
+
{
|
|
499
|
+
startTime: data.eventStartTime,
|
|
500
|
+
endTime: data.eventEndTime,
|
|
501
|
+
},
|
|
502
|
+
];
|
|
503
|
+
}
|
|
548
504
|
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
505
|
+
if (
|
|
506
|
+
restrictionTimes.restictionType === RestrictionType.Daily &&
|
|
507
|
+
restrictionTimes.dayRestrictionTimes
|
|
508
|
+
) {
|
|
509
|
+
// before this we need to make sure restrciton times are moved to the day of the event.
|
|
510
|
+
restrictionTimes.dayRestrictionTimes.startTime =
|
|
511
|
+
OneUptimeDate.keepTimeButMoveDay(
|
|
512
|
+
restrictionTimes.dayRestrictionTimes.startTime,
|
|
513
|
+
data.eventStartTime,
|
|
514
|
+
);
|
|
552
515
|
|
|
553
|
-
|
|
516
|
+
restrictionTimes.dayRestrictionTimes.endTime =
|
|
517
|
+
OneUptimeDate.keepTimeButMoveDay(
|
|
518
|
+
restrictionTimes.dayRestrictionTimes.endTime,
|
|
519
|
+
data.eventStartTime,
|
|
520
|
+
);
|
|
521
|
+
|
|
522
|
+
return LayerUtil.getEventsByDailyRestriction({
|
|
523
|
+
eventStartTime: data.eventStartTime,
|
|
524
|
+
eventEndTime: data.eventEndTime,
|
|
525
|
+
restrictionStartAndEndTime: restrictionTimes.dayRestrictionTimes,
|
|
526
|
+
props: {
|
|
527
|
+
intervalType: EventInterval.Day,
|
|
528
|
+
},
|
|
529
|
+
});
|
|
554
530
|
}
|
|
555
531
|
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
restrictionTimes: RestrictionTimes;
|
|
560
|
-
}): Array<StartAndEndTime> {
|
|
561
|
-
const weeklyRestrictionTimes: Array<WeeklyResctriction> =
|
|
562
|
-
data.restrictionTimes.weeklyRestrictionTimes;
|
|
532
|
+
if (restrictionTimes.restictionType === RestrictionType.Weekly) {
|
|
533
|
+
return LayerUtil.getEventsByWeeklyRestriction(data);
|
|
534
|
+
}
|
|
563
535
|
|
|
564
|
-
|
|
536
|
+
return [];
|
|
537
|
+
}
|
|
565
538
|
|
|
566
|
-
|
|
539
|
+
public static getEventsByWeeklyRestriction(data: {
|
|
540
|
+
eventStartTime: Date;
|
|
541
|
+
eventEndTime: Date;
|
|
542
|
+
restrictionTimes: RestrictionTimes;
|
|
543
|
+
}): Array<StartAndEndTime> {
|
|
544
|
+
const weeklyRestrictionTimes: Array<WeeklyResctriction> =
|
|
545
|
+
data.restrictionTimes.weeklyRestrictionTimes;
|
|
567
546
|
|
|
568
|
-
|
|
569
|
-
return [
|
|
570
|
-
{
|
|
571
|
-
startTime: data.eventStartTime,
|
|
572
|
-
endTime: data.eventEndTime,
|
|
573
|
-
},
|
|
574
|
-
];
|
|
575
|
-
}
|
|
547
|
+
// if there are no weekly restriction times, we dont have any restrictions and we can return the event start and end times
|
|
576
548
|
|
|
577
|
-
|
|
578
|
-
LayerUtil.getWeeklyRestrictionTimesForWeek(data);
|
|
579
|
-
|
|
580
|
-
for (const restrictionStartAndEndTime of restrictionStartAndEndTimes) {
|
|
581
|
-
const trimmedStartAndEndTimesForRestriction: Array<StartAndEndTime> =
|
|
582
|
-
LayerUtil.getEventsByDailyRestriction({
|
|
583
|
-
eventStartTime: data.eventStartTime,
|
|
584
|
-
eventEndTime: data.eventEndTime,
|
|
585
|
-
restrictionStartAndEndTime: restrictionStartAndEndTime,
|
|
586
|
-
props: {
|
|
587
|
-
intervalType: EventInterval.Week,
|
|
588
|
-
},
|
|
589
|
-
});
|
|
590
|
-
|
|
591
|
-
trimmedStartAndEndTimes = [
|
|
592
|
-
...trimmedStartAndEndTimes,
|
|
593
|
-
...trimmedStartAndEndTimesForRestriction,
|
|
594
|
-
];
|
|
595
|
-
}
|
|
549
|
+
let trimmedStartAndEndTimes: Array<StartAndEndTime> = [];
|
|
596
550
|
|
|
597
|
-
|
|
551
|
+
if (!weeklyRestrictionTimes || weeklyRestrictionTimes.length === 0) {
|
|
552
|
+
return [
|
|
553
|
+
{
|
|
554
|
+
startTime: data.eventStartTime,
|
|
555
|
+
endTime: data.eventEndTime,
|
|
556
|
+
},
|
|
557
|
+
];
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
const restrictionStartAndEndTimes: Array<StartAndEndTime> =
|
|
561
|
+
LayerUtil.getWeeklyRestrictionTimesForWeek(data);
|
|
562
|
+
|
|
563
|
+
for (const restrictionStartAndEndTime of restrictionStartAndEndTimes) {
|
|
564
|
+
const trimmedStartAndEndTimesForRestriction: Array<StartAndEndTime> =
|
|
565
|
+
LayerUtil.getEventsByDailyRestriction({
|
|
566
|
+
eventStartTime: data.eventStartTime,
|
|
567
|
+
eventEndTime: data.eventEndTime,
|
|
568
|
+
restrictionStartAndEndTime: restrictionStartAndEndTime,
|
|
569
|
+
props: {
|
|
570
|
+
intervalType: EventInterval.Week,
|
|
571
|
+
},
|
|
572
|
+
});
|
|
573
|
+
|
|
574
|
+
trimmedStartAndEndTimes = [
|
|
575
|
+
...trimmedStartAndEndTimes,
|
|
576
|
+
...trimmedStartAndEndTimesForRestriction,
|
|
577
|
+
];
|
|
598
578
|
}
|
|
599
579
|
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
eventEndTime: Date;
|
|
603
|
-
restrictionTimes: RestrictionTimes;
|
|
604
|
-
}): Array<StartAndEndTime> {
|
|
605
|
-
const weeklyRestrictionTimes: Array<WeeklyResctriction> =
|
|
606
|
-
data.restrictionTimes.weeklyRestrictionTimes;
|
|
580
|
+
return trimmedStartAndEndTimes;
|
|
581
|
+
}
|
|
607
582
|
|
|
608
|
-
|
|
583
|
+
public static getWeeklyRestrictionTimesForWeek(data: {
|
|
584
|
+
eventStartTime: Date;
|
|
585
|
+
eventEndTime: Date;
|
|
586
|
+
restrictionTimes: RestrictionTimes;
|
|
587
|
+
}): Array<StartAndEndTime> {
|
|
588
|
+
const weeklyRestrictionTimes: Array<WeeklyResctriction> =
|
|
589
|
+
data.restrictionTimes.weeklyRestrictionTimes;
|
|
609
590
|
|
|
610
|
-
|
|
591
|
+
const eventStartTime: Date = data.eventStartTime;
|
|
611
592
|
|
|
612
|
-
|
|
613
|
-
// move all of these to the week of the event start time
|
|
593
|
+
const startAndEndTimesOfWeeklyRestrictions: Array<StartAndEndTime> = [];
|
|
614
594
|
|
|
615
|
-
|
|
616
|
-
|
|
595
|
+
for (const weeklyRestriction of weeklyRestrictionTimes) {
|
|
596
|
+
// move all of these to the week of the event start time
|
|
617
597
|
|
|
618
|
-
|
|
619
|
-
|
|
598
|
+
const startDayOfWeek: DayOfWeek = weeklyRestriction.startDay;
|
|
599
|
+
const endDayOfWeek: DayOfWeek = weeklyRestriction.endDay;
|
|
620
600
|
|
|
621
|
-
|
|
601
|
+
let startTime: Date = weeklyRestriction.startTime;
|
|
602
|
+
let endTime: Date = weeklyRestriction.endTime;
|
|
622
603
|
|
|
623
|
-
|
|
624
|
-
startTime,
|
|
625
|
-
eventStartTime,
|
|
626
|
-
startDayOfWeek
|
|
627
|
-
);
|
|
628
|
-
endTime = OneUptimeDate.moveDateToTheDayOfWeek(
|
|
629
|
-
endTime,
|
|
630
|
-
eventStartTime,
|
|
631
|
-
endDayOfWeek
|
|
632
|
-
);
|
|
604
|
+
// move start and end times to the week of the event start time
|
|
633
605
|
|
|
634
|
-
|
|
606
|
+
startTime = OneUptimeDate.moveDateToTheDayOfWeek(
|
|
607
|
+
startTime,
|
|
608
|
+
eventStartTime,
|
|
609
|
+
startDayOfWeek,
|
|
610
|
+
);
|
|
611
|
+
endTime = OneUptimeDate.moveDateToTheDayOfWeek(
|
|
612
|
+
endTime,
|
|
613
|
+
eventStartTime,
|
|
614
|
+
endDayOfWeek,
|
|
615
|
+
);
|
|
635
616
|
|
|
636
|
-
|
|
617
|
+
// now we have true start and end times of the weekly restriction
|
|
637
618
|
|
|
638
|
-
|
|
639
|
-
endTime = OneUptimeDate.addRemoveWeeks(endTime, 1);
|
|
640
|
-
}
|
|
619
|
+
// if start time is after end time, we need to add one week to the end time
|
|
641
620
|
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
});
|
|
646
|
-
}
|
|
621
|
+
if (OneUptimeDate.isAfter(startTime, endTime)) {
|
|
622
|
+
endTime = OneUptimeDate.addRemoveWeeks(endTime, 1);
|
|
623
|
+
}
|
|
647
624
|
|
|
648
|
-
|
|
625
|
+
startAndEndTimesOfWeeklyRestrictions.push({
|
|
626
|
+
startTime,
|
|
627
|
+
endTime,
|
|
628
|
+
});
|
|
649
629
|
}
|
|
650
630
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
631
|
+
return startAndEndTimesOfWeeklyRestrictions;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
public static getEventsByDailyRestriction(data: {
|
|
635
|
+
eventStartTime: Date;
|
|
636
|
+
eventEndTime: Date;
|
|
637
|
+
restrictionStartAndEndTime: StartAndEndTime;
|
|
638
|
+
props: {
|
|
639
|
+
intervalType: EventInterval;
|
|
640
|
+
};
|
|
641
|
+
}): Array<StartAndEndTime> {
|
|
642
|
+
const dayRestrictionTimes: StartAndEndTime | null =
|
|
643
|
+
data.restrictionStartAndEndTime;
|
|
644
|
+
|
|
645
|
+
// if there are no day restriction times, we dont have any restrictions and we can return the event start and end times
|
|
646
|
+
|
|
647
|
+
if (!dayRestrictionTimes) {
|
|
648
|
+
return [
|
|
649
|
+
{
|
|
650
|
+
startTime: data.eventStartTime,
|
|
651
|
+
endTime: data.eventEndTime,
|
|
652
|
+
},
|
|
653
|
+
];
|
|
654
|
+
}
|
|
672
655
|
|
|
673
|
-
|
|
656
|
+
//
|
|
674
657
|
|
|
675
|
-
|
|
676
|
-
|
|
658
|
+
let restrictionStartTime: Date = dayRestrictionTimes.startTime;
|
|
659
|
+
let restrictionEndTime: Date = dayRestrictionTimes.endTime;
|
|
677
660
|
|
|
678
|
-
|
|
679
|
-
|
|
661
|
+
let currentStartTime: Date = data.eventStartTime;
|
|
662
|
+
const currentEndTime: Date = data.eventEndTime;
|
|
680
663
|
|
|
681
|
-
|
|
664
|
+
const trimmedStartAndEndTimes: Array<StartAndEndTime> = [];
|
|
682
665
|
|
|
683
|
-
|
|
666
|
+
let reachedTheEndOfTheCurrentEvent: boolean = false;
|
|
684
667
|
|
|
685
|
-
|
|
686
|
-
|
|
668
|
+
while (!reachedTheEndOfTheCurrentEvent) {
|
|
669
|
+
// if current end time is equalto or before than the current start time, we need to return the current event and exit the loop
|
|
687
670
|
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
671
|
+
if (OneUptimeDate.isBefore(currentEndTime, currentStartTime)) {
|
|
672
|
+
reachedTheEndOfTheCurrentEvent = true;
|
|
673
|
+
}
|
|
691
674
|
|
|
692
|
-
|
|
675
|
+
// if the event is ourside the restriction times, we need to return the trimmed array
|
|
693
676
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
677
|
+
if (OneUptimeDate.isAfter(restrictionStartTime, currentEndTime)) {
|
|
678
|
+
return trimmedStartAndEndTimes;
|
|
679
|
+
}
|
|
697
680
|
|
|
698
|
-
|
|
681
|
+
// if current event start time is after the restriction end time then we need to return empty array as there is no event.
|
|
699
682
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
683
|
+
if (OneUptimeDate.isAfter(currentStartTime, restrictionEndTime)) {
|
|
684
|
+
return trimmedStartAndEndTimes;
|
|
685
|
+
}
|
|
703
686
|
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
);
|
|
712
|
-
}
|
|
687
|
+
// if the restriction end time is before the restriction start time, we need to add one day to the restriction end time
|
|
688
|
+
if (OneUptimeDate.isAfter(restrictionStartTime, restrictionEndTime)) {
|
|
689
|
+
restrictionEndTime = OneUptimeDate.addRemoveDays(
|
|
690
|
+
restrictionEndTime,
|
|
691
|
+
data.props.intervalType === EventInterval.Day ? 1 : 7, // daily or weekly
|
|
692
|
+
);
|
|
693
|
+
}
|
|
713
694
|
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
if (
|
|
717
|
-
OneUptimeDate.isOnOrAfter(
|
|
718
|
-
currentStartTime,
|
|
719
|
-
restrictionStartTime
|
|
720
|
-
) &&
|
|
721
|
-
OneUptimeDate.isOnOrAfter(restrictionEndTime, currentEndTime)
|
|
722
|
-
) {
|
|
723
|
-
trimmedStartAndEndTimes.push({
|
|
724
|
-
startTime: currentStartTime,
|
|
725
|
-
endTime: currentEndTime,
|
|
726
|
-
});
|
|
727
|
-
reachedTheEndOfTheCurrentEvent = true;
|
|
728
|
-
}
|
|
695
|
+
// 1 - if the current event falls within the restriction times, we need to return the current event.
|
|
729
696
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
697
|
+
if (
|
|
698
|
+
OneUptimeDate.isOnOrAfter(currentStartTime, restrictionStartTime) &&
|
|
699
|
+
OneUptimeDate.isOnOrAfter(restrictionEndTime, currentEndTime)
|
|
700
|
+
) {
|
|
701
|
+
trimmedStartAndEndTimes.push({
|
|
702
|
+
startTime: currentStartTime,
|
|
703
|
+
endTime: currentEndTime,
|
|
704
|
+
});
|
|
705
|
+
reachedTheEndOfTheCurrentEvent = true;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
// 2 - Start Restriction: If the current event starts after the restriction start time and ends after the restriction end time, we need to return the current event with the start time of the current event and end time of the restriction
|
|
709
|
+
|
|
710
|
+
if (
|
|
711
|
+
OneUptimeDate.isOnOrAfter(currentStartTime, restrictionStartTime) &&
|
|
712
|
+
OneUptimeDate.isOnOrAfter(currentEndTime, restrictionEndTime)
|
|
713
|
+
) {
|
|
714
|
+
trimmedStartAndEndTimes.push({
|
|
715
|
+
startTime: currentStartTime,
|
|
716
|
+
endTime: restrictionEndTime,
|
|
717
|
+
});
|
|
718
|
+
reachedTheEndOfTheCurrentEvent = true;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
// 3 - End Restriction - If the current event starts before the restriction start time and ends before the restriction end time, we need to return the current event with the start time of the restriction and end time of the current event.
|
|
722
|
+
|
|
723
|
+
if (
|
|
724
|
+
OneUptimeDate.isBefore(currentStartTime, restrictionStartTime) &&
|
|
725
|
+
OneUptimeDate.isBefore(currentEndTime, restrictionEndTime) &&
|
|
726
|
+
OneUptimeDate.isAfter(currentEndTime, restrictionStartTime)
|
|
727
|
+
) {
|
|
728
|
+
trimmedStartAndEndTimes.push({
|
|
729
|
+
startTime: restrictionStartTime,
|
|
730
|
+
endTime: currentEndTime,
|
|
731
|
+
});
|
|
732
|
+
reachedTheEndOfTheCurrentEvent = true;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
// 4 - If the current event starts before the restriction start time and ends after the restriction end time, we need to return the current event with the start time of the restriction and end time of the restriction.
|
|
736
|
+
|
|
737
|
+
if (
|
|
738
|
+
OneUptimeDate.isBefore(currentStartTime, restrictionStartTime) &&
|
|
739
|
+
OneUptimeDate.isOnOrAfter(currentEndTime, restrictionEndTime)
|
|
740
|
+
) {
|
|
741
|
+
trimmedStartAndEndTimes.push({
|
|
742
|
+
startTime: restrictionStartTime,
|
|
743
|
+
endTime: restrictionEndTime,
|
|
744
|
+
});
|
|
745
745
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
currentStartTime,
|
|
751
|
-
restrictionStartTime
|
|
752
|
-
) &&
|
|
753
|
-
OneUptimeDate.isBefore(currentEndTime, restrictionEndTime) &&
|
|
754
|
-
OneUptimeDate.isAfter(currentEndTime, restrictionStartTime)
|
|
755
|
-
) {
|
|
756
|
-
trimmedStartAndEndTimes.push({
|
|
757
|
-
startTime: restrictionStartTime,
|
|
758
|
-
endTime: currentEndTime,
|
|
759
|
-
});
|
|
760
|
-
reachedTheEndOfTheCurrentEvent = true;
|
|
761
|
-
}
|
|
746
|
+
currentStartTime = OneUptimeDate.addRemoveSeconds(
|
|
747
|
+
restrictionEndTime,
|
|
748
|
+
1,
|
|
749
|
+
);
|
|
762
750
|
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
if (
|
|
766
|
-
OneUptimeDate.isBefore(
|
|
767
|
-
currentStartTime,
|
|
768
|
-
restrictionStartTime
|
|
769
|
-
) &&
|
|
770
|
-
OneUptimeDate.isOnOrAfter(currentEndTime, restrictionEndTime)
|
|
771
|
-
) {
|
|
772
|
-
trimmedStartAndEndTimes.push({
|
|
773
|
-
startTime: restrictionStartTime,
|
|
774
|
-
endTime: restrictionEndTime,
|
|
775
|
-
});
|
|
776
|
-
|
|
777
|
-
currentStartTime = OneUptimeDate.addRemoveSeconds(
|
|
778
|
-
restrictionEndTime,
|
|
779
|
-
1
|
|
780
|
-
);
|
|
781
|
-
|
|
782
|
-
// add day to restriction start and end times.
|
|
783
|
-
|
|
784
|
-
restrictionStartTime = OneUptimeDate.addRemoveDays(
|
|
785
|
-
restrictionStartTime,
|
|
786
|
-
data.props.intervalType === EventInterval.Day ? 1 : 7 // daily or weekly
|
|
787
|
-
);
|
|
788
|
-
restrictionEndTime = OneUptimeDate.addRemoveDays(
|
|
789
|
-
restrictionEndTime,
|
|
790
|
-
data.props.intervalType === EventInterval.Day ? 1 : 7 // daily or weekly
|
|
791
|
-
);
|
|
792
|
-
}
|
|
793
|
-
}
|
|
751
|
+
// add day to restriction start and end times.
|
|
794
752
|
|
|
795
|
-
|
|
753
|
+
restrictionStartTime = OneUptimeDate.addRemoveDays(
|
|
754
|
+
restrictionStartTime,
|
|
755
|
+
data.props.intervalType === EventInterval.Day ? 1 : 7, // daily or weekly
|
|
756
|
+
);
|
|
757
|
+
restrictionEndTime = OneUptimeDate.addRemoveDays(
|
|
758
|
+
restrictionEndTime,
|
|
759
|
+
data.props.intervalType === EventInterval.Day ? 1 : 7, // daily or weekly
|
|
760
|
+
);
|
|
761
|
+
}
|
|
796
762
|
}
|
|
797
763
|
|
|
798
|
-
|
|
764
|
+
return trimmedStartAndEndTimes;
|
|
765
|
+
}
|
|
799
766
|
|
|
800
|
-
|
|
801
|
-
currentIndex: number,
|
|
802
|
-
userArrayLength: number,
|
|
803
|
-
incrementBy?: number
|
|
804
|
-
): number {
|
|
805
|
-
// update the current user index
|
|
767
|
+
// helper functions.
|
|
806
768
|
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
769
|
+
private static incrementUserIndex(
|
|
770
|
+
currentIndex: number,
|
|
771
|
+
userArrayLength: number,
|
|
772
|
+
incrementBy?: number,
|
|
773
|
+
): number {
|
|
774
|
+
// update the current user index
|
|
810
775
|
|
|
811
|
-
|
|
776
|
+
if (incrementBy === undefined) {
|
|
777
|
+
incrementBy = 1;
|
|
778
|
+
}
|
|
812
779
|
|
|
813
|
-
|
|
814
|
-
if (currentIndex >= userArrayLength) {
|
|
815
|
-
// then modulo the current user index by the length of the users array
|
|
816
|
-
currentIndex = currentIndex % userArrayLength; // so this rotates the users.
|
|
817
|
-
}
|
|
780
|
+
currentIndex = currentIndex + incrementBy;
|
|
818
781
|
|
|
819
|
-
|
|
782
|
+
// if the current user index is greater than the length of the users array, we need to reset the current user index to 0
|
|
783
|
+
if (currentIndex >= userArrayLength) {
|
|
784
|
+
// then modulo the current user index by the length of the users array
|
|
785
|
+
currentIndex = currentIndex % userArrayLength; // so this rotates the users.
|
|
820
786
|
}
|
|
821
787
|
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
users: Array<UserModel>,
|
|
825
|
-
currentUserIndex: number
|
|
826
|
-
): Array<CalendarEvent> {
|
|
827
|
-
const events: Array<CalendarEvent> = [];
|
|
788
|
+
return currentIndex;
|
|
789
|
+
}
|
|
828
790
|
|
|
829
|
-
|
|
791
|
+
private static getCalendarEventsFromStartAndEndDates(
|
|
792
|
+
trimmedStartAndEndTimes: Array<StartAndEndTime>,
|
|
793
|
+
users: Array<UserModel>,
|
|
794
|
+
currentUserIndex: number,
|
|
795
|
+
): Array<CalendarEvent> {
|
|
796
|
+
const events: Array<CalendarEvent> = [];
|
|
830
797
|
|
|
831
|
-
|
|
832
|
-
const event: CalendarEvent = {
|
|
833
|
-
id: 0,
|
|
834
|
-
title: userId, // This will be changed to username in the UI or will bve kept the same if used on the server.
|
|
835
|
-
allDay: false,
|
|
836
|
-
start: trimmedStartAndEndTime.startTime,
|
|
837
|
-
end: trimmedStartAndEndTime.endTime,
|
|
838
|
-
};
|
|
798
|
+
const userId: string = users[currentUserIndex]?.id?.toString() || "";
|
|
839
799
|
|
|
840
|
-
|
|
841
|
-
|
|
800
|
+
for (const trimmedStartAndEndTime of trimmedStartAndEndTimes) {
|
|
801
|
+
const event: CalendarEvent = {
|
|
802
|
+
id: 0,
|
|
803
|
+
title: userId, // This will be changed to username in the UI or will bve kept the same if used on the server.
|
|
804
|
+
allDay: false,
|
|
805
|
+
start: trimmedStartAndEndTime.startTime,
|
|
806
|
+
end: trimmedStartAndEndTime.endTime,
|
|
807
|
+
};
|
|
842
808
|
|
|
843
|
-
|
|
809
|
+
events.push(event);
|
|
844
810
|
}
|
|
845
811
|
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
812
|
+
return events;
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
public static getMultiLayerEvents(
|
|
816
|
+
data: MultiLayerProps,
|
|
817
|
+
): Array<CalendarEvent> {
|
|
818
|
+
const events: Array<PriorityCalendarEvents> = [];
|
|
819
|
+
let layerPriority: number = 1;
|
|
820
|
+
|
|
821
|
+
for (const layer of data.layers) {
|
|
822
|
+
const layerEvents: Array<CalendarEvent> = LayerUtil.getEvents({
|
|
823
|
+
users: layer.users,
|
|
824
|
+
startDateTimeOfLayer: layer.startDateTimeOfLayer,
|
|
825
|
+
restrictionTimes: layer.restrictionTimes,
|
|
826
|
+
handOffTime: layer.handOffTime,
|
|
827
|
+
rotation: layer.rotation,
|
|
828
|
+
calendarStartDate: data.calendarStartDate,
|
|
829
|
+
calendarEndDate: data.calendarEndDate,
|
|
830
|
+
});
|
|
831
|
+
|
|
832
|
+
// add priority to each event
|
|
833
|
+
|
|
834
|
+
for (const layerEvent of layerEvents) {
|
|
835
|
+
const priorityEvent: PriorityCalendarEvents = {
|
|
836
|
+
...layerEvent,
|
|
837
|
+
priority: layerPriority,
|
|
838
|
+
};
|
|
851
839
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
users: layer.users,
|
|
855
|
-
startDateTimeOfLayer: layer.startDateTimeOfLayer,
|
|
856
|
-
restrictionTimes: layer.restrictionTimes,
|
|
857
|
-
handOffTime: layer.handOffTime,
|
|
858
|
-
rotation: layer.rotation,
|
|
859
|
-
calendarStartDate: data.calendarStartDate,
|
|
860
|
-
calendarEndDate: data.calendarEndDate,
|
|
861
|
-
});
|
|
840
|
+
events.push(priorityEvent);
|
|
841
|
+
}
|
|
862
842
|
|
|
863
|
-
|
|
843
|
+
// increment layer priority
|
|
844
|
+
layerPriority++;
|
|
845
|
+
}
|
|
864
846
|
|
|
865
|
-
|
|
866
|
-
const priorityEvent: PriorityCalendarEvents = {
|
|
867
|
-
...layerEvent,
|
|
868
|
-
priority: layerPriority,
|
|
869
|
-
};
|
|
847
|
+
// now remove the overlapping events
|
|
870
848
|
|
|
871
|
-
|
|
872
|
-
|
|
849
|
+
const nonOverlappingEvents: Array<CalendarEvent> =
|
|
850
|
+
LayerUtil.removeOverlappingEvents(events);
|
|
873
851
|
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
}
|
|
852
|
+
return nonOverlappingEvents;
|
|
853
|
+
}
|
|
877
854
|
|
|
878
|
-
|
|
855
|
+
public static removeOverlappingEvents(
|
|
856
|
+
events: PriorityCalendarEvents[],
|
|
857
|
+
): CalendarEvent[] {
|
|
858
|
+
// now remove overlapping events by priority and trim them by priority. Lower priority number will be kept and higher priority number will be trimmed.
|
|
859
|
+
// so if there are two events with the same start and end time, we will keep the one with the lower priority number and remove the one with the higher priority number.
|
|
860
|
+
// if there are overlapping events, we will trim the one with the higher priority number.
|
|
879
861
|
|
|
880
|
-
|
|
881
|
-
LayerUtil.removeOverlappingEvents(events);
|
|
862
|
+
// sort the events by priority
|
|
882
863
|
|
|
883
|
-
|
|
884
|
-
}
|
|
864
|
+
// now remove the overlapping events
|
|
885
865
|
|
|
886
|
-
|
|
887
|
-
events: PriorityCalendarEvents[]
|
|
888
|
-
): CalendarEvent[] {
|
|
889
|
-
// now remove overlapping events by priority and trim them by priority. Lower priority number will be kept and higher priority number will be trimmed.
|
|
890
|
-
// so if there are two events with the same start and end time, we will keep the one with the lower priority number and remove the one with the higher priority number.
|
|
891
|
-
// if there are overlapping events, we will trim the one with the higher priority number.
|
|
866
|
+
const finalEvents: PriorityCalendarEvents[] = [];
|
|
892
867
|
|
|
893
|
-
|
|
868
|
+
// sort events by start time
|
|
894
869
|
|
|
895
|
-
|
|
870
|
+
events.sort((a: CalendarEvent, b: CalendarEvent) => {
|
|
871
|
+
if (OneUptimeDate.isBefore(a.start, b.start)) {
|
|
872
|
+
return -1;
|
|
873
|
+
}
|
|
896
874
|
|
|
897
|
-
|
|
875
|
+
if (OneUptimeDate.isAfter(a.start, b.start)) {
|
|
876
|
+
return 1;
|
|
877
|
+
}
|
|
898
878
|
|
|
899
|
-
|
|
879
|
+
return 0;
|
|
880
|
+
});
|
|
900
881
|
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
return -1;
|
|
904
|
-
}
|
|
882
|
+
for (const event of events) {
|
|
883
|
+
// trim the trimmed events by the current event based on priority
|
|
905
884
|
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
}
|
|
885
|
+
for (const finalEvent of finalEvents) {
|
|
886
|
+
// check if this final event overlaps with the current event
|
|
909
887
|
|
|
910
|
-
|
|
911
|
-
|
|
888
|
+
if (
|
|
889
|
+
OneUptimeDate.isOverlapping(
|
|
890
|
+
finalEvent.start,
|
|
891
|
+
finalEvent.end,
|
|
892
|
+
event.start,
|
|
893
|
+
event.end,
|
|
894
|
+
)
|
|
895
|
+
) {
|
|
896
|
+
// if the current event has a higher priority than the final event, we need to trim the final event
|
|
912
897
|
|
|
913
|
-
|
|
914
|
-
// trim the
|
|
915
|
-
|
|
916
|
-
for (const finalEvent of finalEvents) {
|
|
917
|
-
// check if this final event overlaps with the current event
|
|
918
|
-
|
|
919
|
-
if (
|
|
920
|
-
OneUptimeDate.isOverlapping(
|
|
921
|
-
finalEvent.start,
|
|
922
|
-
finalEvent.end,
|
|
923
|
-
event.start,
|
|
924
|
-
event.end
|
|
925
|
-
)
|
|
926
|
-
) {
|
|
927
|
-
// if the current event has a higher priority than the final event, we need to trim the final event
|
|
928
|
-
|
|
929
|
-
if (event.priority < finalEvent.priority) {
|
|
930
|
-
// trim the final event based on the current event
|
|
931
|
-
// end time of the final event will be the start time of the current event - 1 second
|
|
932
|
-
|
|
933
|
-
const tempFinalEventEnd: Date = finalEvent.end;
|
|
934
|
-
|
|
935
|
-
finalEvent.end = OneUptimeDate.addRemoveSeconds(
|
|
936
|
-
event.start,
|
|
937
|
-
-1
|
|
938
|
-
);
|
|
939
|
-
|
|
940
|
-
// final event was originally ending after the current event, so we need to add the trimmed event to the final events array
|
|
941
|
-
|
|
942
|
-
if (
|
|
943
|
-
OneUptimeDate.isAfter(tempFinalEventEnd, event.end)
|
|
944
|
-
) {
|
|
945
|
-
// add the trimmed event to the final events array
|
|
946
|
-
|
|
947
|
-
const trimmedEvent: PriorityCalendarEvents = {
|
|
948
|
-
...finalEvent,
|
|
949
|
-
priority: finalEvent.priority,
|
|
950
|
-
start: OneUptimeDate.addRemoveSeconds(
|
|
951
|
-
event.end,
|
|
952
|
-
1
|
|
953
|
-
),
|
|
954
|
-
end: tempFinalEventEnd,
|
|
955
|
-
};
|
|
956
|
-
|
|
957
|
-
finalEvents.push(trimmedEvent);
|
|
958
|
-
}
|
|
959
|
-
} else {
|
|
960
|
-
// trim the current event based on the final event
|
|
961
|
-
// start time of the current event will be the end time of the final event + 1 second
|
|
962
|
-
event.start = OneUptimeDate.addRemoveSeconds(
|
|
963
|
-
finalEvent.end,
|
|
964
|
-
1
|
|
965
|
-
);
|
|
966
|
-
}
|
|
967
|
-
}
|
|
968
|
-
}
|
|
898
|
+
if (event.priority < finalEvent.priority) {
|
|
899
|
+
// trim the final event based on the current event
|
|
900
|
+
// end time of the final event will be the start time of the current event - 1 second
|
|
969
901
|
|
|
970
|
-
|
|
902
|
+
const tempFinalEventEnd: Date = finalEvent.end;
|
|
971
903
|
|
|
972
|
-
|
|
904
|
+
finalEvent.end = OneUptimeDate.addRemoveSeconds(event.start, -1);
|
|
973
905
|
|
|
974
|
-
|
|
975
|
-
if (OneUptimeDate.isBefore(a.start, b.start)) {
|
|
976
|
-
return -1;
|
|
977
|
-
}
|
|
906
|
+
// final event was originally ending after the current event, so we need to add the trimmed event to the final events array
|
|
978
907
|
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
}
|
|
908
|
+
if (OneUptimeDate.isAfter(tempFinalEventEnd, event.end)) {
|
|
909
|
+
// add the trimmed event to the final events array
|
|
982
910
|
|
|
983
|
-
|
|
984
|
-
|
|
911
|
+
const trimmedEvent: PriorityCalendarEvents = {
|
|
912
|
+
...finalEvent,
|
|
913
|
+
priority: finalEvent.priority,
|
|
914
|
+
start: OneUptimeDate.addRemoveSeconds(event.end, 1),
|
|
915
|
+
end: tempFinalEventEnd,
|
|
916
|
+
};
|
|
985
917
|
|
|
986
|
-
|
|
918
|
+
finalEvents.push(trimmedEvent);
|
|
919
|
+
}
|
|
920
|
+
} else {
|
|
921
|
+
// trim the current event based on the final event
|
|
922
|
+
// start time of the current event will be the end time of the final event + 1 second
|
|
923
|
+
event.start = OneUptimeDate.addRemoveSeconds(finalEvent.end, 1);
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
finalEvents.push(event);
|
|
987
929
|
|
|
988
|
-
|
|
989
|
-
if (OneUptimeDate.isSame(finalEvent.start, finalEvent.end)) {
|
|
990
|
-
finalEvents.splice(index, 1);
|
|
991
|
-
}
|
|
930
|
+
// sort by start times
|
|
992
931
|
|
|
993
|
-
|
|
932
|
+
finalEvents.sort((a: CalendarEvent, b: CalendarEvent) => {
|
|
933
|
+
if (OneUptimeDate.isBefore(a.start, b.start)) {
|
|
934
|
+
return -1;
|
|
935
|
+
}
|
|
994
936
|
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
}
|
|
998
|
-
});
|
|
937
|
+
if (OneUptimeDate.isAfter(a.start, b.start)) {
|
|
938
|
+
return 1;
|
|
999
939
|
}
|
|
1000
940
|
|
|
1001
|
-
|
|
941
|
+
return 0;
|
|
942
|
+
});
|
|
1002
943
|
|
|
1003
|
-
|
|
1004
|
-
|
|
944
|
+
// if an event starts and end at the same time, we need to remove it
|
|
945
|
+
|
|
946
|
+
finalEvents.forEach((finalEvent: CalendarEvent, index: number) => {
|
|
947
|
+
if (OneUptimeDate.isSame(finalEvent.start, finalEvent.end)) {
|
|
948
|
+
finalEvents.splice(index, 1);
|
|
949
|
+
}
|
|
1005
950
|
|
|
1006
|
-
|
|
1007
|
-
const calendarEvent: CalendarEvent = {
|
|
1008
|
-
...event,
|
|
1009
|
-
id: id,
|
|
1010
|
-
};
|
|
951
|
+
// if any event ends before it starts, we need to remove it
|
|
1011
952
|
|
|
1012
|
-
|
|
1013
|
-
|
|
953
|
+
if (OneUptimeDate.isBefore(finalEvent.end, finalEvent.start)) {
|
|
954
|
+
finalEvents.splice(index, 1);
|
|
1014
955
|
}
|
|
956
|
+
});
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
// convert PriorityCalendarEvents to CalendarEvents
|
|
960
|
+
|
|
961
|
+
const calendarEvents: CalendarEvent[] = [];
|
|
962
|
+
let id: number = 1;
|
|
1015
963
|
|
|
1016
|
-
|
|
964
|
+
for (const event of finalEvents) {
|
|
965
|
+
const calendarEvent: CalendarEvent = {
|
|
966
|
+
...event,
|
|
967
|
+
id: id,
|
|
968
|
+
};
|
|
969
|
+
|
|
970
|
+
calendarEvents.push(calendarEvent);
|
|
971
|
+
id++;
|
|
1017
972
|
}
|
|
973
|
+
|
|
974
|
+
return calendarEvents;
|
|
975
|
+
}
|
|
1018
976
|
}
|