From 0a66d7ea56eb066f31a3960044bcc4c1a30b22b0 Mon Sep 17 00:00:00 2001 From: Eli Gutovsky Date: Fri, 8 Dec 2023 12:33:05 +0200 Subject: [PATCH 1/3] refactor: move legacy optimove core to sdk --- OptimoveCore/Sources/Assets/.gitkeep | 0 .../Sources/Classes/Coding/RuntimeCodingKey.swift | 0 .../Sources/Classes/Components/OptiTrack/OptiTrack.swift | 4 ---- .../Sources/Classes/Configuration}/Configuration.swift | 0 .../Sources/Classes/Configuration}/ConfigurationBuilder.swift | 0 .../Sources/Classes/Configuration}/Global/GlobalConfig.swift | 0 .../Sources/Classes/Configuration}/Tenant/EventConfig.swift | 0 .../Classes/Configuration}/Tenant/OptitrackMetaData.swift | 0 .../Sources/Classes/Configuration}/Tenant/Parameter.swift | 0 .../Classes/Configuration}/Tenant/RealtimeMetaData.swift | 0 .../Sources/Classes/Configuration}/Tenant/TenantConfig.swift | 0 .../Sources/Classes/Events/Event.swift | 0 OptimoveSDK/Sources/Classes/Factories/MainFactory.swift | 3 --- .../Sources/Classes/JSON/Initialization.swift | 0 {OptimoveCore => OptimoveSDK}/Sources/Classes/JSON/JSON.swift | 0 .../Sources/Classes/JSON/Merging.swift | 0 .../Sources/Classes/JSON/Querying.swift | 0 .../Sources/Classes/NetworkClient/NetworkClient.swift | 0 .../Sources/Classes/NetworkClient/NetworkError.swift | 0 .../Sources/Classes/NetworkClient/NetworkRequest.swift | 0 .../Sources/Classes/NetworkClient/NetworkResponse.swift | 0 .../Sources/Classes/NetworkClient/NetworkResult.swift | 0 .../Sources/Classes/Operations/AsyncOperation.swift | 0 OptimoveSDK/Sources/Classes/Optimove.swift | 1 - .../Sources/Classes/Optistream/OptistreamEvent.swift | 1 + .../Sources/Classes/Optistream/OptistreamEventBuilder.swift | 0 .../Sources/Classes/Optistream/OptistreamNetworking.swift | 0 .../Sources/Classes/Repository/ConfigurationRepository.swift | 0 .../Sources/Classes/Storage/FileManager+Optimove.swift | 0 .../Sources/Classes/Storage/FileStorage.swift | 1 + .../Sources/Classes/Storage/StorageFacade.swift | 1 + .../Sources/Classes/Storage/UserDefaults+Optimove.swift | 1 + {OptimoveCore => OptimoveSDK}/Tests/Resources/configs.json | 0 .../Tests/Resources/dev.tid.107.optipush.json | 0 .../Sources/Configurations/ConfigurationBuilderTests.swift | 2 +- .../Sources/Configurations/Global/GlobalConfigTests.swift | 2 +- .../Sources/Configurations/Tenant/TenantConfigTests.swift | 2 +- .../Tests/Sources/Mocks/MockConfigurationRepository.swift | 1 + .../Tests/Sources/NetworkClientTests.swift | 2 +- .../Tests/Sources/Storage/KeyValueStorageTests.swift | 3 ++- .../Tests/Sources/Storage/OptimoveFileManagerTests.swift | 2 +- .../Tests/Sources/Storage/OptimoveStorageFacadeTests.swift | 2 +- Package.swift | 1 + Shared/Sources/Fixture/ConfigurationFixture.swift | 2 +- Shared/Sources/Fixture/GlobalConfigFixture.swift | 2 +- Shared/Sources/Fixture/TenantConfigFixture.swift | 2 +- Shared/Sources/Mocks/MockOptimoveStorage.swift | 1 + Shared/Sources/Mocks/OptistreamNetworkingMock.swift | 2 +- Shared/Sources/StubEvent.swift | 2 +- 49 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 OptimoveCore/Sources/Assets/.gitkeep rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Coding/RuntimeCodingKey.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Configuration.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/ConfigurationBuilder.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Global/GlobalConfig.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Tenant/EventConfig.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Tenant/OptitrackMetaData.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Tenant/Parameter.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Tenant/RealtimeMetaData.swift (100%) rename {OptimoveCore/Sources/Classes/Configurations => OptimoveSDK/Sources/Classes/Configuration}/Tenant/TenantConfig.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Events/Event.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/JSON/Initialization.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/JSON/JSON.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/JSON/Merging.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/JSON/Querying.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/NetworkClient/NetworkClient.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/NetworkClient/NetworkError.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/NetworkClient/NetworkRequest.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/NetworkClient/NetworkResponse.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/NetworkClient/NetworkResult.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Operations/AsyncOperation.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Optistream/OptistreamEvent.swift (99%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Optistream/OptistreamEventBuilder.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Optistream/OptistreamNetworking.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Repository/ConfigurationRepository.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Storage/FileManager+Optimove.swift (100%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Storage/FileStorage.swift (99%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Storage/StorageFacade.swift (99%) rename {OptimoveCore => OptimoveSDK}/Sources/Classes/Storage/UserDefaults+Optimove.swift (96%) rename {OptimoveCore => OptimoveSDK}/Tests/Resources/configs.json (100%) rename {OptimoveCore => OptimoveSDK}/Tests/Resources/dev.tid.107.optipush.json (100%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/Configurations/ConfigurationBuilderTests.swift (96%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/Configurations/Global/GlobalConfigTests.swift (97%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift (97%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/NetworkClientTests.swift (98%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/Storage/KeyValueStorageTests.swift (99%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/Storage/OptimoveFileManagerTests.swift (98%) rename {OptimoveCore => OptimoveSDK}/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift (97%) diff --git a/OptimoveCore/Sources/Assets/.gitkeep b/OptimoveCore/Sources/Assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/OptimoveCore/Sources/Classes/Coding/RuntimeCodingKey.swift b/OptimoveSDK/Sources/Classes/Coding/RuntimeCodingKey.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Coding/RuntimeCodingKey.swift rename to OptimoveSDK/Sources/Classes/Coding/RuntimeCodingKey.swift diff --git a/OptimoveSDK/Sources/Classes/Components/OptiTrack/OptiTrack.swift b/OptimoveSDK/Sources/Classes/Components/OptiTrack/OptiTrack.swift index d470555a..ad683523 100644 --- a/OptimoveSDK/Sources/Classes/Components/OptiTrack/OptiTrack.swift +++ b/OptimoveSDK/Sources/Classes/Components/OptiTrack/OptiTrack.swift @@ -4,10 +4,6 @@ import Foundation import OptimoveCore import UIKit -typealias OptistreamEvent = OptimoveCore.OptistreamEvent -typealias OptistreamEventBuilder = OptimoveCore.OptistreamEventBuilder -typealias OptistreamNetworking = OptimoveCore.OptistreamNetworking - final class OptiTrack { enum Constants { static let eventBatchLimit = 50 diff --git a/OptimoveCore/Sources/Classes/Configurations/Configuration.swift b/OptimoveSDK/Sources/Classes/Configuration/Configuration.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Configuration.swift rename to OptimoveSDK/Sources/Classes/Configuration/Configuration.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/ConfigurationBuilder.swift b/OptimoveSDK/Sources/Classes/Configuration/ConfigurationBuilder.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/ConfigurationBuilder.swift rename to OptimoveSDK/Sources/Classes/Configuration/ConfigurationBuilder.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/Global/GlobalConfig.swift b/OptimoveSDK/Sources/Classes/Configuration/Global/GlobalConfig.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Global/GlobalConfig.swift rename to OptimoveSDK/Sources/Classes/Configuration/Global/GlobalConfig.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/Tenant/EventConfig.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/EventConfig.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Tenant/EventConfig.swift rename to OptimoveSDK/Sources/Classes/Configuration/Tenant/EventConfig.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/Tenant/OptitrackMetaData.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/OptitrackMetaData.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Tenant/OptitrackMetaData.swift rename to OptimoveSDK/Sources/Classes/Configuration/Tenant/OptitrackMetaData.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/Tenant/Parameter.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/Parameter.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Tenant/Parameter.swift rename to OptimoveSDK/Sources/Classes/Configuration/Tenant/Parameter.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/Tenant/RealtimeMetaData.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/RealtimeMetaData.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Tenant/RealtimeMetaData.swift rename to OptimoveSDK/Sources/Classes/Configuration/Tenant/RealtimeMetaData.swift diff --git a/OptimoveCore/Sources/Classes/Configurations/Tenant/TenantConfig.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/TenantConfig.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Configurations/Tenant/TenantConfig.swift rename to OptimoveSDK/Sources/Classes/Configuration/Tenant/TenantConfig.swift diff --git a/OptimoveCore/Sources/Classes/Events/Event.swift b/OptimoveSDK/Sources/Classes/Events/Event.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Events/Event.swift rename to OptimoveSDK/Sources/Classes/Events/Event.swift diff --git a/OptimoveSDK/Sources/Classes/Factories/MainFactory.swift b/OptimoveSDK/Sources/Classes/Factories/MainFactory.swift index 273503c1..3d62ff87 100644 --- a/OptimoveSDK/Sources/Classes/Factories/MainFactory.swift +++ b/OptimoveSDK/Sources/Classes/Factories/MainFactory.swift @@ -3,9 +3,6 @@ import Foundation import OptimoveCore -typealias NetworkClient = OptimoveCore.NetworkClient -typealias NetworkClientImpl = OptimoveCore.NetworkClientImpl - final class MainFactory { private let serviceLocator: ServiceLocator diff --git a/OptimoveCore/Sources/Classes/JSON/Initialization.swift b/OptimoveSDK/Sources/Classes/JSON/Initialization.swift similarity index 100% rename from OptimoveCore/Sources/Classes/JSON/Initialization.swift rename to OptimoveSDK/Sources/Classes/JSON/Initialization.swift diff --git a/OptimoveCore/Sources/Classes/JSON/JSON.swift b/OptimoveSDK/Sources/Classes/JSON/JSON.swift similarity index 100% rename from OptimoveCore/Sources/Classes/JSON/JSON.swift rename to OptimoveSDK/Sources/Classes/JSON/JSON.swift diff --git a/OptimoveCore/Sources/Classes/JSON/Merging.swift b/OptimoveSDK/Sources/Classes/JSON/Merging.swift similarity index 100% rename from OptimoveCore/Sources/Classes/JSON/Merging.swift rename to OptimoveSDK/Sources/Classes/JSON/Merging.swift diff --git a/OptimoveCore/Sources/Classes/JSON/Querying.swift b/OptimoveSDK/Sources/Classes/JSON/Querying.swift similarity index 100% rename from OptimoveCore/Sources/Classes/JSON/Querying.swift rename to OptimoveSDK/Sources/Classes/JSON/Querying.swift diff --git a/OptimoveCore/Sources/Classes/NetworkClient/NetworkClient.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkClient.swift similarity index 100% rename from OptimoveCore/Sources/Classes/NetworkClient/NetworkClient.swift rename to OptimoveSDK/Sources/Classes/NetworkClient/NetworkClient.swift diff --git a/OptimoveCore/Sources/Classes/NetworkClient/NetworkError.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkError.swift similarity index 100% rename from OptimoveCore/Sources/Classes/NetworkClient/NetworkError.swift rename to OptimoveSDK/Sources/Classes/NetworkClient/NetworkError.swift diff --git a/OptimoveCore/Sources/Classes/NetworkClient/NetworkRequest.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkRequest.swift similarity index 100% rename from OptimoveCore/Sources/Classes/NetworkClient/NetworkRequest.swift rename to OptimoveSDK/Sources/Classes/NetworkClient/NetworkRequest.swift diff --git a/OptimoveCore/Sources/Classes/NetworkClient/NetworkResponse.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResponse.swift similarity index 100% rename from OptimoveCore/Sources/Classes/NetworkClient/NetworkResponse.swift rename to OptimoveSDK/Sources/Classes/NetworkClient/NetworkResponse.swift diff --git a/OptimoveCore/Sources/Classes/NetworkClient/NetworkResult.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResult.swift similarity index 100% rename from OptimoveCore/Sources/Classes/NetworkClient/NetworkResult.swift rename to OptimoveSDK/Sources/Classes/NetworkClient/NetworkResult.swift diff --git a/OptimoveCore/Sources/Classes/Operations/AsyncOperation.swift b/OptimoveSDK/Sources/Classes/Operations/AsyncOperation.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Operations/AsyncOperation.swift rename to OptimoveSDK/Sources/Classes/Operations/AsyncOperation.swift diff --git a/OptimoveSDK/Sources/Classes/Optimove.swift b/OptimoveSDK/Sources/Classes/Optimove.swift index f8ffccfb..09912db6 100644 --- a/OptimoveSDK/Sources/Classes/Optimove.swift +++ b/OptimoveSDK/Sources/Classes/Optimove.swift @@ -5,7 +5,6 @@ import OptimoveCore import UIKit.UIApplication import UserNotifications -public typealias Event = OptimoveCore.Event typealias Logger = OptimoveCore.Logger /// The Optimove SDK for iOS - a realtime customer data platform. diff --git a/OptimoveCore/Sources/Classes/Optistream/OptistreamEvent.swift b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift similarity index 99% rename from OptimoveCore/Sources/Classes/Optistream/OptistreamEvent.swift rename to OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift index 48d8a283..2b9154a5 100644 --- a/OptimoveCore/Sources/Classes/Optistream/OptistreamEvent.swift +++ b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift @@ -1,6 +1,7 @@ // Copyright © 2020 Optimove. All rights reserved. import Foundation +import OptimoveCore public struct OptistreamEvent: Codable { public let tenant: Int diff --git a/OptimoveCore/Sources/Classes/Optistream/OptistreamEventBuilder.swift b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEventBuilder.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Optistream/OptistreamEventBuilder.swift rename to OptimoveSDK/Sources/Classes/Optistream/OptistreamEventBuilder.swift diff --git a/OptimoveCore/Sources/Classes/Optistream/OptistreamNetworking.swift b/OptimoveSDK/Sources/Classes/Optistream/OptistreamNetworking.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Optistream/OptistreamNetworking.swift rename to OptimoveSDK/Sources/Classes/Optistream/OptistreamNetworking.swift diff --git a/OptimoveCore/Sources/Classes/Repository/ConfigurationRepository.swift b/OptimoveSDK/Sources/Classes/Repository/ConfigurationRepository.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Repository/ConfigurationRepository.swift rename to OptimoveSDK/Sources/Classes/Repository/ConfigurationRepository.swift diff --git a/OptimoveCore/Sources/Classes/Storage/FileManager+Optimove.swift b/OptimoveSDK/Sources/Classes/Storage/FileManager+Optimove.swift similarity index 100% rename from OptimoveCore/Sources/Classes/Storage/FileManager+Optimove.swift rename to OptimoveSDK/Sources/Classes/Storage/FileManager+Optimove.swift diff --git a/OptimoveCore/Sources/Classes/Storage/FileStorage.swift b/OptimoveSDK/Sources/Classes/Storage/FileStorage.swift similarity index 99% rename from OptimoveCore/Sources/Classes/Storage/FileStorage.swift rename to OptimoveSDK/Sources/Classes/Storage/FileStorage.swift index b615ddb3..2d5d24b8 100644 --- a/OptimoveCore/Sources/Classes/Storage/FileStorage.swift +++ b/OptimoveSDK/Sources/Classes/Storage/FileStorage.swift @@ -1,6 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation +import OptimoveCore public protocol FileStorage { /// Check file if exist. diff --git a/OptimoveCore/Sources/Classes/Storage/StorageFacade.swift b/OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift similarity index 99% rename from OptimoveCore/Sources/Classes/Storage/StorageFacade.swift rename to OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift index 863ae2d0..0c4b9509 100644 --- a/OptimoveCore/Sources/Classes/Storage/StorageFacade.swift +++ b/OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift @@ -1,6 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation +import OptimoveCore /// Combined protocol for a convenince access to stored values and files. public typealias OptimoveStorage = FileStorage & KeyValueStorage & StorageValue diff --git a/OptimoveCore/Sources/Classes/Storage/UserDefaults+Optimove.swift b/OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift similarity index 96% rename from OptimoveCore/Sources/Classes/Storage/UserDefaults+Optimove.swift rename to OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift index 7cf7fd5a..42f28bee 100644 --- a/OptimoveCore/Sources/Classes/Storage/UserDefaults+Optimove.swift +++ b/OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift @@ -1,6 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation +import OptimoveCore public extension UserDefaults { enum Constants { diff --git a/OptimoveCore/Tests/Resources/configs.json b/OptimoveSDK/Tests/Resources/configs.json similarity index 100% rename from OptimoveCore/Tests/Resources/configs.json rename to OptimoveSDK/Tests/Resources/configs.json diff --git a/OptimoveCore/Tests/Resources/dev.tid.107.optipush.json b/OptimoveSDK/Tests/Resources/dev.tid.107.optipush.json similarity index 100% rename from OptimoveCore/Tests/Resources/dev.tid.107.optipush.json rename to OptimoveSDK/Tests/Resources/dev.tid.107.optipush.json diff --git a/OptimoveCore/Tests/Sources/Configurations/ConfigurationBuilderTests.swift b/OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift similarity index 96% rename from OptimoveCore/Tests/Sources/Configurations/ConfigurationBuilderTests.swift rename to OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift index 4bce5f2c..6dd661f3 100644 --- a/OptimoveCore/Tests/Sources/Configurations/ConfigurationBuilderTests.swift +++ b/OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -@testable import OptimoveCore +import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveCore/Tests/Sources/Configurations/Global/GlobalConfigTests.swift b/OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift similarity index 97% rename from OptimoveCore/Tests/Sources/Configurations/Global/GlobalConfigTests.swift rename to OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift index b406aa7f..8fca81cc 100644 --- a/OptimoveCore/Tests/Sources/Configurations/Global/GlobalConfigTests.swift +++ b/OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -@testable import OptimoveCore +import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveCore/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift b/OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift similarity index 97% rename from OptimoveCore/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift rename to OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift index 63831896..73656568 100644 --- a/OptimoveCore/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift +++ b/OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -@testable import OptimoveCore +import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift b/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift index 6616468d..54dd34ee 100644 --- a/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift +++ b/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift @@ -1,5 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. +import OptimoveSDK import OptimoveCore final class MockConfigurationRepository: ConfigurationRepository { diff --git a/OptimoveCore/Tests/Sources/NetworkClientTests.swift b/OptimoveSDK/Tests/Sources/NetworkClientTests.swift similarity index 98% rename from OptimoveCore/Tests/Sources/NetworkClientTests.swift rename to OptimoveSDK/Tests/Sources/NetworkClientTests.swift index 15ebdd62..455f765e 100644 --- a/OptimoveCore/Tests/Sources/NetworkClientTests.swift +++ b/OptimoveSDK/Tests/Sources/NetworkClientTests.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Mocker -@testable import OptimoveCore +import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveCore/Tests/Sources/Storage/KeyValueStorageTests.swift b/OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift similarity index 99% rename from OptimoveCore/Tests/Sources/Storage/KeyValueStorageTests.swift rename to OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift index c9872600..6fe47d36 100644 --- a/OptimoveCore/Tests/Sources/Storage/KeyValueStorageTests.swift +++ b/OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift @@ -1,6 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. -@testable import OptimoveCore +import OptimoveCore +import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveCore/Tests/Sources/Storage/OptimoveFileManagerTests.swift b/OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift similarity index 98% rename from OptimoveCore/Tests/Sources/Storage/OptimoveFileManagerTests.swift rename to OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift index 3cff64a3..5c622f95 100644 --- a/OptimoveCore/Tests/Sources/Storage/OptimoveFileManagerTests.swift +++ b/OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -@testable import OptimoveCore +import OptimoveSDK import XCTest final class MockedFileManager: FileManager { diff --git a/OptimoveCore/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift b/OptimoveSDK/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift similarity index 97% rename from OptimoveCore/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift rename to OptimoveSDK/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift index 27a3745a..4ea35af2 100644 --- a/OptimoveCore/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift +++ b/OptimoveSDK/Tests/Sources/Storage/OptimoveStorageFacadeTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -@testable import OptimoveCore +@testable import OptimoveSDK import XCTest class OptimoveStorageFacadeTests: XCTestCase { diff --git a/Package.swift b/Package.swift index fa4253a0..639dd44f 100644 --- a/Package.swift +++ b/Package.swift @@ -56,6 +56,7 @@ let package = Package( name: "OptimoveTest", dependencies: [ "OptimoveCore", + "OptimoveSDK", ], path: "Shared", resources: [ diff --git a/Shared/Sources/Fixture/ConfigurationFixture.swift b/Shared/Sources/Fixture/ConfigurationFixture.swift index 53b7545c..4e572bb6 100644 --- a/Shared/Sources/Fixture/ConfigurationFixture.swift +++ b/Shared/Sources/Fixture/ConfigurationFixture.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation -@testable import OptimoveCore +@testable import OptimoveSDK public struct Options { public let isEnableRealtime: Bool diff --git a/Shared/Sources/Fixture/GlobalConfigFixture.swift b/Shared/Sources/Fixture/GlobalConfigFixture.swift index 4c1b7a2a..435ea587 100644 --- a/Shared/Sources/Fixture/GlobalConfigFixture.swift +++ b/Shared/Sources/Fixture/GlobalConfigFixture.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation -@testable import OptimoveCore +@testable import OptimoveSDK public final class GlobalConfigFixture: FileAccessible { public let fileName: String = "core_events.json" diff --git a/Shared/Sources/Fixture/TenantConfigFixture.swift b/Shared/Sources/Fixture/TenantConfigFixture.swift index 7a7e0af7..b03b8200 100644 --- a/Shared/Sources/Fixture/TenantConfigFixture.swift +++ b/Shared/Sources/Fixture/TenantConfigFixture.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation -import OptimoveCore +import OptimoveSDK public final class TenantConfigFixture { public init() {} diff --git a/Shared/Sources/Mocks/MockOptimoveStorage.swift b/Shared/Sources/Mocks/MockOptimoveStorage.swift index d98e7cae..7ad92a82 100644 --- a/Shared/Sources/Mocks/MockOptimoveStorage.swift +++ b/Shared/Sources/Mocks/MockOptimoveStorage.swift @@ -2,6 +2,7 @@ import Foundation import OptimoveCore +import OptimoveSDK public final class MockOptimoveStorage: OptimoveStorage { public init() {} diff --git a/Shared/Sources/Mocks/OptistreamNetworkingMock.swift b/Shared/Sources/Mocks/OptistreamNetworkingMock.swift index 64d1b169..5aa116ad 100644 --- a/Shared/Sources/Mocks/OptistreamNetworkingMock.swift +++ b/Shared/Sources/Mocks/OptistreamNetworkingMock.swift @@ -1,6 +1,6 @@ // Copyright © 2020 Optimove. All rights reserved. -import OptimoveCore +import OptimoveSDK public final class OptistreamNetworkingMock: OptistreamNetworking { public init() {} diff --git a/Shared/Sources/StubEvent.swift b/Shared/Sources/StubEvent.swift index 446bc530..439d3a5c 100644 --- a/Shared/Sources/StubEvent.swift +++ b/Shared/Sources/StubEvent.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation -@testable import OptimoveCore +@testable import OptimoveSDK public final class StubEvent: Event { public enum Constnats { From e741854e36395dbd21feebb7e34c78d71867d8ee Mon Sep 17 00:00:00 2001 From: Eli Gutovsky Date: Fri, 8 Dec 2023 12:44:11 +0200 Subject: [PATCH 2/3] chore: merge mobile core with optimove core --- .../Sources/Classes}/AppGroupsHelper.swift | 0 .../Sources/Classes}/Credentials.swift | 0 .../Classes}/Extensions/Notifications.swift | 0 .../Classes}/KeyValPersistenceHelper.swift | 0 .../Sources/Classes}/MediaHelper.swift | 0 .../Sources/Classes}/OptimobileEvent.swift | 0 .../Sources/Classes}/OptimobileHelper.swift | 0 .../Classes}/OptimobileUserDefaultsKey.swift | 0 .../Classes}/PendingNotification.swift | 0 .../Classes}/PendingNotificationHelper.swift | 0 .../Sources/Classes}/PushNotification.swift | 0 .../Resources/notification-background.json | 0 .../Tests/Resources/notification-badge.json | 0 .../Tests/Resources/notification-buttons.json | 0 .../Resources/notification-deeplink.json | 0 .../Tests/Resources/notification-image.json | 0 .../Tests/Resources/notification-message.json | 0 .../Tests/Resources/notification-url.json | 0 .../Tests/Sources}/MediaHelperTests.swift | 2 +- .../Sources}/PushNotificationTests.swift | 2 +- .../Sources/CategoryManager.swift | 2 +- .../Sources/OptimoveNotificationService.swift | 2 +- OptimoveSDK/Sources/Assets/.gitkeep | 0 .../Classes/Optimobile/AnalyticsHelper.swift | 2 +- .../Optimobile/InApp/InAppManager.swift | 2 +- .../Optimobile/InApp/InAppPresenter.swift | 2 +- .../Network/AuthorizationMediator.swift | 2 +- .../Optimobile/Network/UrlBuilder.swift | 2 +- .../Optimobile/Optimobile+Analytics.swift | 2 +- .../Optimobile/Optimobile+DeepLinking.swift | 2 +- .../Optimobile/Optimobile+Location.swift | 2 +- .../Classes/Optimobile/Optimobile+Push.swift | 2 +- .../Classes/Optimobile/Optimobile+Stats.swift | 1 - .../Classes/Optimobile/Optimobile.swift | 2 +- .../Classes/Optimobile/OptimoveInApp.swift | 2 +- ...timoveUserNotificationCenterDelegate.swift | 2 +- .../Classes/Optimobile/SessionHelper.swift | 2 +- .../Sources/Classes/OptimoveConfig.swift | 2 +- .../Sources/OptimoveConfigBuilderTests.swift | 2 +- Package.swift | 27 ++----------------- 40 files changed, 21 insertions(+), 45 deletions(-) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/AppGroupsHelper.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/Credentials.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/Extensions/Notifications.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/KeyValPersistenceHelper.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/MediaHelper.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/OptimobileEvent.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/OptimobileHelper.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/OptimobileUserDefaultsKey.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/PendingNotification.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/PendingNotificationHelper.swift (100%) rename {OptimobileCore/Sources => OptimoveCore/Sources/Classes}/PushNotification.swift (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-background.json (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-badge.json (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-buttons.json (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-deeplink.json (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-image.json (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-message.json (100%) rename {OptimobileCore => OptimoveCore}/Tests/Resources/notification-url.json (100%) rename {OptimobileCore/Tests => OptimoveCore/Tests/Sources}/MediaHelperTests.swift (96%) rename {OptimobileCore/Tests => OptimoveCore/Tests/Sources}/PushNotificationTests.swift (99%) delete mode 100644 OptimoveSDK/Sources/Assets/.gitkeep diff --git a/OptimobileCore/Sources/AppGroupsHelper.swift b/OptimoveCore/Sources/Classes/AppGroupsHelper.swift similarity index 100% rename from OptimobileCore/Sources/AppGroupsHelper.swift rename to OptimoveCore/Sources/Classes/AppGroupsHelper.swift diff --git a/OptimobileCore/Sources/Credentials.swift b/OptimoveCore/Sources/Classes/Credentials.swift similarity index 100% rename from OptimobileCore/Sources/Credentials.swift rename to OptimoveCore/Sources/Classes/Credentials.swift diff --git a/OptimobileCore/Sources/Extensions/Notifications.swift b/OptimoveCore/Sources/Classes/Extensions/Notifications.swift similarity index 100% rename from OptimobileCore/Sources/Extensions/Notifications.swift rename to OptimoveCore/Sources/Classes/Extensions/Notifications.swift diff --git a/OptimobileCore/Sources/KeyValPersistenceHelper.swift b/OptimoveCore/Sources/Classes/KeyValPersistenceHelper.swift similarity index 100% rename from OptimobileCore/Sources/KeyValPersistenceHelper.swift rename to OptimoveCore/Sources/Classes/KeyValPersistenceHelper.swift diff --git a/OptimobileCore/Sources/MediaHelper.swift b/OptimoveCore/Sources/Classes/MediaHelper.swift similarity index 100% rename from OptimobileCore/Sources/MediaHelper.swift rename to OptimoveCore/Sources/Classes/MediaHelper.swift diff --git a/OptimobileCore/Sources/OptimobileEvent.swift b/OptimoveCore/Sources/Classes/OptimobileEvent.swift similarity index 100% rename from OptimobileCore/Sources/OptimobileEvent.swift rename to OptimoveCore/Sources/Classes/OptimobileEvent.swift diff --git a/OptimobileCore/Sources/OptimobileHelper.swift b/OptimoveCore/Sources/Classes/OptimobileHelper.swift similarity index 100% rename from OptimobileCore/Sources/OptimobileHelper.swift rename to OptimoveCore/Sources/Classes/OptimobileHelper.swift diff --git a/OptimobileCore/Sources/OptimobileUserDefaultsKey.swift b/OptimoveCore/Sources/Classes/OptimobileUserDefaultsKey.swift similarity index 100% rename from OptimobileCore/Sources/OptimobileUserDefaultsKey.swift rename to OptimoveCore/Sources/Classes/OptimobileUserDefaultsKey.swift diff --git a/OptimobileCore/Sources/PendingNotification.swift b/OptimoveCore/Sources/Classes/PendingNotification.swift similarity index 100% rename from OptimobileCore/Sources/PendingNotification.swift rename to OptimoveCore/Sources/Classes/PendingNotification.swift diff --git a/OptimobileCore/Sources/PendingNotificationHelper.swift b/OptimoveCore/Sources/Classes/PendingNotificationHelper.swift similarity index 100% rename from OptimobileCore/Sources/PendingNotificationHelper.swift rename to OptimoveCore/Sources/Classes/PendingNotificationHelper.swift diff --git a/OptimobileCore/Sources/PushNotification.swift b/OptimoveCore/Sources/Classes/PushNotification.swift similarity index 100% rename from OptimobileCore/Sources/PushNotification.swift rename to OptimoveCore/Sources/Classes/PushNotification.swift diff --git a/OptimobileCore/Tests/Resources/notification-background.json b/OptimoveCore/Tests/Resources/notification-background.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-background.json rename to OptimoveCore/Tests/Resources/notification-background.json diff --git a/OptimobileCore/Tests/Resources/notification-badge.json b/OptimoveCore/Tests/Resources/notification-badge.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-badge.json rename to OptimoveCore/Tests/Resources/notification-badge.json diff --git a/OptimobileCore/Tests/Resources/notification-buttons.json b/OptimoveCore/Tests/Resources/notification-buttons.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-buttons.json rename to OptimoveCore/Tests/Resources/notification-buttons.json diff --git a/OptimobileCore/Tests/Resources/notification-deeplink.json b/OptimoveCore/Tests/Resources/notification-deeplink.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-deeplink.json rename to OptimoveCore/Tests/Resources/notification-deeplink.json diff --git a/OptimobileCore/Tests/Resources/notification-image.json b/OptimoveCore/Tests/Resources/notification-image.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-image.json rename to OptimoveCore/Tests/Resources/notification-image.json diff --git a/OptimobileCore/Tests/Resources/notification-message.json b/OptimoveCore/Tests/Resources/notification-message.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-message.json rename to OptimoveCore/Tests/Resources/notification-message.json diff --git a/OptimobileCore/Tests/Resources/notification-url.json b/OptimoveCore/Tests/Resources/notification-url.json similarity index 100% rename from OptimobileCore/Tests/Resources/notification-url.json rename to OptimoveCore/Tests/Resources/notification-url.json diff --git a/OptimobileCore/Tests/MediaHelperTests.swift b/OptimoveCore/Tests/Sources/MediaHelperTests.swift similarity index 96% rename from OptimobileCore/Tests/MediaHelperTests.swift rename to OptimoveCore/Tests/Sources/MediaHelperTests.swift index a4dcfbe8..580e1006 100644 --- a/OptimobileCore/Tests/MediaHelperTests.swift +++ b/OptimoveCore/Tests/Sources/MediaHelperTests.swift @@ -1,6 +1,6 @@ // Copyright © 2023 Optimove. All rights reserved. -@testable import OptimobileCore +import OptimoveCore import XCTest final class MediaHelperTests: XCTestCase { diff --git a/OptimobileCore/Tests/PushNotificationTests.swift b/OptimoveCore/Tests/Sources/PushNotificationTests.swift similarity index 99% rename from OptimobileCore/Tests/PushNotificationTests.swift rename to OptimoveCore/Tests/Sources/PushNotificationTests.swift index c8d068e5..8f0cac7f 100644 --- a/OptimobileCore/Tests/PushNotificationTests.swift +++ b/OptimoveCore/Tests/Sources/PushNotificationTests.swift @@ -1,6 +1,6 @@ // Copyright © 2023 Optimove. All rights reserved. -import OptimobileCore +import OptimoveCore import OptimoveTest import XCTest diff --git a/OptimoveNotificationServiceExtension/Sources/CategoryManager.swift b/OptimoveNotificationServiceExtension/Sources/CategoryManager.swift index 4c1354ee..995a145e 100644 --- a/OptimoveNotificationServiceExtension/Sources/CategoryManager.swift +++ b/OptimoveNotificationServiceExtension/Sources/CategoryManager.swift @@ -1,6 +1,6 @@ // Copyright © 2022 Optimove. All rights reserved. -import OptimobileCore +import OptimoveCore import UserNotifications enum CategoryManager { diff --git a/OptimoveNotificationServiceExtension/Sources/OptimoveNotificationService.swift b/OptimoveNotificationServiceExtension/Sources/OptimoveNotificationService.swift index 10a13472..9c79734c 100644 --- a/OptimoveNotificationServiceExtension/Sources/OptimoveNotificationService.swift +++ b/OptimoveNotificationServiceExtension/Sources/OptimoveNotificationService.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore import UIKit import UserNotifications diff --git a/OptimoveSDK/Sources/Assets/.gitkeep b/OptimoveSDK/Sources/Assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/OptimoveSDK/Sources/Classes/Optimobile/AnalyticsHelper.swift b/OptimoveSDK/Sources/Classes/Optimobile/AnalyticsHelper.swift index 52726a6d..3c34e005 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/AnalyticsHelper.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/AnalyticsHelper.swift @@ -2,7 +2,7 @@ import CoreData import Foundation -import OptimobileCore +import OptimoveCore class KSEventModel: NSManagedObject { @NSManaged var uuid: String diff --git a/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppManager.swift b/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppManager.swift index 573331de..db390962 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppManager.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppManager.swift @@ -2,7 +2,7 @@ import CoreData import Foundation -import OptimobileCore +import OptimoveCore import UIKit public enum InAppMessagePresentationResult: String { diff --git a/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppPresenter.swift b/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppPresenter.swift index 3cd6318b..ffac42dd 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppPresenter.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppPresenter.swift @@ -1,6 +1,6 @@ // Copyright © 2022 Optimove. All rights reserved. -import OptimobileCore +import OptimoveCore import StoreKit import UIKit import UserNotifications diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Network/AuthorizationMediator.swift b/OptimoveSDK/Sources/Classes/Optimobile/Network/AuthorizationMediator.swift index 8a795fa9..f3873bb1 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Network/AuthorizationMediator.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Network/AuthorizationMediator.swift @@ -1,7 +1,7 @@ // Copyright © 2023 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore enum AuthorizationStrategy { case basic diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Network/UrlBuilder.swift b/OptimoveSDK/Sources/Classes/Optimobile/Network/UrlBuilder.swift index 48a3d16a..84bcd4dd 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Network/UrlBuilder.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Network/UrlBuilder.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore public class UrlBuilder { enum Error: LocalizedError { diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Analytics.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Analytics.swift index 66ed0ead..72b184f5 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Analytics.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Analytics.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore extension Optimobile { static func trackEvent(eventType: OptimobileEvent, properties: [String: Any]?, immediateFlush: Bool = false) { diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift index 3c9d97f7..0cc1bd48 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift @@ -1,8 +1,8 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation +import OptimoveCore import UIKit -import OptimobileCore public struct DeepLinkContent { public let title: String? diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Location.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Location.swift index ec954731..ae60fd29 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Location.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Location.swift @@ -1,6 +1,6 @@ import CoreLocation import Foundation -import OptimobileCore +import OptimoveCore extension Optimobile { static func sendLocationUpdate(location: CLLocation) { diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift index 7c5b5fc4..10db4778 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift @@ -2,7 +2,7 @@ import Foundation import ObjectiveC.runtime -import OptimobileCore +import OptimoveCore import UIKit import UserNotifications diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Stats.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Stats.swift index bd8deee3..19b0f52f 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Stats.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Stats.swift @@ -1,7 +1,6 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore import OptimoveCore import UserNotifications diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile.swift index c5ff7c08..d86d9c6c 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore import UserNotifications public typealias InAppDeepLinkHandlerBlock = (InAppButtonPress) -> Void diff --git a/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift b/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift index e4f5e331..e4a3f252 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift @@ -2,7 +2,7 @@ import CoreData import Foundation -import OptimobileCore +import OptimoveCore public class InAppInboxItem { public internal(set) var id: Int64 diff --git a/OptimoveSDK/Sources/Classes/Optimobile/OptimoveUserNotificationCenterDelegate.swift b/OptimoveSDK/Sources/Classes/Optimobile/OptimoveUserNotificationCenterDelegate.swift index 101f90d9..b091d137 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/OptimoveUserNotificationCenterDelegate.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/OptimoveUserNotificationCenterDelegate.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore import UserNotifications @available(iOS 10.0, *) diff --git a/OptimoveSDK/Sources/Classes/Optimobile/SessionHelper.swift b/OptimoveSDK/Sources/Classes/Optimobile/SessionHelper.swift index 983a48bd..3da83b7d 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/SessionHelper.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/SessionHelper.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore import UIKit class SessionIdleTimer { diff --git a/OptimoveSDK/Sources/Classes/OptimoveConfig.swift b/OptimoveSDK/Sources/Classes/OptimoveConfig.swift index 031ce28a..6cfdc426 100644 --- a/OptimoveSDK/Sources/Classes/OptimoveConfig.swift +++ b/OptimoveSDK/Sources/Classes/OptimoveConfig.swift @@ -1,7 +1,7 @@ // Copyright © 2022 Optimove. All rights reserved. import Foundation -import OptimobileCore +import OptimoveCore /// A set of options for configuring the SDK. /// - Note: The SDK can be configured to support multiple features. diff --git a/OptimoveSDK/Tests/Sources/OptimoveConfigBuilderTests.swift b/OptimoveSDK/Tests/Sources/OptimoveConfigBuilderTests.swift index 6cf358ee..e4dfb222 100644 --- a/OptimoveSDK/Tests/Sources/OptimoveConfigBuilderTests.swift +++ b/OptimoveSDK/Tests/Sources/OptimoveConfigBuilderTests.swift @@ -1,6 +1,6 @@ // Copyright © 2023 Optimove. All rights reserved. -import OptimobileCore +import OptimoveCore @testable import OptimoveSDK import XCTest diff --git a/Package.swift b/Package.swift index 639dd44f..73b21dea 100644 --- a/Package.swift +++ b/Package.swift @@ -29,7 +29,6 @@ let package = Package( .target( name: "OptimoveSDK", dependencies: [ - "OptimobileCore", "OptimoveCore", ], path: "OptimoveSDK/Sources" @@ -38,24 +37,16 @@ let package = Package( name: "OptimoveCore", path: "OptimoveCore/Sources" ), - .target( - name: "OptimobileCore", - path: "OptimobileCore/Sources", - resources: [ - .process("Resources"), - ] - ), .target( name: "OptimoveNotificationServiceExtension", dependencies: [ - "OptimobileCore", + "OptimoveCore", ], path: "OptimoveNotificationServiceExtension/Sources" ), .target( name: "OptimoveTest", dependencies: [ - "OptimoveCore", "OptimoveSDK", ], path: "Shared", @@ -87,27 +78,13 @@ let package = Package( .process("Resources"), ] ), - .testTarget( - name: "OptimobileCoreTests", - dependencies: [ - "OptimobileCore", - "OptimoveTest", - ], - path: "OptimobileCore/Tests", - resources: [ - .process("Resources"), - ] - ), .testTarget( name: "OptimoveNotificationServiceExtensionTests", dependencies: [ "OptimoveNotificationServiceExtension", "OptimoveTest", ], - path: "OptimoveNotificationServiceExtension/Tests", - resources: [ - .process("Resources"), - ] + path: "OptimoveNotificationServiceExtension/Tests" ), ], swiftLanguageVersions: [.v5] From 85adee62dd786afca1ac4554488ebb795981678a Mon Sep 17 00:00:00 2001 From: Eli Gutovsky Date: Fri, 8 Dec 2023 13:36:58 +0200 Subject: [PATCH 3/3] refactor: review access level --- .../Sources/Classes/AppGroupsHelper.swift | 4 +- .../Sources/Classes/Credentials.swift | 13 ---- .../Classes/Extension/Bundle+HostApp.swift | 2 +- .../Classes/Extension/Result+Successful.swift | 12 ---- .../Extension/utsname+DeviceModel.swift | 2 +- .../Classes/Extensions/Notifications.swift | 7 --- .../Sources/Classes/OptimobileHelper.swift | 2 - .../Classes/Coding/RuntimeCodingKey.swift | 10 ++-- .../Classes/Configuration/Configuration.swift | 60 +++++++++---------- .../Configuration/ConfigurationBuilder.swift | 16 ++--- .../Configuration/Global/GlobalConfig.swift | 30 +++++----- .../RemoteConfigurationRequestBuilder.swift | 8 +-- .../Configuration/Tenant/EventConfig.swift | 12 ++-- .../Tenant/OptitrackMetaData.swift | 8 +-- .../Configuration/Tenant/Parameter.swift | 10 ++-- .../Tenant/RealtimeMetaData.swift | 6 +- .../Configuration/Tenant/TenantConfig.swift | 22 +++---- .../Classes/DataStructs/RingBuffer.swift | 14 ++--- .../Sources/Classes/Events/Event.swift | 20 +++---- .../Extensions}/Bundle+AppVersion.swift | 2 +- .../Classes/Extensions/Notification.swift | 3 +- .../Sources/Classes/JSON/Initialization.swift | 18 +++--- OptimoveSDK/Sources/Classes/JSON/JSON.swift | 8 +-- .../Sources/Classes/JSON/Merging.swift | 2 +- .../Sources/Classes/JSON/Querying.swift | 2 +- .../Classes/NetworkClient/NetworkClient.swift | 10 ++-- .../Classes/NetworkClient/NetworkError.swift | 4 +- .../NetworkClient/NetworkRequest.swift | 54 ++++++++--------- .../NetworkClient/NetworkResponse.swift | 4 +- .../Classes/NetworkClient/NetworkResult.swift | 2 +- .../Classes/Operations/AsyncOperation.swift | 14 ++--- .../Classes/Optimobile/Credentials.swift | 11 ++++ .../Classes/Optimobile/CwlSysctl.swift | 38 ++++++------ .../Optimobile/InApp/InAppModels.swift | 24 ++++---- .../Optimobile/Optimobile+DeepLinking.swift | 4 +- .../Classes/Optimobile/Optimobile+Push.swift | 2 + .../Classes/Optimobile/OptimoveInApp.swift | 58 +++++++++--------- .../Sources/Classes/OptimoveConfig.swift | 8 +-- .../Classes/Optistream/OptistreamEvent.swift | 40 ++++++------- .../Optistream/OptistreamEventBuilder.swift | 6 +- .../Optistream/OptistreamNetworking.swift | 10 ++-- .../Repository/ConfigurationRepository.swift | 18 +++--- .../Storage/FileManager+Optimove.swift | 2 +- .../Sources/Classes/Storage/FileStorage.swift | 20 +++---- .../Classes/Storage/StorageFacade.swift | 38 ++++++------ .../Storage/UserDefaults+Optimove.swift | 2 +- .../ConfigurationBuilderTests.swift | 2 +- .../Global/GlobalConfigTests.swift | 2 +- .../Tenant/TenantConfigTests.swift | 2 +- .../Mocks/MockConfigurationRepository.swift | 2 +- .../Tests/Sources/NetworkClientTests.swift | 2 +- .../Storage/KeyValueStorageTests.swift | 2 +- .../Storage/OptimoveFileManagerTests.swift | 2 +- .../Sources/Fixture/TenantConfigFixture.swift | 2 +- .../Sources/Mocks/MockOptimoveStorage.swift | 2 +- .../Mocks/OptistreamNetworkingMock.swift | 2 +- Shared/Sources/OptimoveTestCase.swift | 1 + 57 files changed, 332 insertions(+), 351 deletions(-) delete mode 100644 OptimoveCore/Sources/Classes/Credentials.swift delete mode 100644 OptimoveCore/Sources/Classes/Extension/Result+Successful.swift delete mode 100644 OptimoveCore/Sources/Classes/Extensions/Notifications.swift rename {OptimoveCore/Sources/Classes/Extension => OptimoveSDK/Sources/Classes/Extensions}/Bundle+AppVersion.swift (88%) create mode 100644 OptimoveSDK/Sources/Classes/Optimobile/Credentials.swift diff --git a/OptimoveCore/Sources/Classes/AppGroupsHelper.swift b/OptimoveCore/Sources/Classes/AppGroupsHelper.swift index 24dbc808..af813509 100644 --- a/OptimoveCore/Sources/Classes/AppGroupsHelper.swift +++ b/OptimoveCore/Sources/Classes/AppGroupsHelper.swift @@ -2,8 +2,8 @@ import Foundation -public enum AppGroupConfig { - public static var suffix: String = ".optimove" +enum AppGroupConfig { + static var suffix: String = ".optimove" } public enum AppGroupsHelper { diff --git a/OptimoveCore/Sources/Classes/Credentials.swift b/OptimoveCore/Sources/Classes/Credentials.swift deleted file mode 100644 index 6b6774c2..00000000 --- a/OptimoveCore/Sources/Classes/Credentials.swift +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright © 2023 Optimove. All rights reserved. - -import Foundation - -public struct OptimobileCredentials: Codable { - public let apiKey: String - public let secretKey: String - - public init(apiKey: String, secretKey: String) { - self.apiKey = apiKey - self.secretKey = secretKey - } -} diff --git a/OptimoveCore/Sources/Classes/Extension/Bundle+HostApp.swift b/OptimoveCore/Sources/Classes/Extension/Bundle+HostApp.swift index 9d3548e2..6f0d73de 100644 --- a/OptimoveCore/Sources/Classes/Extension/Bundle+HostApp.swift +++ b/OptimoveCore/Sources/Classes/Extension/Bundle+HostApp.swift @@ -2,7 +2,7 @@ import Foundation -public extension Bundle { +extension Bundle { /// https://stackoverflow.com/a/27849695 static func hostAppBundle() -> Bundle? { let mainBundle = Bundle.main diff --git a/OptimoveCore/Sources/Classes/Extension/Result+Successful.swift b/OptimoveCore/Sources/Classes/Extension/Result+Successful.swift deleted file mode 100644 index af15ed09..00000000 --- a/OptimoveCore/Sources/Classes/Extension/Result+Successful.swift +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright © 2019 Optimove. All rights reserved. - -public extension Result { - var isSuccessful: Bool { - do { - _ = try get() - return true - } catch { - return false - } - } -} diff --git a/OptimoveCore/Sources/Classes/Extension/utsname+DeviceModel.swift b/OptimoveCore/Sources/Classes/Extension/utsname+DeviceModel.swift index 282b89b4..f0d34ae4 100644 --- a/OptimoveCore/Sources/Classes/Extension/utsname+DeviceModel.swift +++ b/OptimoveCore/Sources/Classes/Extension/utsname+DeviceModel.swift @@ -2,7 +2,7 @@ import Foundation -public extension utsname { +extension utsname { var deviceModel: String { var systemInfo = self uname(&systemInfo) diff --git a/OptimoveCore/Sources/Classes/Extensions/Notifications.swift b/OptimoveCore/Sources/Classes/Extensions/Notifications.swift deleted file mode 100644 index c0699e8f..00000000 --- a/OptimoveCore/Sources/Classes/Extensions/Notifications.swift +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright © 2023 Optimove. All rights reserved. - -import Foundation - -public extension Notification.Name { - static let optimobileInializationFinished = Notification.Name("optimobileInializationFinished") -} diff --git a/OptimoveCore/Sources/Classes/OptimobileHelper.swift b/OptimoveCore/Sources/Classes/OptimobileHelper.swift index 7932235b..13dc6448 100644 --- a/OptimoveCore/Sources/Classes/OptimobileHelper.swift +++ b/OptimoveCore/Sources/Classes/OptimobileHelper.swift @@ -2,8 +2,6 @@ import Foundation -public let KS_MESSAGE_TYPE_PUSH = 1 - public enum OptimobileHelper { private static let installIdLock = DispatchSemaphore(value: 1) public static let userIdLock = DispatchSemaphore(value: 1) diff --git a/OptimoveSDK/Sources/Classes/Coding/RuntimeCodingKey.swift b/OptimoveSDK/Sources/Classes/Coding/RuntimeCodingKey.swift index 95a87773..5657cab5 100644 --- a/OptimoveSDK/Sources/Classes/Coding/RuntimeCodingKey.swift +++ b/OptimoveSDK/Sources/Classes/Coding/RuntimeCodingKey.swift @@ -2,16 +2,16 @@ import Foundation -public final class RuntimeCodingKey: CodingKey { - public var stringValue: String +final class RuntimeCodingKey: CodingKey { + var stringValue: String - public init?(stringValue: String) { + init?(stringValue: String) { self.stringValue = stringValue } - public var intValue: Int? + var intValue: Int? - public init?(intValue: Int) { + init?(intValue: Int) { self.intValue = intValue stringValue = String(intValue) } diff --git a/OptimoveSDK/Sources/Classes/Configuration/Configuration.swift b/OptimoveSDK/Sources/Classes/Configuration/Configuration.swift index eddca072..25c7dea8 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Configuration.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Configuration.swift @@ -2,16 +2,16 @@ import Foundation -public struct Configuration: Codable, TenantInfo, EventInfo { - public let tenantID: Int - public let logger: LoggerConfig - public let realtime: RealtimeConfig - public let optitrack: OptitrackConfig - public let events: [String: EventsConfig] - public let isEnableRealtime: Bool - public let isSupportedAirship: Bool +struct Configuration: Codable, TenantInfo, EventInfo { + let tenantID: Int + let logger: LoggerConfig + let realtime: RealtimeConfig + let optitrack: OptitrackConfig + let events: [String: EventsConfig] + let isEnableRealtime: Bool + let isSupportedAirship: Bool - public init( + init( tenantID: Int, logger: LoggerConfig, realtime: RealtimeConfig, @@ -30,12 +30,12 @@ public struct Configuration: Codable, TenantInfo, EventInfo { } } -public struct LoggerConfig: Codable, TenantInfo { - public let tenantID: Int - public let logServiceEndpoint: URL - public let isProductionLogsEnabled: Bool +struct LoggerConfig: Codable, TenantInfo { + let tenantID: Int + let logServiceEndpoint: URL + let isProductionLogsEnabled: Bool - public init( + init( tenantID: Int, logServiceEndpoint: URL, isProductionLogsEnabled: Bool @@ -46,13 +46,13 @@ public struct LoggerConfig: Codable, TenantInfo { } } -public struct RealtimeConfig: Codable, TenantInfo, EventInfo { - public let tenantID: Int - public let realtimeGateway: URL - public let events: [String: EventsConfig] - public let isEnableRealtimeThroughOptistream: Bool +struct RealtimeConfig: Codable, TenantInfo, EventInfo { + let tenantID: Int + let realtimeGateway: URL + let events: [String: EventsConfig] + let isEnableRealtimeThroughOptistream: Bool - public init( + init( tenantID: Int, realtimeGateway: URL, events: [String: EventsConfig], @@ -65,15 +65,15 @@ public struct RealtimeConfig: Codable, TenantInfo, EventInfo { } } -public struct OptitrackConfig: Codable, TenantInfo, EventInfo { - public let tenantID: Int - public let optitrackEndpoint: URL - public let enableAdvertisingIdReport: Bool - public let eventCategoryName: String - public let events: [String: EventsConfig] - public let isEnableRealtime: Bool +struct OptitrackConfig: Codable, TenantInfo, EventInfo { + let tenantID: Int + let optitrackEndpoint: URL + let enableAdvertisingIdReport: Bool + let eventCategoryName: String + let events: [String: EventsConfig] + let isEnableRealtime: Bool - public init( + init( tenantID: Int, optitrackEndpoint: URL, enableAdvertisingIdReport: Bool, @@ -90,10 +90,10 @@ public struct OptitrackConfig: Codable, TenantInfo, EventInfo { } } -public protocol TenantInfo { +protocol TenantInfo { var tenantID: Int { get } } -public protocol EventInfo { +protocol EventInfo { var events: [String: EventsConfig] { get } } diff --git a/OptimoveSDK/Sources/Classes/Configuration/ConfigurationBuilder.swift b/OptimoveSDK/Sources/Classes/Configuration/ConfigurationBuilder.swift index ea588f53..8cea0bc9 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/ConfigurationBuilder.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/ConfigurationBuilder.swift @@ -2,13 +2,13 @@ import Foundation -public final class ConfigurationBuilder { - private let globalConfig: GlobalConfig - private let tenantConfig: TenantConfig - private let events: [String: EventsConfig] +final class ConfigurationBuilder { + let globalConfig: GlobalConfig + let tenantConfig: TenantConfig + let events: [String: EventsConfig] - public init(globalConfig: GlobalConfig, - tenantConfig: TenantConfig) + init(globalConfig: GlobalConfig, + tenantConfig: TenantConfig) { self.globalConfig = globalConfig self.tenantConfig = tenantConfig @@ -18,7 +18,7 @@ public final class ConfigurationBuilder { ) } - public func build() -> Configuration { + func build() -> Configuration { return Configuration( tenantID: tenantConfig.optitrack.siteId, logger: buildLoggerConfig(), @@ -31,7 +31,7 @@ public final class ConfigurationBuilder { } } -private extension ConfigurationBuilder { +extension ConfigurationBuilder { func buildLoggerConfig() -> LoggerConfig { return LoggerConfig( tenantID: tenantConfig.optitrack.siteId, diff --git a/OptimoveSDK/Sources/Classes/Configuration/Global/GlobalConfig.swift b/OptimoveSDK/Sources/Classes/Configuration/Global/GlobalConfig.swift index 96e87ec6..24df81da 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Global/GlobalConfig.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Global/GlobalConfig.swift @@ -4,14 +4,14 @@ import Foundation // MARK: - GlobalConfig -public struct GlobalConfig: Codable, Equatable { - public let general: GlobalGeneralConfig - public let optitrack: GlobalOptitrackConfig - public let coreEvents: [String: EventsConfig] +struct GlobalConfig: Codable, Equatable { + let general: GlobalGeneralConfig + let optitrack: GlobalOptitrackConfig + let coreEvents: [String: EventsConfig] - public init(general: GlobalGeneralConfig, - optitrack: GlobalOptitrackConfig, - coreEvents: [String: EventsConfig]) + init(general: GlobalGeneralConfig, + optitrack: GlobalOptitrackConfig, + coreEvents: [String: EventsConfig]) { self.general = general self.optitrack = optitrack @@ -24,14 +24,14 @@ public struct GlobalConfig: Codable, Equatable { case coreEvents = "core_events" } - public init(from decoder: Decoder) throws { + init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) general = try container.decode(GlobalGeneralConfig.self, forKey: .general) optitrack = try container.decode(GlobalOptitrackConfig.self, forKey: .optitrack) coreEvents = try container.decode([String: EventsConfig].self, forKey: .coreEvents) } - public func encode(to encoder: Encoder) throws { + func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(general, forKey: .general) try container.encode(optitrack, forKey: .optitrack) @@ -41,10 +41,10 @@ public struct GlobalConfig: Codable, Equatable { // MARK: - General -public struct GlobalGeneralConfig: Codable, Equatable { - public let logsServiceEndpoint: URL +struct GlobalGeneralConfig: Codable, Equatable { + let logsServiceEndpoint: URL - public init(logsServiceEndpoint: URL) { + init(logsServiceEndpoint: URL) { self.logsServiceEndpoint = logsServiceEndpoint } @@ -55,10 +55,10 @@ public struct GlobalGeneralConfig: Codable, Equatable { // MARK: - Optitrack -public struct GlobalOptitrackConfig: Codable, Equatable { - public let eventCategoryName: String +struct GlobalOptitrackConfig: Codable, Equatable { + let eventCategoryName: String - public init(eventCategoryName: String) { + init(eventCategoryName: String) { self.eventCategoryName = eventCategoryName } diff --git a/OptimoveSDK/Sources/Classes/Configuration/RemoteConfiguration/RemoteConfigurationRequestBuilder.swift b/OptimoveSDK/Sources/Classes/Configuration/RemoteConfiguration/RemoteConfigurationRequestBuilder.swift index 35b57f68..8ceaaf4c 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/RemoteConfiguration/RemoteConfigurationRequestBuilder.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/RemoteConfiguration/RemoteConfigurationRequestBuilder.swift @@ -3,7 +3,7 @@ import Foundation import OptimoveCore -public final class RemoteConfigurationRequestBuilder { +final class RemoteConfigurationRequestBuilder { enum Error: LocalizedError { case failedToCreateTenantConfigurationRequest(Swift.Error) @@ -21,11 +21,11 @@ public final class RemoteConfigurationRequestBuilder { private let storage: OptimoveStorage - public init(storage: OptimoveStorage) { + init(storage: OptimoveStorage) { self.storage = storage } - public func createTenantConfigurationsRequest() throws -> NetworkRequest { + func createTenantConfigurationsRequest() throws -> NetworkRequest { do { let tenantToken = try storage.getTenantToken() let version = try storage.getVersion() @@ -41,7 +41,7 @@ public final class RemoteConfigurationRequestBuilder { } } - public func createGlobalConfigurationsRequest() -> NetworkRequest { + func createGlobalConfigurationsRequest() -> NetworkRequest { let url = Endpoints.Remote.GlobalConfig.url Logger.debug("Connect to \(url.absoluteString) to retreive global file.") return NetworkRequest(method: .get, baseURL: url, timeoutInterval: Constants.timeout) diff --git a/OptimoveSDK/Sources/Classes/Configuration/Tenant/EventConfig.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/EventConfig.swift index ff264943..07f4954e 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Tenant/EventConfig.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Tenant/EventConfig.swift @@ -1,12 +1,12 @@ // Copyright © 2017 Optimove. All rights reserved. -public struct EventsConfig: Codable, Equatable { - public let id: Int - public let supportedOnOptitrack: Bool - public let supportedOnRealTime: Bool - public let parameters: [String: Parameter] +struct EventsConfig: Codable, Equatable { + let id: Int + let supportedOnOptitrack: Bool + let supportedOnRealTime: Bool + let parameters: [String: Parameter] - public init( + init( id: Int, supportedOnOptitrack: Bool, supportedOnRealTime: Bool, diff --git a/OptimoveSDK/Sources/Classes/Configuration/Tenant/OptitrackMetaData.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/OptitrackMetaData.swift index ae08a7bf..5f2898fd 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Tenant/OptitrackMetaData.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Tenant/OptitrackMetaData.swift @@ -2,11 +2,11 @@ import Foundation -public struct TenantOptitrackConfig: Codable, Equatable { - public var optitrackEndpoint: URL - public var siteId: Int +struct TenantOptitrackConfig: Codable, Equatable { + var optitrackEndpoint: URL + var siteId: Int - public init( + init( optitrackEndpoint: URL, siteId: Int ) { diff --git a/OptimoveSDK/Sources/Classes/Configuration/Tenant/Parameter.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/Parameter.swift index 5d842c5e..c90f5149 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Tenant/Parameter.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Tenant/Parameter.swift @@ -1,10 +1,10 @@ // Copyright © 2017 Optimove. All rights reserved. -public struct Parameter: Codable, Equatable { - public let type: String - public let optional: Bool +struct Parameter: Codable, Equatable { + let type: String + let optional: Bool - public init( + init( type: String, optional: Bool ) { @@ -12,7 +12,7 @@ public struct Parameter: Codable, Equatable { self.optional = optional } - public var mandatory: Bool { + var mandatory: Bool { return !optional } diff --git a/OptimoveSDK/Sources/Classes/Configuration/Tenant/RealtimeMetaData.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/RealtimeMetaData.swift index e473dcf1..8126d6af 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Tenant/RealtimeMetaData.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Tenant/RealtimeMetaData.swift @@ -2,10 +2,10 @@ import Foundation -public struct TenantRealtimeConfig: Codable, Equatable { - public var realtimeGateway: URL +struct TenantRealtimeConfig: Codable, Equatable { + var realtimeGateway: URL - public init(realtimeGateway: URL) { + init(realtimeGateway: URL) { self.realtimeGateway = realtimeGateway } } diff --git a/OptimoveSDK/Sources/Classes/Configuration/Tenant/TenantConfig.swift b/OptimoveSDK/Sources/Classes/Configuration/Tenant/TenantConfig.swift index 88b251f8..1cd5a2ec 100644 --- a/OptimoveSDK/Sources/Classes/Configuration/Tenant/TenantConfig.swift +++ b/OptimoveSDK/Sources/Classes/Configuration/Tenant/TenantConfig.swift @@ -1,15 +1,15 @@ // Copyright © 2017 Optimove. All rights reserved. -public struct TenantConfig: Codable, Equatable { - public let isSupportedAirship: Bool - public let isEnableRealtime: Bool - public let isEnableRealtimeThroughOptistream: Bool - public let isProductionLogsEnabled: Bool - public let realtime: TenantRealtimeConfig - public var optitrack: TenantOptitrackConfig - public let events: [String: EventsConfig] +struct TenantConfig: Codable, Equatable { + let isSupportedAirship: Bool + let isEnableRealtime: Bool + let isEnableRealtimeThroughOptistream: Bool + let isProductionLogsEnabled: Bool + let realtime: TenantRealtimeConfig + var optitrack: TenantOptitrackConfig + let events: [String: EventsConfig] - public init( + init( realtime: TenantRealtimeConfig, optitrack: TenantOptitrackConfig, events: [String: EventsConfig], @@ -27,7 +27,7 @@ public struct TenantConfig: Codable, Equatable { self.isProductionLogsEnabled = isProductionLogsEnabled } - public init(from decoder: Decoder) throws { + init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) isSupportedAirship = try container.decodeIfPresent(Bool.self, forKey: .supportAirship) ?? false isEnableRealtime = try container.decode(Bool.self, forKey: .enableRealtime) @@ -38,7 +38,7 @@ public struct TenantConfig: Codable, Equatable { events = try container.decode([String: EventsConfig].self, forKey: .events) } - public func encode(to encoder: Encoder) throws { + func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeIfPresent(isSupportedAirship, forKey: .supportAirship) try container.encodeIfPresent(isProductionLogsEnabled, forKey: .prodLogsEnabled) diff --git a/OptimoveSDK/Sources/Classes/DataStructs/RingBuffer.swift b/OptimoveSDK/Sources/Classes/DataStructs/RingBuffer.swift index 530c7241..55ad7e7f 100644 --- a/OptimoveSDK/Sources/Classes/DataStructs/RingBuffer.swift +++ b/OptimoveSDK/Sources/Classes/DataStructs/RingBuffer.swift @@ -2,18 +2,18 @@ import Foundation -public struct RingBuffer { +struct RingBuffer { private var array: [T?] private var readIndex = 0 private var writeIndex = 0 - public init(count: Int) { + init(count: Int) { array = [T?](repeating: nil, count: count) } /* Returns false if out of space. */ @discardableResult - public mutating func write(_ element: T) -> Bool { + mutating func write(_ element: T) -> Bool { guard !isFull else { return false } defer { writeIndex += 1 @@ -23,7 +23,7 @@ public struct RingBuffer { } /* Returns nil if the buffer is empty. */ - public mutating func read() -> T? { + mutating func read() -> T? { guard !isEmpty else { return nil } defer { array[wrapped: readIndex] = nil @@ -36,7 +36,7 @@ public struct RingBuffer { return writeIndex - readIndex } - public var isEmpty: Bool { + var isEmpty: Bool { return availableSpaceForReading == 0 } @@ -44,13 +44,13 @@ public struct RingBuffer { return array.count - availableSpaceForReading } - public var isFull: Bool { + var isFull: Bool { return availableSpaceForWriting == 0 } } extension RingBuffer: Sequence { - public func makeIterator() -> AnyIterator { + func makeIterator() -> AnyIterator { var index = readIndex return AnyIterator { guard index < self.writeIndex else { return nil } diff --git a/OptimoveSDK/Sources/Classes/Events/Event.swift b/OptimoveSDK/Sources/Classes/Events/Event.swift index cfb11bd2..dfa0ce9a 100644 --- a/OptimoveSDK/Sources/Classes/Events/Event.swift +++ b/OptimoveSDK/Sources/Classes/Events/Event.swift @@ -2,18 +2,18 @@ import Foundation -open class Event { - public static let category = "track" +class Event { + static let category = "track" - public let eventId: UUID - public let requestId: String - public let name: String - public let timestamp: Date - public let category: String - public var context: [String: Any] - public var isRealtime: Bool + let eventId: UUID + let requestId: String + let name: String + let timestamp: Date + let category: String + var context: [String: Any] + var isRealtime: Bool - public init( + init( eventId: UUID? = nil, requestId: String? = nil, name: String, diff --git a/OptimoveCore/Sources/Classes/Extension/Bundle+AppVersion.swift b/OptimoveSDK/Sources/Classes/Extensions/Bundle+AppVersion.swift similarity index 88% rename from OptimoveCore/Sources/Classes/Extension/Bundle+AppVersion.swift rename to OptimoveSDK/Sources/Classes/Extensions/Bundle+AppVersion.swift index 199b21ef..6970cb20 100644 --- a/OptimoveCore/Sources/Classes/Extension/Bundle+AppVersion.swift +++ b/OptimoveSDK/Sources/Classes/Extensions/Bundle+AppVersion.swift @@ -2,7 +2,7 @@ import Foundation -public extension Bundle { +extension Bundle { var appVersion: String { return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "undefined" } diff --git a/OptimoveSDK/Sources/Classes/Extensions/Notification.swift b/OptimoveSDK/Sources/Classes/Extensions/Notification.swift index 3e4ff19f..10adc460 100644 --- a/OptimoveSDK/Sources/Classes/Extensions/Notification.swift +++ b/OptimoveSDK/Sources/Classes/Extensions/Notification.swift @@ -2,6 +2,7 @@ import Foundation -public extension Notification.Name { +extension Notification.Name { static let internetStatusChanged = Notification.Name("internetStatusChanged") + static let optimobileInializationFinished = Notification.Name("optimobileInializationFinished") } diff --git a/OptimoveSDK/Sources/Classes/JSON/Initialization.swift b/OptimoveSDK/Sources/Classes/JSON/Initialization.swift index 653ab1ae..ed11c86c 100644 --- a/OptimoveSDK/Sources/Classes/JSON/Initialization.swift +++ b/OptimoveSDK/Sources/Classes/JSON/Initialization.swift @@ -26,7 +26,7 @@ import Foundation private struct InitializationError: Error {} -public extension JSON { +extension JSON { /// Create a JSON value from anything. /// /// Argument has to be a valid JSON structure: A `Double`, `Int`, `String`, @@ -59,7 +59,7 @@ public extension JSON { } } -public extension JSON { +extension JSON { /// Create a JSON value from an `Encodable`. This will give you access to the “raw” /// encoded JSON value the `Encodable` is serialized into. init(encodable: T) throws { @@ -69,25 +69,25 @@ public extension JSON { } extension JSON: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { + init(booleanLiteral value: Bool) { self = .bool(value) } } extension JSON: ExpressibleByNilLiteral { - public init(nilLiteral _: ()) { + init(nilLiteral _: ()) { self = .null } } extension JSON: ExpressibleByArrayLiteral { - public init(arrayLiteral elements: JSON...) { + init(arrayLiteral elements: JSON...) { self = .array(elements) } } extension JSON: ExpressibleByDictionaryLiteral { - public init(dictionaryLiteral elements: (String, JSON)...) { + init(dictionaryLiteral elements: (String, JSON)...) { var object: [String: JSON] = [:] for (k, v) in elements { object[k] = v @@ -97,19 +97,19 @@ extension JSON: ExpressibleByDictionaryLiteral { } extension JSON: ExpressibleByFloatLiteral { - public init(floatLiteral value: Double) { + init(floatLiteral value: Double) { self = .number(value) } } extension JSON: ExpressibleByIntegerLiteral { - public init(integerLiteral value: Int) { + init(integerLiteral value: Int) { self = .number(Double(value)) } } extension JSON: ExpressibleByStringLiteral { - public init(stringLiteral value: String) { + init(stringLiteral value: String) { self = .string(value) } } diff --git a/OptimoveSDK/Sources/Classes/JSON/JSON.swift b/OptimoveSDK/Sources/Classes/JSON/JSON.swift index 9fd3ef33..5cd4fb5b 100644 --- a/OptimoveSDK/Sources/Classes/JSON/JSON.swift +++ b/OptimoveSDK/Sources/Classes/JSON/JSON.swift @@ -28,7 +28,7 @@ import Foundation /// for JSON values, since it makes sure only valid JSON values are present & supports `Equatable` /// and `Codable`, so that you can compare values for equality and code and decode them into data /// or strings. -@dynamicMemberLookup public enum JSON: Equatable { +@dynamicMemberLookup enum JSON: Equatable { case string(String) case number(Double) case object([String: JSON]) @@ -38,7 +38,7 @@ import Foundation } extension JSON: Codable { - public func encode(to encoder: Encoder) throws { + func encode(to encoder: Encoder) throws { var container = encoder.singleValueContainer() switch self { @@ -57,7 +57,7 @@ extension JSON: Codable { } } - public init(from decoder: Decoder) throws { + init(from decoder: Decoder) throws { let container = try decoder.singleValueContainer() if let object = try? container.decode([String: JSON].self) { @@ -81,7 +81,7 @@ extension JSON: Codable { } extension JSON: CustomDebugStringConvertible { - public var debugDescription: String { + var debugDescription: String { switch self { case let .string(str): return str.debugDescription diff --git a/OptimoveSDK/Sources/Classes/JSON/Merging.swift b/OptimoveSDK/Sources/Classes/JSON/Merging.swift index 48fa473f..a3ed3c79 100644 --- a/OptimoveSDK/Sources/Classes/JSON/Merging.swift +++ b/OptimoveSDK/Sources/Classes/JSON/Merging.swift @@ -24,7 +24,7 @@ import Foundation -public extension JSON { +extension JSON { /// Return a new JSON value by merging two other ones /// /// If we call the current JSON value `old` and the incoming JSON value diff --git a/OptimoveSDK/Sources/Classes/JSON/Querying.swift b/OptimoveSDK/Sources/Classes/JSON/Querying.swift index 3464dde5..0d6d49d1 100644 --- a/OptimoveSDK/Sources/Classes/JSON/Querying.swift +++ b/OptimoveSDK/Sources/Classes/JSON/Querying.swift @@ -24,7 +24,7 @@ import Foundation -public extension JSON { +extension JSON { /// Return the string value if this is a `.string`, otherwise `nil` var stringValue: String? { if case let .string(value) = self { diff --git a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkClient.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkClient.swift index 1448e65c..42ba1fb8 100644 --- a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkClient.swift +++ b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkClient.swift @@ -2,22 +2,22 @@ import Foundation -public typealias NetworkServiceCompletion = (Result, NetworkError>) -> Void +typealias NetworkServiceCompletion = (Result, NetworkError>) -> Void -public protocol NetworkClient { +protocol NetworkClient { func perform(_ request: NetworkRequest, _ completion: @escaping NetworkServiceCompletion) } -public struct NetworkClientImpl { +struct NetworkClientImpl { let session: URLSession - public init(configuration: URLSessionConfiguration = URLSessionConfiguration.default) { + init(configuration: URLSessionConfiguration = URLSessionConfiguration.default) { session = URLSession(configuration: configuration) } } extension NetworkClientImpl: NetworkClient { - public func perform(_ request: NetworkRequest, _ completion: @escaping NetworkServiceCompletion) { + func perform(_ request: NetworkRequest, _ completion: @escaping NetworkServiceCompletion) { let baseURL: URL = request.baseURL var urlComponents = URLComponents() diff --git a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkError.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkError.swift index a60e7cee..dec3f5a9 100644 --- a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkError.swift +++ b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkError.swift @@ -2,14 +2,14 @@ import Foundation -public enum NetworkError: LocalizedError { +enum NetworkError: LocalizedError { case error(Error) case noData case invalidURL case requestInvalid(Data?) case requestFailed - public var errorDescription: String? { + var errorDescription: String? { return "NetworkError: " + { switch self { case let .error(error): diff --git a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkRequest.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkRequest.swift index a525c872..97703acf 100644 --- a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkRequest.swift +++ b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkRequest.swift @@ -2,26 +2,26 @@ import Foundation -public final class NetworkRequest { - public enum DefaultValue { - public static let path: String? = nil - public static let headers: [HTTPHeader] = [] - public static let queryItems: [URLQueryItem]? = nil - public static let httpBody: Data? = nil - public static let timeoutInterval: TimeInterval = 60 - public static let keyEncodingStrategy: KeyEncodingStrategy = .useDefaultKeys +final class NetworkRequest { + enum DefaultValue { + static let path: String? = nil + static let headers: [HTTPHeader] = [] + static let queryItems: [URLQueryItem]? = nil + static let httpBody: Data? = nil + static let timeoutInterval: TimeInterval = 60 + static let keyEncodingStrategy: KeyEncodingStrategy = .useDefaultKeys } - public let method: HTTPMethod - public let baseURL: URL - public let path: String? - public let headers: [HTTPHeader]? - public let queryItems: [URLQueryItem]? - public let httpBody: Data? - public let timeoutInterval: TimeInterval - public let keyEncodingStrategy: KeyEncodingStrategy + let method: HTTPMethod + let baseURL: URL + let path: String? + let headers: [HTTPHeader]? + let queryItems: [URLQueryItem]? + let httpBody: Data? + let timeoutInterval: TimeInterval + let keyEncodingStrategy: KeyEncodingStrategy - public required init( + required init( method: HTTPMethod, baseURL: URL, path: String? = DefaultValue.path, @@ -41,7 +41,7 @@ public final class NetworkRequest { self.keyEncodingStrategy = keyEncodingStrategy } - public convenience init( + convenience init( method: HTTPMethod, baseURL: URL, path: String? = DefaultValue.path, @@ -66,7 +66,7 @@ public final class NetworkRequest { } } -public enum HTTPMethod: String { +enum HTTPMethod: String { case get = "GET" case put = "PUT" case post = "POST" @@ -78,12 +78,12 @@ public enum HTTPMethod: String { case patch = "PATCH" } -public struct HTTPHeader { - public let field: String - public let value: String +struct HTTPHeader { + let field: String + let value: String } -public extension HTTPHeader { +extension HTTPHeader { enum Fields: String { case contentType = "Content-Type" case userAgent = "User-Agent" @@ -94,7 +94,7 @@ public extension HTTPHeader { } } -public extension HTTPHeader { +extension HTTPHeader { init(field: Fields, value: Values) { self.field = field.rawValue self.value = value.rawValue @@ -102,13 +102,13 @@ public extension HTTPHeader { } extension HTTPHeader: CustomStringConvertible { - public var description: String { + var description: String { return "key: \(field), value: \(value)" } } extension NetworkRequest: CustomStringConvertible { - public var description: String { + var description: String { return """ [Method]: \(method.rawValue) [URL]: \(baseURL.absoluteString) @@ -121,7 +121,7 @@ extension NetworkRequest: CustomStringConvertible { } } -public enum KeyEncodingStrategy { +enum KeyEncodingStrategy { case useDefaultKeys case convertToSnakeCase case custom(([CodingKey]) -> CodingKey) diff --git a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResponse.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResponse.swift index 61e0cb0b..6140e54b 100644 --- a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResponse.swift +++ b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResponse.swift @@ -2,12 +2,12 @@ import Foundation -public struct NetworkResponse { +struct NetworkResponse { let statusCode: Int let body: Body } -public extension NetworkResponse where Body == Data? { +extension NetworkResponse where Body == Data? { func decode(to _: BodyType.Type) throws -> BodyType { let data = try unwrap() return try JSONDecoder().decode(BodyType.self, from: data) diff --git a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResult.swift b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResult.swift index 761b8c3f..330f6a27 100644 --- a/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResult.swift +++ b/OptimoveSDK/Sources/Classes/NetworkClient/NetworkResult.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -public enum NetworkResult { +enum NetworkResult { case success(NetworkResponse) case failure(NetworkError) } diff --git a/OptimoveSDK/Sources/Classes/Operations/AsyncOperation.swift b/OptimoveSDK/Sources/Classes/Operations/AsyncOperation.swift index 2fdeb3fe..3c845159 100644 --- a/OptimoveSDK/Sources/Classes/Operations/AsyncOperation.swift +++ b/OptimoveSDK/Sources/Classes/Operations/AsyncOperation.swift @@ -2,8 +2,8 @@ import Foundation -open class AsyncOperation: Operation { - public enum State: String { +class AsyncOperation: Operation { + enum State: String { case waiting = "isWaiting" case ready = "isReady" case executing = "isExecuting" @@ -11,7 +11,7 @@ open class AsyncOperation: Operation { case cancelled = "isCancelled" } - public var state = State.waiting { + var state = State.waiting { willSet { willChangeValue(forKey: State.ready.rawValue) willChangeValue(forKey: State.executing.rawValue) @@ -79,12 +79,12 @@ open class AsyncOperation: Operation { } } -open class AsyncBlockOperation: AsyncOperation { - public typealias Closure = (AsyncBlockOperation) -> Void +class AsyncBlockOperation: AsyncOperation { + typealias Closure = (AsyncBlockOperation) -> Void - public let closure: Closure + let closure: Closure - public init(closure: @escaping Closure) { + init(closure: @escaping Closure) { self.closure = closure } diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Credentials.swift b/OptimoveSDK/Sources/Classes/Optimobile/Credentials.swift new file mode 100644 index 00000000..77801e59 --- /dev/null +++ b/OptimoveSDK/Sources/Classes/Optimobile/Credentials.swift @@ -0,0 +1,11 @@ +// Copyright © 2023 Optimove. All rights reserved. + +struct OptimobileCredentials: Codable { + let apiKey: String + let secretKey: String + + init(apiKey: String, secretKey: String) { + self.apiKey = apiKey + self.secretKey = secretKey + } +} diff --git a/OptimoveSDK/Sources/Classes/Optimobile/CwlSysctl.swift b/OptimoveSDK/Sources/Classes/Optimobile/CwlSysctl.swift index 1f535974..9bca2d77 100755 --- a/OptimoveSDK/Sources/Classes/Optimobile/CwlSysctl.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/CwlSysctl.swift @@ -20,7 +20,7 @@ import Foundation -public enum SysctlError: Error { +enum SysctlError: Error { case unknown case malformedUTF8 case invalidSize @@ -28,7 +28,7 @@ public enum SysctlError: Error { } /// Wrapper around `sysctl` that preflights and allocates an [Int8] for the result and throws a Swift error if anything goes wrong. -public func sysctl(levels: [Int32]) throws -> [Int8] { +func sysctl(levels: [Int32]) throws -> [Int8] { return try levels.withUnsafeBufferPointer { levelsPointer throws -> [Int8] in // Preflight the request to get the required data size var requiredSize = 0 @@ -51,7 +51,7 @@ public func sysctl(levels: [Int32]) throws -> [Int8] { } /// Generate an array of name levels (as can be used with the previous sysctl function) from a sysctl name string. -public func sysctlLevels(fromName: String) throws -> [Int32] { +func sysctlLevels(fromName: String) throws -> [Int32] { var levelsBufferSize = Int(CTL_MAXNAME) var levelsBuffer = [Int32](repeating: 0, count: levelsBufferSize) try levelsBuffer.withUnsafeMutableBufferPointer { (lbp: inout UnsafeMutableBufferPointer) throws in @@ -89,33 +89,33 @@ private func stringFromSysctl(levels: [Int32]) throws -> String { } /// Get an arbitrary sysctl value and interpret the bytes as a UTF8 string -public func sysctlString(levels: Int32...) throws -> String { +func sysctlString(levels: Int32...) throws -> String { return try stringFromSysctl(levels: levels) } /// Get an arbitrary sysctl value and interpret the bytes as a UTF8 string -public func sysctlString(name: String) throws -> String { +func sysctlString(name: String) throws -> String { return try stringFromSysctl(levels: sysctlLevels(fromName: name)) } /// Get an arbitrary sysctl value and cast it to an Int64 -public func sysctlInt(levels: Int32...) throws -> Int64 { +func sysctlInt(levels: Int32...) throws -> Int64 { return try intFromSysctl(levels: levels) } /// Get an arbitrary sysctl value and cast it to an Int64 -public func sysctlInt(name: String) throws -> Int64 { +func sysctlInt(name: String) throws -> Int64 { return try intFromSysctl(levels: sysctlLevels(fromName: name)) } -public enum Sysctl { +enum Sysctl { /// e.g. "MyComputer.local" (from System Preferences -> Sharing -> Computer Name) or /// "My-Name-iPhone" (from Settings -> General -> About -> Name) - public static var hostName: String { return try! sysctlString(levels: CTL_KERN, KERN_HOSTNAME) } + static var hostName: String { return try! sysctlString(levels: CTL_KERN, KERN_HOSTNAME) } /// e.g. "x86_64" or "N71mAP" /// NOTE: this is *corrected* on iOS devices to fetch hw.model - public static var machine: String { + static var machine: String { #if os(iOS) && !arch(x86_64) && !arch(i386) return try! sysctlString(levels: CTL_HW, HW_MODEL) #else @@ -125,7 +125,7 @@ public enum Sysctl { /// e.g. "MacPro4,1" or "iPhone8,1" /// NOTE: this is *corrected* on iOS devices to fetch hw.machine - public static var model: String { + static var model: String { #if os(iOS) && !arch(x86_64) && !arch(i386) return try! sysctlString(levels: CTL_HW, HW_MACHINE) #else @@ -134,29 +134,29 @@ public enum Sysctl { } /// e.g. "8" or "2" - public static var activeCPUs: Int64 { return try! sysctlInt(levels: CTL_HW, HW_AVAILCPU) } + static var activeCPUs: Int64 { return try! sysctlInt(levels: CTL_HW, HW_AVAILCPU) } /// e.g. "15.3.0" or "15.0.0" - public static var osRelease: String { return try! sysctlString(levels: CTL_KERN, KERN_OSRELEASE) } + static var osRelease: String { return try! sysctlString(levels: CTL_KERN, KERN_OSRELEASE) } /// e.g. 199506 or 199506 - public static var osRev: Int64 { return try! sysctlInt(levels: CTL_KERN, KERN_OSREV) } + static var osRev: Int64 { return try! sysctlInt(levels: CTL_KERN, KERN_OSREV) } /// e.g. "Darwin" or "Darwin" - public static var osType: String { return try! sysctlString(levels: CTL_KERN, KERN_OSTYPE) } + static var osType: String { return try! sysctlString(levels: CTL_KERN, KERN_OSTYPE) } /// e.g. "15D21" or "13D20" - public static var osVersion: String { return try! sysctlString(levels: CTL_KERN, KERN_OSVERSION) } + static var osVersion: String { return try! sysctlString(levels: CTL_KERN, KERN_OSVERSION) } /// e.g. "Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64" or /// "Darwin Kernel Version 15.0.0: Wed Dec 9 22:19:38 PST 2015; root:xnu-3248.31.3~2/RELEASE_ARM64_S8000" - public static var version: String { return try! sysctlString(levels: CTL_KERN, KERN_VERSION) } + static var version: String { return try! sysctlString(levels: CTL_KERN, KERN_VERSION) } #if os(OSX) /// e.g. 2659000000 (not available on iOS) - public static var cpuFreq: Int64 { return try! sysctlInt(name: "hw.cpufrequency") } + static var cpuFreq: Int64 { return try! sysctlInt(name: "hw.cpufrequency") } /// e.g. 25769803776 (not available on iOS) - public static var memSize: Int64 { return try! sysctlInt(levels: CTL_HW, HW_MEMSIZE) } + static var memSize: Int64 { return try! sysctlInt(levels: CTL_HW, HW_MEMSIZE) } #endif } diff --git a/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppModels.swift b/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppModels.swift index a2df1185..ec1525d8 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppModels.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/InApp/InAppModels.swift @@ -3,13 +3,13 @@ import CoreData import Foundation -public enum InAppPresented: String { +enum InAppPresented: String { case IMMEDIATELY = "immediately" case NEXT_OPEN = "next-open" case NEVER = "never" } -class InAppMessageEntity: NSManagedObject { +final class InAppMessageEntity: NSManagedObject { @NSManaged var id: Int64 @NSManaged var updatedAt: NSDate @NSManaged var presentedWhen: String @@ -38,16 +38,16 @@ class InAppMessageEntity: NSManagedObject { } } -class InAppMessage: NSObject { - public internal(set) var id: Int64 - public internal(set) var updatedAt: NSDate - public internal(set) var content: NSDictionary - public internal(set) var data: NSDictionary? - public internal(set) var badgeConfig: NSDictionary? - public internal(set) var inboxConfig: NSDictionary? - public internal(set) var dismissedAt: NSDate? - public internal(set) var readAt: NSDate? - public internal(set) var sentAt: NSDate? +final class InAppMessage: NSObject { + private(set) var id: Int64 + private(set) var updatedAt: NSDate + private(set) var content: NSDictionary + private(set) var data: NSDictionary? + private(set) var badgeConfig: NSDictionary? + private(set) var inboxConfig: NSDictionary? + private(set) var dismissedAt: NSDate? + private(set) var readAt: NSDate? + private(set) var sentAt: NSDate? init(entity: InAppMessageEntity) { id = Int64(entity.id) diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift index 0cc1bd48..4b2ee5a4 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+DeepLinking.swift @@ -5,8 +5,8 @@ import OptimoveCore import UIKit public struct DeepLinkContent { - public let title: String? - public let description: String? + let title: String? + let description: String? } public struct DeepLink { diff --git a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift index 10db4778..15f124b7 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/Optimobile+Push.swift @@ -9,6 +9,8 @@ import UserNotifications @available(iOS 10.0, *) public typealias OptimoveUNAuthorizationCheckedHandler = (UNAuthorizationStatus, Error?) -> Void +let KS_MESSAGE_TYPE_PUSH = 1 + extension Optimobile { /** Helper method for requesting the device token with alert, badge and sound permissions. diff --git a/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift b/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift index e4a3f252..8a5ea8b1 100644 --- a/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift +++ b/OptimoveSDK/Sources/Classes/Optimobile/OptimoveInApp.swift @@ -4,15 +4,15 @@ import CoreData import Foundation import OptimoveCore -public class InAppInboxItem { - public internal(set) var id: Int64 - public internal(set) var title: String - public internal(set) var subtitle: String - public internal(set) var availableFrom: Date? - public internal(set) var availableTo: Date? - public internal(set) var dismissedAt: Date? - public internal(set) var sentAt: Date - public internal(set) var data: NSDictionary? +class InAppInboxItem { + private(set) var id: Int64 + private(set) var title: String + private(set) var subtitle: String + private(set) var availableFrom: Date? + private(set) var availableTo: Date? + private(set) var dismissedAt: Date? + private(set) var sentAt: Date + private(set) var data: NSDictionary? private var readAt: Date? private var imagePath: String? @@ -41,7 +41,7 @@ public class InAppInboxItem { imagePath = inboxConfig["imagePath"] as? String } - public func isAvailable() -> Bool { + func isAvailable() -> Bool { if availableFrom != nil, availableFrom!.timeIntervalSinceNow > 0 { return false } else if availableTo != nil, availableTo!.timeIntervalSinceNow < 0 { @@ -51,15 +51,15 @@ public class InAppInboxItem { return true } - public func isRead() -> Bool { + func isRead() -> Bool { return readAt != nil } - public func getImageUrl() -> URL? { + func getImageUrl() -> URL? { return getImageUrl(width: InAppInboxItem.defaultImageWidth) } - public func getImageUrl(width: UInt) -> URL? { + func getImageUrl(width: UInt) -> URL? { if let imagePathNotNil = imagePath { return try? MediaHelper.getCompletePictureUrl( pictureUrlString: imagePathNotNil, @@ -71,18 +71,18 @@ public class InAppInboxItem { } } -public struct InAppInboxSummary { - public let totalCount: Int64 - public let unreadCount: Int64 +struct InAppInboxSummary { + let totalCount: Int64 + let unreadCount: Int64 } -public typealias InboxUpdatedHandlerBlock = () -> Void -public typealias InboxSummaryBlock = (InAppInboxSummary?) -> Void +typealias InboxUpdatedHandlerBlock = () -> Void +typealias InboxSummaryBlock = (InAppInboxSummary?) -> Void -public enum OptimoveInApp { +enum OptimoveInApp { private static var _inboxUpdatedHandlerBlock: InboxUpdatedHandlerBlock? - public static func updateConsent(forUser consentGiven: Bool) { + static func updateConsent(forUser consentGiven: Bool) { if Optimobile.inAppConsentStrategy != InAppConsentStrategy.explicitByUser { NSException(name: NSExceptionName(rawValue: "Optimobile: Invalid In-app consent strategy"), reason: "You can only manage in-app messaging consent when the feature is enabled and strategy is set to InAppConsentStrategyExplicitByUser", userInfo: nil).raise() @@ -92,15 +92,15 @@ public enum OptimoveInApp { Optimobile.sharedInstance.inAppManager.updateUserConsent(consentGiven: consentGiven) } - public static func setDisplayMode(mode: InAppDisplayMode) { + static func setDisplayMode(mode: InAppDisplayMode) { Optimobile.sharedInstance.inAppManager.presenter.setDisplayMode(mode) } - public static func getDisplayMode() -> InAppDisplayMode { + static func getDisplayMode() -> InAppDisplayMode { return Optimobile.sharedInstance.inAppManager.presenter.getDisplayMode() } - public static func getInboxItems() -> [InAppInboxItem] { + static func getInboxItems() -> [InAppInboxItem] { guard let context = Optimobile.sharedInstance.inAppManager.messagesContext else { return [] } @@ -140,7 +140,7 @@ public enum OptimoveInApp { return results } - public static func presentInboxMessage(item: InAppInboxItem) -> InAppMessagePresentationResult { + static func presentInboxMessage(item: InAppInboxItem) -> InAppMessagePresentationResult { if getDisplayMode() == .paused { return .PAUSED } @@ -154,11 +154,11 @@ public enum OptimoveInApp { return result ? InAppMessagePresentationResult.PRESENTED : InAppMessagePresentationResult.FAILED } - public static func deleteMessageFromInbox(item: InAppInboxItem) -> Bool { + static func deleteMessageFromInbox(item: InAppInboxItem) -> Bool { return Optimobile.sharedInstance.inAppManager.deleteMessageFromInbox(withId: item.id) } - public static func markAsRead(item: InAppInboxItem) -> Bool { + static func markAsRead(item: InAppInboxItem) -> Bool { if item.isRead() { return false } @@ -168,15 +168,15 @@ public enum OptimoveInApp { return res } - public static func markAllInboxItemsAsRead() -> Bool { + static func markAllInboxItemsAsRead() -> Bool { return Optimobile.sharedInstance.inAppManager.markAllInboxItemsAsRead() } - public static func setOnInboxUpdated(inboxUpdatedHandlerBlock: InboxUpdatedHandlerBlock?) { + static func setOnInboxUpdated(inboxUpdatedHandlerBlock: InboxUpdatedHandlerBlock?) { _inboxUpdatedHandlerBlock = inboxUpdatedHandlerBlock } - public static func getInboxSummaryAsync(inboxSummaryBlock: @escaping InboxSummaryBlock) { + static func getInboxSummaryAsync(inboxSummaryBlock: @escaping InboxSummaryBlock) { Optimobile.sharedInstance.inAppManager.readInboxSummary(inboxSummaryBlock: inboxSummaryBlock) } diff --git a/OptimoveSDK/Sources/Classes/OptimoveConfig.swift b/OptimoveSDK/Sources/Classes/OptimoveConfig.swift index 6cfdc426..b3ece124 100644 --- a/OptimoveSDK/Sources/Classes/OptimoveConfig.swift +++ b/OptimoveSDK/Sources/Classes/OptimoveConfig.swift @@ -50,11 +50,11 @@ public struct OptimoveConfig { } } -@objc public class OptimoveTenantInfo: NSObject { - @objc public var tenantToken: String - @objc public var configName: String +class OptimoveTenantInfo: NSObject { + var tenantToken: String + var configName: String - @objc public init(tenantToken: String, configName: String) { + init(tenantToken: String, configName: String) { self.tenantToken = tenantToken self.configName = configName } diff --git a/OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift index 2b9154a5..d4bff2f0 100644 --- a/OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift +++ b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEvent.swift @@ -3,24 +3,24 @@ import Foundation import OptimoveCore -public struct OptistreamEvent: Codable { - public let tenant: Int - public let category: String - public let event: String - public let origin: String - public let customer: String? - public let visitor: String - public let timestamp: String - public let context: JSON - public var metadata: Metadata +struct OptistreamEvent: Codable { + let tenant: Int + let category: String + let event: String + let origin: String + let customer: String? + let visitor: String + let timestamp: String + let context: JSON + var metadata: Metadata - public struct Metadata: Codable, Hashable { - public var realtime: Bool - public var firstVisitorDate: Int64? - public let eventId: String - public let requestId: String - public let platform: String = "ios" - public let version: String = SDKVersion + struct Metadata: Codable, Hashable { + var realtime: Bool + var firstVisitorDate: Int64? + let eventId: String + let requestId: String + let platform: String = "ios" + let version: String = SDKVersion enum CodingKeys: String, CodingKey { case realtime @@ -31,7 +31,7 @@ public struct OptistreamEvent: Codable { case version = "sdk_version" } - public init( + init( realtime: Bool, firstVisitorDate: Int64?, eventId: String, @@ -44,7 +44,7 @@ public struct OptistreamEvent: Codable { } } - public init( + init( tenant: Int, category: String, event: String, @@ -68,7 +68,7 @@ public struct OptistreamEvent: Codable { } extension OptistreamEvent: Equatable { - public static func == (lhs: OptistreamEvent, rhs: OptistreamEvent) -> Bool { + static func == (lhs: OptistreamEvent, rhs: OptistreamEvent) -> Bool { return lhs.metadata.eventId == rhs.metadata.eventId } } diff --git a/OptimoveSDK/Sources/Classes/Optistream/OptistreamEventBuilder.swift b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEventBuilder.swift index f8fefb83..56454ca1 100644 --- a/OptimoveSDK/Sources/Classes/Optistream/OptistreamEventBuilder.swift +++ b/OptimoveSDK/Sources/Classes/Optistream/OptistreamEventBuilder.swift @@ -4,7 +4,7 @@ import Foundation /// Builds an Optistream event from internal event type. /// The `delivery_event` do not use this class in reason of memory consuption under Notification Service Extention. -public final class OptistreamEventBuilder { +final class OptistreamEventBuilder { enum Constants { enum Values { static let origin = "sdk" @@ -14,7 +14,7 @@ public final class OptistreamEventBuilder { private let tenantID: Int private let storage: OptimoveStorage - public init( + init( tenantID: Int, storage: OptimoveStorage ) { @@ -22,7 +22,7 @@ public final class OptistreamEventBuilder { self.storage = storage } - public func build(event: Event) throws -> OptistreamEvent { + func build(event: Event) throws -> OptistreamEvent { return try OptistreamEvent( tenant: tenantID, category: event.category, diff --git a/OptimoveSDK/Sources/Classes/Optistream/OptistreamNetworking.swift b/OptimoveSDK/Sources/Classes/Optistream/OptistreamNetworking.swift index 84173a50..b552612e 100644 --- a/OptimoveSDK/Sources/Classes/Optistream/OptistreamNetworking.swift +++ b/OptimoveSDK/Sources/Classes/Optistream/OptistreamNetworking.swift @@ -2,7 +2,7 @@ import Foundation -public protocol OptistreamNetworking { +protocol OptistreamNetworking { func send( events: [OptistreamEvent], path: String, @@ -15,11 +15,11 @@ public protocol OptistreamNetworking { ) } -public final class OptistreamNetworkingImpl { +final class OptistreamNetworkingImpl { private let networkClient: NetworkClient private let endpoint: URL - public init( + init( networkClient: NetworkClient, endpoint: URL ) { @@ -49,7 +49,7 @@ public final class OptistreamNetworkingImpl { } extension OptistreamNetworkingImpl: OptistreamNetworking { - public func send( + func send( events: [OptistreamEvent], path: String, completion: @escaping (Result) -> Void @@ -57,7 +57,7 @@ extension OptistreamNetworkingImpl: OptistreamNetworking { _send(events: events, path: path, completion: completion) } - public func send( + func send( events: [OptistreamEvent], completion: @escaping (Result) -> Void ) { diff --git a/OptimoveSDK/Sources/Classes/Repository/ConfigurationRepository.swift b/OptimoveSDK/Sources/Classes/Repository/ConfigurationRepository.swift index af951e62..79ebf762 100644 --- a/OptimoveSDK/Sources/Classes/Repository/ConfigurationRepository.swift +++ b/OptimoveSDK/Sources/Classes/Repository/ConfigurationRepository.swift @@ -2,7 +2,7 @@ import Foundation -public protocol ConfigurationRepository { +protocol ConfigurationRepository { func getConfiguration() throws -> Configuration func setConfiguration(_: Configuration) throws @@ -13,7 +13,7 @@ public protocol ConfigurationRepository { func saveTenant(_: TenantConfig) throws } -public final class ConfigurationRepositoryImpl { +final class ConfigurationRepositoryImpl { private enum Constants { static let fileExtension = ".json" enum Global { @@ -32,35 +32,35 @@ public final class ConfigurationRepositoryImpl { private let storage: OptimoveStorage - public init(storage: OptimoveStorage) { + init(storage: OptimoveStorage) { self.storage = storage } } extension ConfigurationRepositoryImpl: ConfigurationRepository { - public func getConfiguration() throws -> Configuration { + func getConfiguration() throws -> Configuration { return try storage.load(fileName: Constants.Configuration.fileName, isTemporary: true) } - public func setConfiguration(_ config: Configuration) throws { + func setConfiguration(_ config: Configuration) throws { try storage.save(data: config, toFileName: Constants.Configuration.fileName, isTemporary: true) } - public func getGlobal() throws -> GlobalConfig { + func getGlobal() throws -> GlobalConfig { return try storage.load(fileName: Constants.Global.fileName) } - public func saveGlobal(_ config: GlobalConfig) throws { + func saveGlobal(_ config: GlobalConfig) throws { try storage.save(data: config, toFileName: Constants.Global.fileName) } - public func getTenant() throws -> TenantConfig { + func getTenant() throws -> TenantConfig { let version = try storage.getVersion() let fileName = version + Constants.fileExtension return try storage.load(fileName: fileName, isTemporary: true) } - public func saveTenant(_ config: TenantConfig) throws { + func saveTenant(_ config: TenantConfig) throws { let version = try storage.getVersion() let fileName = version + Constants.fileExtension try storage.save(data: config, toFileName: fileName, isTemporary: true) diff --git a/OptimoveSDK/Sources/Classes/Storage/FileManager+Optimove.swift b/OptimoveSDK/Sources/Classes/Storage/FileManager+Optimove.swift index c0f6c3c2..d286f3d8 100644 --- a/OptimoveSDK/Sources/Classes/Storage/FileManager+Optimove.swift +++ b/OptimoveSDK/Sources/Classes/Storage/FileManager+Optimove.swift @@ -4,7 +4,7 @@ import Foundation private var temporaryDirectoryURL: URL? -public extension FileManager { +extension FileManager { static func optimoveURL() throws -> URL { return try FileManager.default.url( for: .applicationSupportDirectory, diff --git a/OptimoveSDK/Sources/Classes/Storage/FileStorage.swift b/OptimoveSDK/Sources/Classes/Storage/FileStorage.swift index 2d5d24b8..8842d701 100644 --- a/OptimoveSDK/Sources/Classes/Storage/FileStorage.swift +++ b/OptimoveSDK/Sources/Classes/Storage/FileStorage.swift @@ -3,7 +3,7 @@ import Foundation import OptimoveCore -public protocol FileStorage { +protocol FileStorage { /// Check file if exist. /// /// - Parameters: @@ -61,7 +61,7 @@ public protocol FileStorage { func delete(fileName: String, isTemporary: Bool) throws } -public extension FileStorage { +extension FileStorage { func isExist(fileName: String) -> Bool { return isExist(fileName: fileName, isTemporary: false) } @@ -87,7 +87,7 @@ public extension FileStorage { } } -public final class FileStorageImpl { +final class FileStorageImpl { enum FileStorageError: Error { case unableToCreateDirectory case unableToSaveFile @@ -103,7 +103,7 @@ public final class FileStorageImpl { let persistentStorageURL: URL let temporaryStorageURL: URL - public init(persistentStorageURL: URL, temporaryStorageURL: URL) throws { + init(persistentStorageURL: URL, temporaryStorageURL: URL) throws { fileManager = FileManager.default self.persistentStorageURL = persistentStorageURL self.temporaryStorageURL = temporaryStorageURL @@ -125,13 +125,13 @@ public final class FileStorageImpl { } extension FileStorageImpl: FileStorage { - public func isExist(fileName: String, isTemporary: Bool) -> Bool { + func isExist(fileName: String, isTemporary: Bool) -> Bool { let url = getDirectory(isTemporary: isTemporary) let fileUrl = url.appendingPathComponent(fileName) return fileManager.fileExists(atPath: fileUrl.path) } - public func loadData(fileName: String, isTemporary: Bool) throws -> Data { + func loadData(fileName: String, isTemporary: Bool) throws -> Data { let fileUrl = getDirectory(isTemporary: isTemporary).appendingPathComponent(fileName) do { let contents = try unwrap(fileManager.contents(atPath: fileUrl.path)) @@ -143,17 +143,17 @@ extension FileStorageImpl: FileStorage { } } - public func load(fileName: String, isTemporary: Bool) throws -> T where T: Decodable, T: Encodable { + func load(fileName: String, isTemporary: Bool) throws -> T where T: Decodable, T: Encodable { let data = try loadData(fileName: fileName, isTemporary: isTemporary) return try JSONDecoder().decode(T.self, from: data) } - public func save(data: T, toFileName fileName: String, isTemporary: Bool) throws { + func save(data: T, toFileName fileName: String, isTemporary: Bool) throws { let data = try JSONEncoder().encode(data) try saveData(data: data, toFileName: fileName, isTemporary: isTemporary) } - public func saveData(data: Data, toFileName fileName: String, isTemporary: Bool) throws { + func saveData(data: Data, toFileName fileName: String, isTemporary: Bool) throws { do { let url = getDirectory(isTemporary: isTemporary) try fileManager.createDirectory(at: url, withIntermediateDirectories: true) @@ -169,7 +169,7 @@ extension FileStorageImpl: FileStorage { } } - public func delete(fileName: String, isTemporary: Bool) throws { + func delete(fileName: String, isTemporary: Bool) throws { do { let fileUrl = getDirectory(isTemporary: isTemporary).appendingPathComponent(fileName) try fileManager.removeItem(at: fileUrl) diff --git a/OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift b/OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift index 0c4b9509..ab63d8ff 100644 --- a/OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift +++ b/OptimoveSDK/Sources/Classes/Storage/StorageFacade.swift @@ -4,13 +4,13 @@ import Foundation import OptimoveCore /// Combined protocol for a convenince access to stored values and files. -public typealias OptimoveStorage = FileStorage & KeyValueStorage & StorageValue +typealias OptimoveStorage = FileStorage & KeyValueStorage & StorageValue // MARK: - StorageCase // MARK: - StorageKey -public enum StorageKey: String, CaseIterable { +enum StorageKey: String, CaseIterable { case installationID case customerID case configurationEndPoint @@ -38,7 +38,7 @@ public enum StorageKey: String, CaseIterable { // MARK: - StorageValue /// The protocol used as convenience accessor to storage values. -public protocol StorageValue { +protocol StorageValue { var installationID: String? { get set } var customerID: String? { get set } var configurationEndPoint: URL? { get set } @@ -77,22 +77,22 @@ public protocol StorageValue { } /// The protocol used for convenience implementation of any storage technology below this protocol. -public protocol KeyValueStorage { +protocol KeyValueStorage { func set(value: Any?, key: StorageKey) func value(for: StorageKey) -> Any? subscript(_: StorageKey) -> T? { get set } } extension UserDefaults: KeyValueStorage { - public func set(value: Any?, key: StorageKey) { + func set(value: Any?, key: StorageKey) { set(value, forKey: key.rawValue) } - public func value(for key: StorageKey) -> Any? { + func value(for key: StorageKey) -> Any? { return value(forKey: key.rawValue) } - public subscript(key: StorageKey) -> T? { + subscript(key: StorageKey) -> T? { get { return value(for: key) as? T } @@ -102,19 +102,19 @@ extension UserDefaults: KeyValueStorage { } } -public final class InMemoryStorage: KeyValueStorage { +final class InMemoryStorage: KeyValueStorage { private var storage = [StorageKey: Any]() private let queue = DispatchQueue(label: "com.optimove.sdk.inmemorystorage", attributes: .concurrent) - public init() {} + init() {} - public func set(value: Any?, key: StorageKey) { + func set(value: Any?, key: StorageKey) { queue.async(flags: .barrier) { [self] in storage[key] = value } } - public subscript(key: StorageKey) -> T? { + subscript(key: StorageKey) -> T? { get { var result: T? queue.sync { @@ -129,7 +129,7 @@ public final class InMemoryStorage: KeyValueStorage { } } - public func value(for key: StorageKey) -> Any? { + func value(for key: StorageKey) -> Any? { var result: Any? queue.sync { result = storage[key] @@ -138,10 +138,10 @@ public final class InMemoryStorage: KeyValueStorage { } } -public enum StorageError: LocalizedError { +enum StorageError: LocalizedError { case noValue(StorageKey) - public var errorDescription: String? { + var errorDescription: String? { switch self { case let .noValue(key): return "StorageError: No value for key \(key.rawValue)" @@ -150,12 +150,12 @@ public enum StorageError: LocalizedError { } /// Class implements the Façade pattern for hiding complexity of the OptimoveStorage protocol. -public final class StorageFacade: OptimoveStorage { +final class StorageFacade: OptimoveStorage { private let persistantStorage: KeyValueStorage private let inMemoryStorage: KeyValueStorage private let fileStorage: FileStorage - public init( + init( persistantStorage: KeyValueStorage, inMemoryStorage: KeyValueStorage, fileStorage: FileStorage @@ -175,7 +175,7 @@ public final class StorageFacade: OptimoveStorage { // MARK: - KeyValueStorage -public extension StorageFacade { +extension StorageFacade { /// Use `storage.key` instead. /// Some variable have formatters, implemented in own setters. Set unformatted value could cause an issue. func set(value: Any?, key: StorageKey) { @@ -207,7 +207,7 @@ public extension StorageFacade { // MARK: - FileStorage -public extension StorageFacade { +extension StorageFacade { func isExist(fileName: String, isTemporary: Bool) -> Bool { return fileStorage.isExist(fileName: fileName, isTemporary: isTemporary) } @@ -235,7 +235,7 @@ public extension StorageFacade { // MARK: - StorageValue -public extension KeyValueStorage where Self: StorageValue { +extension KeyValueStorage where Self: StorageValue { var installationID: String? { get { return self[.installationID] diff --git a/OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift b/OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift index 42f28bee..43e30cf9 100644 --- a/OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift +++ b/OptimoveSDK/Sources/Classes/Storage/UserDefaults+Optimove.swift @@ -3,7 +3,7 @@ import Foundation import OptimoveCore -public extension UserDefaults { +extension UserDefaults { enum Constants { static let suiteName: String = "com.optimove.sdk" } diff --git a/OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift b/OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift index 6dd661f3..9bf0a3a8 100644 --- a/OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift +++ b/OptimoveSDK/Tests/Sources/Configurations/ConfigurationBuilderTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -import OptimoveSDK +@testable import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift b/OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift index 8fca81cc..a9d31e8d 100644 --- a/OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift +++ b/OptimoveSDK/Tests/Sources/Configurations/Global/GlobalConfigTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -import OptimoveSDK +@testable import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift b/OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift index 73656568..987f9dcf 100644 --- a/OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift +++ b/OptimoveSDK/Tests/Sources/Configurations/Tenant/TenantConfigTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -import OptimoveSDK +@testable import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift b/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift index 54dd34ee..f70ca926 100644 --- a/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift +++ b/OptimoveSDK/Tests/Sources/Mocks/MockConfigurationRepository.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -import OptimoveSDK +@testable import OptimoveSDK import OptimoveCore final class MockConfigurationRepository: ConfigurationRepository { diff --git a/OptimoveSDK/Tests/Sources/NetworkClientTests.swift b/OptimoveSDK/Tests/Sources/NetworkClientTests.swift index 455f765e..423f1f0a 100644 --- a/OptimoveSDK/Tests/Sources/NetworkClientTests.swift +++ b/OptimoveSDK/Tests/Sources/NetworkClientTests.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Mocker -import OptimoveSDK +@testable import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift b/OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift index 6fe47d36..50b8721c 100644 --- a/OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift +++ b/OptimoveSDK/Tests/Sources/Storage/KeyValueStorageTests.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import OptimoveCore -import OptimoveSDK +@testable import OptimoveSDK import OptimoveTest import XCTest diff --git a/OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift b/OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift index 5c622f95..f41640fe 100644 --- a/OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift +++ b/OptimoveSDK/Tests/Sources/Storage/OptimoveFileManagerTests.swift @@ -1,6 +1,6 @@ // Copyright © 2019 Optimove. All rights reserved. -import OptimoveSDK +@testable import OptimoveSDK import XCTest final class MockedFileManager: FileManager { diff --git a/Shared/Sources/Fixture/TenantConfigFixture.swift b/Shared/Sources/Fixture/TenantConfigFixture.swift index b03b8200..ab2d1b6e 100644 --- a/Shared/Sources/Fixture/TenantConfigFixture.swift +++ b/Shared/Sources/Fixture/TenantConfigFixture.swift @@ -1,7 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import Foundation -import OptimoveSDK +@testable import OptimoveSDK public final class TenantConfigFixture { public init() {} diff --git a/Shared/Sources/Mocks/MockOptimoveStorage.swift b/Shared/Sources/Mocks/MockOptimoveStorage.swift index 7ad92a82..d0fa7a71 100644 --- a/Shared/Sources/Mocks/MockOptimoveStorage.swift +++ b/Shared/Sources/Mocks/MockOptimoveStorage.swift @@ -2,7 +2,7 @@ import Foundation import OptimoveCore -import OptimoveSDK +@testable import OptimoveSDK public final class MockOptimoveStorage: OptimoveStorage { public init() {} diff --git a/Shared/Sources/Mocks/OptistreamNetworkingMock.swift b/Shared/Sources/Mocks/OptistreamNetworkingMock.swift index 5aa116ad..ac76aa88 100644 --- a/Shared/Sources/Mocks/OptistreamNetworkingMock.swift +++ b/Shared/Sources/Mocks/OptistreamNetworkingMock.swift @@ -1,6 +1,6 @@ // Copyright © 2020 Optimove. All rights reserved. -import OptimoveSDK +@testable import OptimoveSDK public final class OptistreamNetworkingMock: OptistreamNetworking { public init() {} diff --git a/Shared/Sources/OptimoveTestCase.swift b/Shared/Sources/OptimoveTestCase.swift index 2fdb61aa..b4385b48 100644 --- a/Shared/Sources/OptimoveTestCase.swift +++ b/Shared/Sources/OptimoveTestCase.swift @@ -1,6 +1,7 @@ // Copyright © 2019 Optimove. All rights reserved. import OptimoveCore +@testable import OptimoveSDK import XCTest public let defaultTimeout: TimeInterval = 0.8