aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/Hotline.swift
blob: b83dc8030c9520a79e56409276656393e5e76b15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import SwiftUI

@Observable final class Hotline {
  let trackerClient: HotlineTrackerClient
  
  init(trackerClient: HotlineTrackerClient) {
    self.trackerClient = trackerClient
  }
  
  @MainActor func getServers(address: String, port: Int = Tracker.defaultPort) async -> [Server] {
    let fetchedServers: [HotlineServer] = await self.trackerClient.fetchServers(address: address, port: port)
    
    var servers: [Server] = []
    
    for s in fetchedServers {
      if let serverName = s.name {
        servers.append(Server(name: serverName, description: s.description, address: s.address, port: Int(s.port), users: Int(s.users)))
      }
    }
    
    return servers
  }
}