Commit dc03aff2 authored by sugita mamoru's avatar sugita mamoru

Merge commit 'f1bcebd2' into develop

parents fa89e1e4 f1bcebd2
......@@ -86,6 +86,9 @@
D52D21412AEDE18F00324D58 /* EcaCoordinatesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D52D21402AEDE18F00324D58 /* EcaCoordinatesTable.swift */; };
D545FC742B09C74300F206D0 /* AlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D545FC732B09C74300F206D0 /* AlertManager.swift */; };
D545FC762B09C81300F206D0 /* PushNotificationTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D545FC752B09C81300F206D0 /* PushNotificationTypes.swift */; };
D55135202B15B030007B66B1 /* SetEcaArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = D551351F2B15B030007B66B1 /* SetEcaArea.swift */; };
D55135222B15C062007B66B1 /* GetEcaList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55135212B15C062007B66B1 /* GetEcaList.swift */; };
D55135242B15C3BF007B66B1 /* DeleteEcaArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55135232B15C3BF007B66B1 /* DeleteEcaArea.swift */; };
D58E1F502B142A260092D8FE /* EcaArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58E1F4F2B142A260092D8FE /* EcaArea.swift */; };
D58E1F522B142A3F0092D8FE /* ResEcaArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58E1F512B142A3F0092D8FE /* ResEcaArea.swift */; };
D58E1F542B142A510092D8FE /* SessionEcaArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58E1F532B142A510092D8FE /* SessionEcaArea.swift */; };
......@@ -226,6 +229,9 @@
D53ACA752B0AECF8008DCB18 /* Sailassist.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Sailassist.entitlements; path = Sailassist/Sailassist.entitlements; sourceTree = "<group>"; };
D545FC732B09C74300F206D0 /* AlertManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AlertManager.swift; path = Sailassist/VoiceManager/AlertManager.swift; sourceTree = SOURCE_ROOT; };
D545FC752B09C81300F206D0 /* PushNotificationTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PushNotificationTypes.swift; path = Sailassist/DataSource/PushNotificationTypes.swift; sourceTree = SOURCE_ROOT; };
D551351F2B15B030007B66B1 /* SetEcaArea.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SetEcaArea.swift; path = Sailassist/ECA/SetEcaArea.swift; sourceTree = SOURCE_ROOT; };
D55135212B15C062007B66B1 /* GetEcaList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = GetEcaList.swift; path = Sailassist/ECA/GetEcaList.swift; sourceTree = SOURCE_ROOT; };
D55135232B15C3BF007B66B1 /* DeleteEcaArea.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DeleteEcaArea.swift; path = Sailassist/ECA/DeleteEcaArea.swift; sourceTree = SOURCE_ROOT; };
D58E1F4F2B142A260092D8FE /* EcaArea.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EcaArea.swift; path = Sailassist/ECA/EcaArea.swift; sourceTree = SOURCE_ROOT; };
D58E1F512B142A3F0092D8FE /* ResEcaArea.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ResEcaArea.swift; path = Sailassist/Json/ResEcaArea.swift; sourceTree = SOURCE_ROOT; };
D58E1F532B142A510092D8FE /* SessionEcaArea.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SessionEcaArea.swift; path = Sailassist/ServerSession/SessionEcaArea.swift; sourceTree = SOURCE_ROOT; };
......@@ -641,6 +647,9 @@
D52D213E2AEBB7D700324D58 /* RegisteredEca.swift */,
D52D21402AEDE18F00324D58 /* EcaCoordinatesTable.swift */,
D5CB6FA02B023F7F00EC2010 /* EcaTask.swift */,
D551351F2B15B030007B66B1 /* SetEcaArea.swift */,
D55135212B15C062007B66B1 /* GetEcaList.swift */,
D55135232B15C3BF007B66B1 /* DeleteEcaArea.swift */,
);
path = ECA;
sourceTree = "<group>";
......@@ -877,6 +886,7 @@
buildActionMask = 2147483647;
files = (
D5258CA52B036F0700365276 /* GetMessage.swift in Sources */,
D55135222B15C062007B66B1 /* GetEcaList.swift in Sources */,
D52D21412AEDE18F00324D58 /* EcaCoordinatesTable.swift in Sources */,
02A1DE2F2AFB4AA0005BCF55 /* ChatInputView.swift in Sources */,
02CD06912AE6536B005F8D8F /* LayerEnum.swift in Sources */,
......@@ -894,6 +904,7 @@
020B98412AD8C3810029DE4C /* LoginView.swift in Sources */,
D5AE351D2AEBA6FC00059889 /* SessionLogin.swift in Sources */,
D5258C9F2B03527400365276 /* ResGetMessages.swift in Sources */,
D55135242B15C3BF007B66B1 /* DeleteEcaArea.swift in Sources */,
024EDE1B2B0C41E40013BAC8 /* MenuSettingView.swift in Sources */,
020B98552AD924930029DE4C /* QrCodeScannerView.swift in Sources */,
02CE4D7F2ADE42A9002E79BC /* MenuContentView.swift in Sources */,
......@@ -940,6 +951,7 @@
02CD068F2AE6535F005F8D8F /* MapSource.swift in Sources */,
02C3E5CE2AFCA04700AF7837 /* OtherChatContentView.swift in Sources */,
020B98442AD8E4910029DE4C /* FontStyle.swift in Sources */,
D55135202B15B030007B66B1 /* SetEcaArea.swift in Sources */,
D592D5272B0F182C00B91A1C /* ReqAckMessage.swift in Sources */,
D592D5292B0F198100B91A1C /* ReqChatModeMessage.swift in Sources */,
D51AA4042B099DCD00EBBDD4 /* SignalRService.swift in Sources */,
......
//
// DeleteEcaArea.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/11/28.
//
import Foundation
class DeleteEcaArea {
var sessionTaskList = SessionTaskList()
func start(ecaId : Int) {
print(debug: "called")
// sessionTaskList.RequestDeleteTaskList(ecaId, completion: responseDeleteTaskList)
}
private func responseDeleteTaskList(result: Result<Data, APIError>) {
print(debug: "called")
switch result {
case .success(let resultData):
let serverSession = ServerSession()
let resjson = serverSession.fromJSON(resultData: resultData, resltType: ReqTaskList.self)
if let res = resjson {
//ECA保存
}
case .failure(let errorCode):
print(debug: errorCode)
break
}
}
}
......@@ -76,6 +76,10 @@ class EcaTask {
notificationEca(point: SwitchingEca.Finish)
eca.status = EcaState.finishPass
}
if 0.0 <= Float(distance) && eca.status == EcaState.finishPass {
eca.status = EcaState.incomplete
}
}
}
}
......
//
// GetEcaList.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/11/28.
//
import Foundation
import Foundation
class GetEcaList {
var sessionTaskList = SessionTaskList()
func start() {
print(debug: "called")
// sessionTaskList.RequestGetTaskList(responseGetTaskList)
}
private func responseGetTaskList(result: Result<Data, APIError>) {
print(debug: "called")
switch result {
case .success(let resultData):
let serverSession = ServerSession()
let resjson = serverSession.fromJSON(resultData: resultData, resltType: [ReqTaskList].self)
if let res = resjson {
//ECA保存
}
case .failure(let errorCode):
print(debug: errorCode)
break
}
}
}
//
// SetEcaArea.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/11/28.
//
import Foundation
class SetEcaArea {
var sessionTaskList = SessionTaskList()
func start(eca : ReqTaskList) {
print(debug: "called")
// sessionTaskList.RequestPostTaskList(eca, completion: responsePostTaskList)
}
private func responsePostTaskList(result: Result<Data, APIError>) {
print(debug: "called")
switch result {
case .success(let resultData):
let serverSession = ServerSession()
let resjson = serverSession.fromJSON(resultData: resultData, resltType: ReqTaskList.self)
if let res = resjson {
//ECA保存
}
case .failure(let errorCode):
print(debug: errorCode)
break
}
}
}
......@@ -99,7 +99,7 @@ struct LoginView: View {
switch alertType {
case .loginFailure:
return Alert(title: Text("error"),
message: Text("Login failure."),
message: Text("Ship ID or Password is incorrect."),
dismissButton: .default(Text("OK"), action: {viewMode = .SelectType})
)
case .Expired:
......@@ -190,6 +190,9 @@ struct LoginView: View {
let route = MonitoringRoute()
route.start()
let ecaList = GetEcaList()
ecaList.start()
}
timer?.fire()
......
......@@ -77,7 +77,7 @@ struct InputIdPassWordView: View {
})
.alert(isPresented: $isIdPassWordEmpty, content: {
Alert(title: Text("error"),
message: Text("Ship Id or Password not entered.")
message: Text("Ship Id or Password is incorrect.")
)
})
.padding(.top, 40)
......
......@@ -109,6 +109,9 @@ struct InputUserNameView: View {
let route = MonitoringRoute()
route.start()
let ecaList = GetEcaList()
ecaList.start()
}
timer?.fire()
......
......@@ -19,6 +19,7 @@ struct TaskSwitchingMenuView: View {
@ObservedObject var ecaData = SharingData.eca
@State var isEcaAlert : Bool = false
@State var ecaAlertType: EcaAlertType = .ecaDelete
let deleteEcaArea = DeleteEcaArea()
var body: some View {
VStack{
......@@ -89,6 +90,7 @@ struct TaskSwitchingMenuView: View {
var newData = ecaArea
newData.isEnable = false
ecaData.editEcaArea(key: ecaArea.name, value: newData)
deleteEcaArea.start(ecaId: ecaArea.id)
}
edittingEcaArea = nil
}))
......
......@@ -44,6 +44,11 @@ struct MenuGpsSelectView: View {
VStack(spacing: 0){
Button{
selected = content
if content == .Mobile {
Preferences.LocationType = 0
} else {
Preferences.LocationType = 1
}
}label:{
HStack {
Text(content.title)
......
......@@ -101,11 +101,43 @@ class ServerSession{
if inresponse.statusCode != 200 {
throw APIError.serverError
}
//Cookieを保存
if let fields = inresponse.allHeaderFields as? [String: String], let url = inresponse.url {
for cookie in HTTPCookie.cookies(withResponseHeaderFields: fields, for: url) {
HTTPCookieStorage.shared.setCookie(cookie)
DispatchQueue.main.async {
completion(.success(indata))
}
}catch{
if error as? APIError != nil{
completion(.failure(error as! APIError))
}
else{
completion(.failure(.unknown))
}
}
}).resume()
}
func deleteJson(_ req_url : URL, completion: @escaping ((Result<Data, APIError>)) -> Void){
var req = URLRequest(url: req_url)
req.httpMethod = "DELTE"
req.addValue("application/json", forHTTPHeaderField: "Content-Type")
req.timeoutInterval = 20 // タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
// サーバー送信
let session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue.main)
session.dataTask(with: req, completionHandler: {(data, response, error ) in
session.finishTasksAndInvalidate()
do{
if let error = error{
let err = APIError.clientError
throw APIError.clientError
}
guard let indata = data, let inresponse = response as? HTTPURLResponse else {
throw APIError.responseError
}
if inresponse.statusCode != 200 {
throw APIError.serverError
}
DispatchQueue.main.async {
completion(.success(indata))
......
......@@ -17,9 +17,9 @@ class SessionTaskList : ObservableObject {
private var Calling : Bool = false // 通信中
/**
* メッセージ
* タスクリスト取得
*/
func RequestTaskList(_ completion: @escaping ((Result<Data, APIError>)) -> Void) {
func RequestGetTaskList(_ completion: @escaping ((Result<Data, APIError>)) -> Void) {
print(debug: "calld")
if Calling {
return
......@@ -39,4 +39,59 @@ class SessionTaskList : ObservableObject {
serverSession.getJson(req_url, completion: completion)
}
}
/**
* タスク保存
*/
func RequestPostTaskList(_ eca : ReqTaskList, completion: @escaping ((Result<Data, APIError>)) -> Void) {
print(debug: "calld")
if Calling {
return
}
Calling = true
// リクエストURLの組み立て
let id = SharingData.my.shipId
if id != 0 {
var url_string : String = HttpRequestType.TaskList.rawValue
url_string = url_string.replacingOccurrences(of: "XXXXX", with: String(id))
guard let req_url = URL(string : url_string) else {
Calling = false
return
}
if let postdata = serverSession.toJSON(eca) {
serverSession.postJson(req_url, postdata, completion: completion)
}
else {
Calling = false
return
}
}
}
/**
* タスク削除
*/
func RequestDeleteTaskList(_ ecaId : Int, completion: @escaping ((Result<Data, APIError>)) -> Void) {
print(debug: "calld")
if Calling {
return
}
Calling = true
// リクエストURLの組み立て
let id = SharingData.my.shipId
if id != 0 {
let strId = String(id) + "/" + String(ecaId)
var url_string : String = HttpRequestType.TaskList.rawValue
url_string = url_string.replacingOccurrences(of: "XXXXX", with: strId)
guard let req_url = URL(string : url_string) else {
Calling = false
return
}
serverSession.deleteJson(req_url, completion: completion)
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment