mattermost-mobile/ios/MattermostShare/Services/ServerService.swift
Elias Nahum 3a3123674a
[Gekidou] iOS Share extension (#6432)
* iOS Share extension

* Add Fastlane steps for iOS Share Extension

* new multi file layout

* Add recent label

* Refactor code & identation

* ux feedback

* downsample images

* remove options horizontal padding
2022-07-27 10:31:45 -04:00

54 lines
1.5 KiB
Swift

//
// ServerService.swift
// MattermostShare
//
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
//
import Gekidou
import Foundation
class ServerService: ObservableObject {
@Published var selected: ServerModel?
@Published var servers: [ServerModel] = []
init() {
let current: ServerModel? = Gekidou.Database.default.getCurrentServerDatabase()
selected = updateServerSettings(current)
getServers()
}
func getServers() {
let allServers: [ServerModel] = Gekidou.Database.default.getAllActiveDatabases()
allServers.forEach { server in
if let s = updateServerSettings(server) {
servers.append(s)
}
}
}
private func updateServerSettings(_ server: ServerModel?) -> ServerModel? {
if var s = server {
if let config = Gekidou.Database.default.getConfig(s.url) {
let hasChannels = Gekidou.Database.default.serverHasChannels(s.url)
var maxFileSize: Int64? = nil
if let fileSize = config["MaxFileSize"] as? String {
maxFileSize = Int64(fileSize)
}
var maxPostSize: Int64? = nil
if let length = config["MaxPostSize"] as? String {
maxPostSize = Int64(length)
}
let uploadsEnabled = config["EnableMobileFileUpload"] as? String == "true"
s.updateSettings(hasChannels, maxPostSize, maxFileSize, uploadsEnabled)
return s
}
}
return nil
}
}