diff --git a/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift b/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift index f540c2baa712a0d7cb8218213fd56f6d4b246a2b..b7888267b1a41fed29e61e4f67a5bfb18a146ce6 100644 --- a/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift +++ b/AgileWorks/AgileWorks/ServerSwitching/View/ServerSwitchingTableViewController.swift @@ -94,19 +94,18 @@ class ServerSwitchingTableTableViewController: UITableViewController { private func setApprovalsCount(label: UILabel) async { let approvalsEndpoint = GetApprovalsEndpoint() Session.send(approvalsEndpoint) { result in - var reqApprovalCount: Int = 0 switch result { case .success(let response): let requestApproval = "REQUEST_APPROVAL" for item in response.items where item.code == requestApproval { - reqApprovalCount = item.count - DispatchQueue.main.async { - label.text = String(reqApprovalCount) + let approvalCountLabel = String(item.count) + DispatchQueue.main.async{ + label.text = approvalCountLabel } } case .failure(let error): log.e(error) - DispatchQueue.main.async { + DispatchQueue.main.async{ label.text = "0" } } diff --git a/AgileWorks/Common/DataStore/KeychainDataStore.swift b/AgileWorks/Common/DataStore/KeychainDataStore.swift index cd7b89efbe48befa4d0838f4cde456d7c7336c11..aeda469a05831e3e70e8e90dea5c5efe377362f3 100644 --- a/AgileWorks/Common/DataStore/KeychainDataStore.swift +++ b/AgileWorks/Common/DataStore/KeychainDataStore.swift @@ -38,8 +38,9 @@ final class KeychainDataStore: DataStoreProtocol { func removeAccessToken(serverNumber: Int? = nil) { if let serverNumber = serverNumber { removeKeychainValue(key: kAccessToken, serverNumber: serverNumber) + }else { + removeKeychainValue(key: kAccessToken) } - removeKeychainValue(key: kAccessToken) } // 認可ステータスの書き込み @@ -67,8 +68,9 @@ final class KeychainDataStore: DataStoreProtocol { func removeOAuthState(serverNumber: Int? = nil) { if let serverNumber = serverNumber { removeKeychainValue(key: kOAuthState, serverNumber: serverNumber) + }else { + removeKeychainValue(key: kOAuthState) } - removeKeychainValue(key: kOAuthState) } // 言語設定の書き込み @@ -92,7 +94,10 @@ final class KeychainDataStore: DataStoreProtocol { } // サーバーURLの読み込み - func readServerURL() -> String? { + func readServerURL(serverNumber: Int? = nil) -> String? { + if let serverNumber = serverNumber { + return getKeychainValue(key: kServerURL, serverNumber: serverNumber) + } return getKeychainValue(key: kServerURL) } @@ -146,8 +151,9 @@ final class KeychainDataStore: DataStoreProtocol { func removeDeviceID(serverNumber: Int? = nil) { if let serverNumber = serverNumber { removeKeychainValue(key: kDeviceID, serverNumber: serverNumber) + } else { + removeKeychainValue(key: kDeviceID) } - removeKeychainValue(key: kDeviceID) } // セッションIDの書き込み @@ -163,9 +169,10 @@ final class KeychainDataStore: DataStoreProtocol { // セッションIDの削除 func removeSessionID(serverNumber: Int? = nil) { if let serverNumber = serverNumber { - return removeKeychainValue(key: kSessionID, serverNumber: serverNumber) + removeKeychainValue(key: kSessionID, serverNumber: serverNumber) + } else { + removeKeychainValue(key: kSessionID) } - return removeKeychainValue(key: kSessionID) } // サーバー識別名の書き込み diff --git a/AgileWorks/Common/WebClient/DeleteDeviceEndpoint.swift b/AgileWorks/Common/WebClient/DeleteDeviceEndpoint.swift index d6433ccaf2d105e0b23d6fec3b7356dacb1fde93..7d5506ffe1e7887321c41498ef3e46d4d27e5c8a 100644 --- a/AgileWorks/Common/WebClient/DeleteDeviceEndpoint.swift +++ b/AgileWorks/Common/WebClient/DeleteDeviceEndpoint.swift @@ -21,6 +21,8 @@ struct DeleteDeviceEndpoint: APIEndpoint { var pathParameters: [String]? + var baseURL: URL + init(request: DeviceRequest, serverNumber: Int?) { let encoder = JSONEncoder() encoder.keyEncodingStrategy = .convertToSnakeCase @@ -37,6 +39,9 @@ struct DeleteDeviceEndpoint: APIEndpoint { "Content-Type": "application/json"] self.pathParameters = [KeychainDataStore().readDeviceID(serverNumber: serverNumber)?.description ?? ""] + + let serverURL = KeychainDataStore().readServerURL(serverNumber: serverNumber) ?? "" + self.baseURL = URL(string: "https://" + serverURL)! } } diff --git a/AgileWorks/Common/WidgetView.swift b/AgileWorks/Common/WidgetView.swift index 90517e9a94f85b876389245e341b878ba276f4d7..ed1a4f5660cfb72b971cd39ea6bed13c5340e932 100644 --- a/AgileWorks/Common/WidgetView.swift +++ b/AgileWorks/Common/WidgetView.swift @@ -282,6 +282,11 @@ struct LinkView: View { }) } else { ApprovalItemView(itemNum: itemNum, entry: entry) + .onTapGesture { + if entry.viewController != nil { + entry.viewController!.extensionContext?.open(NSURL(fileURLWithPath: getStatusURL())as URL, completionHandler: nil) + } + } } } } @@ -350,7 +355,9 @@ struct FailureWidgetView: View { } func getWorkURL(serverNumber: Int?) -> String { - var url = Configuration.shared.awURL + "/" + (KeychainDataStore().readContextPath() ?? "") + "/Broker/Mobile#work" + let serverURL = KeychainDataStore().readServerURL(serverNumber: serverNumber) ?? "" + let contextPath = KeychainDataStore().readContextPath(serverNumber: serverNumber) ?? "" + var url = "https://" + serverURL + "/" + contextPath + "/Broker/Mobile#work" if let serverNumber = serverNumber { url += "?serverNumber=" + String(serverNumber) } @@ -360,7 +367,9 @@ func getWorkURL(serverNumber: Int?) -> String { //遷移先URLの取得(iOS14以降) func getURL(approvalItem: ApprovalItem, serverNumber: Int?) -> String { if let status = getStatus(code: approvalItem.code) { - var url = Configuration.shared.awURL + "/" + (KeychainDataStore().readContextPath() ?? "") + "/Broker/Mobile#docList_" + status + let serverURL = KeychainDataStore().readServerURL(serverNumber: serverNumber) ?? "" + let contextPath = KeychainDataStore().readContextPath(serverNumber: serverNumber) ?? "" + let url: String = "https://" + serverURL + "/" + contextPath + "/Broker/Mobile#docList_" + status if let serverNumber = serverNumber { return url + "?serverNumber=" + String(serverNumber) } diff --git a/AgileWorks/TodayExtension/View/TodayViewController.swift b/AgileWorks/TodayExtension/View/TodayViewController.swift index fd075a2ea4aa6f86a44b4c1514ebe515e0044313..76334221fe842b57d54064d4bb0bb5cd6b448203 100644 --- a/AgileWorks/TodayExtension/View/TodayViewController.swift +++ b/AgileWorks/TodayExtension/View/TodayViewController.swift @@ -40,7 +40,10 @@ class TodayViewController: UIViewController, NCWidgetProviding { entrys.append(entry) } - UserDefaultsDataStore().setGroupId(serverNumber: serverList.first!) + + if !serverList.isEmpty { + UserDefaultsDataStore().setGroupId(serverNumber: serverList.first!) + } //描画 var rootView = TodayWidgetView(entrys: entrys)