From 376e7b55b4a0c4f54faa0c2828dea4fd17dff288 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 18 Mar 2026 11:59:38 -0500 Subject: realigning commits --- DomainDig/IPGeolocationService.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 DomainDig/IPGeolocationService.swift (limited to 'DomainDig/IPGeolocationService.swift') diff --git a/DomainDig/IPGeolocationService.swift b/DomainDig/IPGeolocationService.swift new file mode 100644 index 0000000..6c60295 --- /dev/null +++ b/DomainDig/IPGeolocationService.swift @@ -0,0 +1,17 @@ +import Foundation + +struct IPGeolocationService { + static func lookup(ip: String) async throws -> IPGeolocation { + let url = URL(string: "https://ipapi.co/\(ip)/json/")! + let request = URLRequest(url: url, timeoutInterval: 10) + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw URLError(.badServerResponse) + } + + return try JSONDecoder().decode(IPGeolocation.self, from: data) + } +} -- cgit v1.2.3