GitHubService.swift 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // LoopFollow
  2. // GitHubService.swift
  3. // Created by Jonas Björkert on 2024-05-11.
  4. import Foundation
  5. class GitHubService {
  6. enum GitHubDataType {
  7. case versionConfig
  8. case blacklistedVersions
  9. var url: String {
  10. switch self {
  11. case .versionConfig:
  12. return "https://raw.githubusercontent.com/loopandlearn/LoopFollow/main/Config.xcconfig"
  13. case .blacklistedVersions:
  14. return "https://raw.githubusercontent.com/loopandlearn/LoopFollow/main/blacklisted-versions.json"
  15. }
  16. }
  17. }
  18. func fetchData(for dataType: GitHubDataType, completion: @escaping (Data?) -> Void) {
  19. let urlString = dataType.url
  20. guard let url = URL(string: urlString) else {
  21. completion(nil)
  22. return
  23. }
  24. URLSession.shared.dataTask(with: url) { data, response, error in
  25. guard let data = data, error == nil else {
  26. completion(nil)
  27. return
  28. }
  29. if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 {
  30. completion(data)
  31. } else {
  32. completion(nil)
  33. }
  34. }.resume()
  35. }
  36. }