GitHubService.swift 1.2 KB

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