├── .github └── workflows │ └── swift.yml ├── .gitignore ├── .swiftlint.yml ├── Cartfile ├── Cartfile.resolved ├── LICENSE ├── README.md ├── TryNetworkLayer.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ └── TryNetworkLayer.xcscheme ├── TryNetworkLayer.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── swiftpm │ └── Package.resolved ├── TryNetworkLayer ├── AppDelegate.swift ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Base.lproj │ └── LaunchScreen.storyboard ├── Controllers │ ├── UserDetail │ │ ├── UserDetailCoordinator.swift │ │ ├── UserDetailViewController.swift │ │ └── UserDetailViewModel.swift │ └── Users │ │ ├── UsersCoordinator.swift │ │ ├── UsersViewController.swift │ │ └── UsersViewModel.swift ├── Coordinator │ └── AppCoordinator.swift ├── Extension.swift ├── Info.plist ├── Models │ ├── GHSearchResponse.swift │ ├── GHUser.swift │ └── GHUserDetail.swift ├── Network │ ├── Dispatcher.swift │ ├── Environment.swift │ ├── NetworkDispatcher.swift │ ├── Operations │ │ ├── Operation.swift │ │ ├── UserDetailOperation.swift │ │ └── UsersOperation.swift │ ├── Requests │ │ ├── Request.swift │ │ └── UserRequests.swift │ └── Response.swift ├── Repository │ └── UsersRepo.swift ├── SceneDelegate.swift ├── Storage │ ├── RealmStorageContext.swift │ ├── Storable.swift │ └── StorageContext.swift └── Storyboards │ ├── Base.lproj │ └── Main.storyboard │ └── Storyboards.swift ├── TryNetworkLayerTests ├── Controllers │ ├── UserDetail │ │ └── UserDetailViewModelTests.swift │ └── Users │ │ └── UsersViewModelTests.swift ├── Info.plist ├── Mocks │ ├── MockGHUser.swift │ ├── MockSearchResponse.swift │ ├── MockUserDetailOperation.swift │ ├── MockUserOperation.swift │ └── MockUsersRepo.swift ├── Network │ ├── UserDetailOperationTests.swift │ └── UsersOperationTests.swift ├── Repository │ └── UsersRepoTests.swift └── TestUtils.swift └── wiremock ├── README.md ├── __files └── users │ ├── detail.json │ ├── search.json │ └── users.json ├── mappings └── users │ ├── detail.json │ ├── search.json │ └── users.json ├── start_server.sh └── wiremock-standalone-2.22.0.jar /.github/workflows/swift.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/.github/workflows/swift.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/.gitignore -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/.swiftlint.yml -------------------------------------------------------------------------------- /Cartfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/Cartfile -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/Cartfile.resolved -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/README.md -------------------------------------------------------------------------------- /TryNetworkLayer.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /TryNetworkLayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /TryNetworkLayer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /TryNetworkLayer.xcodeproj/xcshareddata/xcschemes/TryNetworkLayer.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcodeproj/xcshareddata/xcschemes/TryNetworkLayer.xcscheme -------------------------------------------------------------------------------- /TryNetworkLayer.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /TryNetworkLayer.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /TryNetworkLayer.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /TryNetworkLayer/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/AppDelegate.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /TryNetworkLayer/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /TryNetworkLayer/Controllers/UserDetail/UserDetailCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Controllers/UserDetail/UserDetailCoordinator.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Controllers/UserDetail/UserDetailViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Controllers/UserDetail/UserDetailViewController.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Controllers/UserDetail/UserDetailViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Controllers/UserDetail/UserDetailViewModel.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Controllers/Users/UsersCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Controllers/Users/UsersCoordinator.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Controllers/Users/UsersViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Controllers/Users/UsersViewController.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Controllers/Users/UsersViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Controllers/Users/UsersViewModel.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Coordinator/AppCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Coordinator/AppCoordinator.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Extension.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Info.plist -------------------------------------------------------------------------------- /TryNetworkLayer/Models/GHSearchResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Models/GHSearchResponse.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Models/GHUser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Models/GHUser.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Models/GHUserDetail.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Models/GHUserDetail.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Dispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Dispatcher.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Environment.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Environment.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/NetworkDispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/NetworkDispatcher.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Operations/Operation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Operations/Operation.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Operations/UserDetailOperation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Operations/UserDetailOperation.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Operations/UsersOperation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Operations/UsersOperation.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Requests/Request.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Requests/Request.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Requests/UserRequests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Requests/UserRequests.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Network/Response.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Network/Response.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Repository/UsersRepo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Repository/UsersRepo.swift -------------------------------------------------------------------------------- /TryNetworkLayer/SceneDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/SceneDelegate.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Storage/RealmStorageContext.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Storage/RealmStorageContext.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Storage/Storable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Storage/Storable.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Storage/StorageContext.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Storage/StorageContext.swift -------------------------------------------------------------------------------- /TryNetworkLayer/Storyboards/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Storyboards/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /TryNetworkLayer/Storyboards/Storyboards.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayer/Storyboards/Storyboards.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Controllers/UserDetail/UserDetailViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Controllers/UserDetail/UserDetailViewModelTests.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Controllers/Users/UsersViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Controllers/Users/UsersViewModelTests.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Info.plist -------------------------------------------------------------------------------- /TryNetworkLayerTests/Mocks/MockGHUser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Mocks/MockGHUser.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Mocks/MockSearchResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Mocks/MockSearchResponse.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Mocks/MockUserDetailOperation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Mocks/MockUserDetailOperation.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Mocks/MockUserOperation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Mocks/MockUserOperation.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Mocks/MockUsersRepo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Mocks/MockUsersRepo.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Network/UserDetailOperationTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Network/UserDetailOperationTests.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Network/UsersOperationTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Network/UsersOperationTests.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/Repository/UsersRepoTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/Repository/UsersRepoTests.swift -------------------------------------------------------------------------------- /TryNetworkLayerTests/TestUtils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/TryNetworkLayerTests/TestUtils.swift -------------------------------------------------------------------------------- /wiremock/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/README.md -------------------------------------------------------------------------------- /wiremock/__files/users/detail.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/__files/users/detail.json -------------------------------------------------------------------------------- /wiremock/__files/users/search.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/__files/users/search.json -------------------------------------------------------------------------------- /wiremock/__files/users/users.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/__files/users/users.json -------------------------------------------------------------------------------- /wiremock/mappings/users/detail.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/mappings/users/detail.json -------------------------------------------------------------------------------- /wiremock/mappings/users/search.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/mappings/users/search.json -------------------------------------------------------------------------------- /wiremock/mappings/users/users.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/mappings/users/users.json -------------------------------------------------------------------------------- /wiremock/start_server.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/start_server.sh -------------------------------------------------------------------------------- /wiremock/wiremock-standalone-2.22.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andr3a88/TryNetworkLayer/HEAD/wiremock/wiremock-standalone-2.22.0.jar --------------------------------------------------------------------------------