Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Sailassist
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
54
Merge Requests
54
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gr-ssv
Sailassist
Commits
fa23994a
Commit
fa23994a
authored
Oct 30, 2023
by
sugita mamoru
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
3f39eeba
' into develop
parents
40585846
3f39eeba
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
257 additions
and
14 deletions
+257
-14
project.pbxproj
Seilassist/Sailassist.xcodeproj/project.pbxproj
+48
-0
EcaCoordinatesTable.swift
Seilassist/Sailassist/ECA/EcaCoordinatesTable.swift
+0
-0
RegisteredEca.swift
Seilassist/Sailassist/ECA/RegisteredEca.swift
+27
-0
HttpRequestType.swift
Seilassist/Sailassist/Http/HttpRequestType.swift
+20
-0
ReqLogin.swift
Seilassist/Sailassist/Json/ReqLogin.swift
+18
-0
ResLogin.swift
Seilassist/Sailassist/Json/ResLogin.swift
+16
-0
InputIdPassWordView.swift
Seilassist/Sailassist/Login/View/InputIdPassWordView.swift
+5
-3
SailassistApp.swift
Seilassist/Sailassist/SailassistApp.swift
+13
-0
ServerSession.swift
Seilassist/Sailassist/ServerSession/ServerSession.swift
+25
-7
SessionLogin.swift
Seilassist/Sailassist/ServerSession/SessionLogin.swift
+64
-0
SharingData.swift
Seilassist/Sailassist/SharingData/SharingData.swift
+21
-4
No files found.
Seilassist/Sailassist.xcodeproj/project.pbxproj
View file @
fa23994a
...
@@ -56,6 +56,12 @@
...
@@ -56,6 +56,12 @@
02CE4DC82ADF97E8002E79BC
/* View+Extensions.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
02CE4DC72ADF97E8002E79BC
/* View+Extensions.swift */
;
};
02CE4DC82ADF97E8002E79BC
/* View+Extensions.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
02CE4DC72ADF97E8002E79BC
/* View+Extensions.swift */
;
};
02CE4DCC2ADFA03F002E79BC
/* SelectedTabModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
02CE4DCB2ADFA03F002E79BC
/* SelectedTabModel.swift */
;
};
02CE4DCC2ADFA03F002E79BC
/* SelectedTabModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
02CE4DCB2ADFA03F002E79BC
/* SelectedTabModel.swift */
;
};
02CE4DDA2ADFBA72002E79BC
/* MapRepresentable.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
02CE4DD92ADFBA72002E79BC
/* MapRepresentable.swift */
;
};
02CE4DDA2ADFBA72002E79BC
/* MapRepresentable.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
02CE4DD92ADFBA72002E79BC
/* MapRepresentable.swift */
;
};
D52D213A2AEBAC0500324D58
/* HttpRequestType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D52D21392AEBAC0500324D58
/* HttpRequestType.swift */
;
};
D52D213F2AEBB7D700324D58
/* RegisteredEca.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D52D213E2AEBB7D700324D58
/* RegisteredEca.swift */
;
};
D52D21412AEDE18F00324D58
/* EcaCoordinatesTable.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D52D21402AEDE18F00324D58
/* EcaCoordinatesTable.swift */
;
};
D5AE351A2AEBA66A00059889
/* ReqLogin.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D5AE35182AEBA66A00059889
/* ReqLogin.swift */
;
};
D5AE351B2AEBA66A00059889
/* ResLogin.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D5AE35192AEBA66A00059889
/* ResLogin.swift */
;
};
D5AE351D2AEBA6FC00059889
/* SessionLogin.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D5AE351C2AEBA6FC00059889
/* SessionLogin.swift */
;
};
/* End PBXBuildFile section */
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
/* Begin PBXContainerItemProxy section */
...
@@ -142,6 +148,12 @@
...
@@ -142,6 +148,12 @@
02CE4DCB2ADFA03F002E79BC
/* SelectedTabModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
SelectedTabModel.swift
;
sourceTree
=
"<group>"
;
};
02CE4DCB2ADFA03F002E79BC
/* SelectedTabModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
SelectedTabModel.swift
;
sourceTree
=
"<group>"
;
};
02CE4DCD2ADFB9FF002E79BC
/* Info.plist */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist
;
path
=
Info.plist
;
sourceTree
=
"<group>"
;
};
02CE4DCD2ADFB9FF002E79BC
/* Info.plist */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist
;
path
=
Info.plist
;
sourceTree
=
"<group>"
;
};
02CE4DD92ADFBA72002E79BC
/* MapRepresentable.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MapRepresentable.swift
;
sourceTree
=
"<group>"
;
};
02CE4DD92ADFBA72002E79BC
/* MapRepresentable.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MapRepresentable.swift
;
sourceTree
=
"<group>"
;
};
D52D21392AEBAC0500324D58
/* HttpRequestType.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HttpRequestType.swift
;
path
=
Sailassist/Http/HttpRequestType.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D52D213E2AEBB7D700324D58
/* RegisteredEca.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
RegisteredEca.swift
;
path
=
Sailassist/ECA/RegisteredEca.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D52D21402AEDE18F00324D58
/* EcaCoordinatesTable.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
EcaCoordinatesTable.swift
;
path
=
Sailassist/ECA/EcaCoordinatesTable.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D5AE35182AEBA66A00059889
/* ReqLogin.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
ReqLogin.swift
;
path
=
Sailassist/Json/ReqLogin.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D5AE35192AEBA66A00059889
/* ResLogin.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
ResLogin.swift
;
path
=
Sailassist/Json/ResLogin.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D5AE351C2AEBA6FC00059889
/* SessionLogin.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
SessionLogin.swift
;
path
=
Sailassist/ServerSession/SessionLogin.swift
;
sourceTree
=
SOURCE_ROOT
;
};
/* End PBXFileReference section */
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
/* Begin PBXFrameworksBuildPhase section */
...
@@ -198,6 +210,9 @@
...
@@ -198,6 +210,9 @@
020B98122AD8C3140029DE4C
/* SailAssist */
=
{
020B98122AD8C3140029DE4C
/* SailAssist */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
D52D213B2AEBB78E00324D58
/* ECA */
,
D52D21382AEBABE700324D58
/* Http */
,
D5AE35172AEBA64800059889
/* Json */
,
022789122AE602D800A87787
/* ServerSession */
,
022789122AE602D800A87787
/* ServerSession */
,
0227890A2AE22DFB00A87787
/* SharingData */
,
0227890A2AE22DFB00A87787
/* SharingData */
,
02CE4DCD2ADFB9FF002E79BC
/* Info.plist */
,
02CE4DCD2ADFB9FF002E79BC
/* Info.plist */
,
...
@@ -386,6 +401,7 @@
...
@@ -386,6 +401,7 @@
022789122AE602D800A87787
/* ServerSession */
=
{
022789122AE602D800A87787
/* ServerSession */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
D5AE351C2AEBA6FC00059889
/* SessionLogin.swift */
,
02CD06922AE88970005F8D8F
/* ServerSession.swift */
,
02CD06922AE88970005F8D8F
/* ServerSession.swift */
,
02CD06942AE895F5005F8D8F
/* APIError.swift */
,
02CD06942AE895F5005F8D8F
/* APIError.swift */
,
);
);
...
@@ -428,6 +444,32 @@
...
@@ -428,6 +444,32 @@
path
=
Fremeworks
;
path
=
Fremeworks
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
D52D21382AEBABE700324D58
/* Http */
=
{
isa
=
PBXGroup
;
children
=
(
D52D21392AEBAC0500324D58
/* HttpRequestType.swift */
,
);
path
=
Http
;
sourceTree
=
"<group>"
;
};
D52D213B2AEBB78E00324D58
/* ECA */
=
{
isa
=
PBXGroup
;
children
=
(
D52D213E2AEBB7D700324D58
/* RegisteredEca.swift */
,
D52D21402AEDE18F00324D58
/* EcaCoordinatesTable.swift */
,
);
path
=
ECA
;
sourceTree
=
"<group>"
;
};
D5AE35172AEBA64800059889
/* Json */
=
{
isa
=
PBXGroup
;
children
=
(
D5AE35182AEBA66A00059889
/* ReqLogin.swift */
,
D5AE35192AEBA66A00059889
/* ResLogin.swift */
,
);
path
=
Json
;
sourceTree
=
"<group>"
;
};
/* End PBXGroup section */
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
/* Begin PBXNativeTarget section */
...
@@ -559,14 +601,18 @@
...
@@ -559,14 +601,18 @@
isa
=
PBXSourcesBuildPhase
;
isa
=
PBXSourcesBuildPhase
;
buildActionMask
=
2147483647
;
buildActionMask
=
2147483647
;
files
=
(
files
=
(
D52D21412AEDE18F00324D58
/* EcaCoordinatesTable.swift in Sources */
,
02CD06912AE6536B005F8D8F
/* LayerEnum.swift in Sources */
,
02CD06912AE6536B005F8D8F
/* LayerEnum.swift in Sources */
,
020B98532AD919180029DE4C
/* LoginTypeSelectView.swift in Sources */
,
020B98532AD919180029DE4C
/* LoginTypeSelectView.swift in Sources */
,
D52D213F2AEBB7D700324D58
/* RegisteredEca.swift in Sources */
,
0227890E2AE245C300A87787
/* ECA.swift in Sources */
,
0227890E2AE245C300A87787
/* ECA.swift in Sources */
,
02CD06952AE895F5005F8D8F
/* APIError.swift in Sources */
,
02CD06952AE895F5005F8D8F
/* APIError.swift in Sources */
,
02CE4DC82ADF97E8002E79BC
/* View+Extensions.swift in Sources */
,
02CE4DC82ADF97E8002E79BC
/* View+Extensions.swift in Sources */
,
020B98412AD8C3810029DE4C
/* LoginView.swift in Sources */
,
020B98412AD8C3810029DE4C
/* LoginView.swift in Sources */
,
D5AE351D2AEBA6FC00059889
/* SessionLogin.swift in Sources */
,
020B98552AD924930029DE4C
/* QrCodeScannerView.swift in Sources */
,
020B98552AD924930029DE4C
/* QrCodeScannerView.swift in Sources */
,
02CE4D7F2ADE42A9002E79BC
/* MenuContentView.swift in Sources */
,
02CE4D7F2ADE42A9002E79BC
/* MenuContentView.swift in Sources */
,
D5AE351B2AEBA66A00059889
/* ResLogin.swift in Sources */
,
02CE4D832ADE672B002E79BC
/* MapTaskView.swift in Sources */
,
02CE4D832ADE672B002E79BC
/* MapTaskView.swift in Sources */
,
02CE4DCC2ADFA03F002E79BC
/* SelectedTabModel.swift in Sources */
,
02CE4DCC2ADFA03F002E79BC
/* SelectedTabModel.swift in Sources */
,
020B98162AD8C3150029DE4C
/* ContentView.swift in Sources */
,
020B98162AD8C3150029DE4C
/* ContentView.swift in Sources */
,
...
@@ -582,7 +628,9 @@
...
@@ -582,7 +628,9 @@
02CD06932AE88970005F8D8F
/* ServerSession.swift in Sources */
,
02CD06932AE88970005F8D8F
/* ServerSession.swift in Sources */
,
020B98592AD92A4C0029DE4C
/* MainTabView.swift in Sources */
,
020B98592AD92A4C0029DE4C
/* MainTabView.swift in Sources */
,
020B984F2AD9182D0029DE4C
/* InputUserNameView.swift in Sources */
,
020B984F2AD9182D0029DE4C
/* InputUserNameView.swift in Sources */
,
D5AE351A2AEBA66A00059889
/* ReqLogin.swift in Sources */
,
020B98512AD9189A0029DE4C
/* InputIdPassWordView.swift in Sources */
,
020B98512AD9189A0029DE4C
/* InputIdPassWordView.swift in Sources */
,
D52D213A2AEBAC0500324D58
/* HttpRequestType.swift in Sources */
,
020B986E2ADD3E8D0029DE4C
/* DateTextLib.swift in Sources */
,
020B986E2ADD3E8D0029DE4C
/* DateTextLib.swift in Sources */
,
020B98672ADD15050029DE4C
/* MenuView.swift in Sources */
,
020B98672ADD15050029DE4C
/* MenuView.swift in Sources */
,
020B98572AD924F50029DE4C
/* CameraPreview.swift in Sources */
,
020B98572AD924F50029DE4C
/* CameraPreview.swift in Sources */
,
...
...
Seilassist/Sailassist/ECA/EcaCoordinatesTable.swift
0 → 100644
View file @
fa23994a
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Seilassist/Sailassist/ECA/RegisteredEca.swift
0 → 100644
View file @
fa23994a
//
// RegisteredEca.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/10/27.
//
import
Foundation
import
CoreLocation
class
RegisteredEca
{
var
id
:
UInt32
=
0
var
isEnable
:
Bool
=
false
//ECA有効
var
isRunning
:
Bool
=
false
//ECA実行中
var
name
:
String
=
""
//ECA名称
var
swNotice
:
UInt32
=
6
//ECA通知[NM]
var
swStart
:
UInt32
=
5
//ECA開始[NM]
var
swFinish
:
UInt32
=
4
//ECA終了[NM]
var
datetime
:
String
=
""
//時刻(UTC ISO8601準拠)
var
color
:
String
=
""
//ライン色(ARGB)
var
width
:
UInt32
=
1
//ライン幅
var
points
:
[
CLLocationCoordinate2D
]
=
[]
init
?(
ecaName
:
String
)
{
self
.
name
=
ecaName
}
}
Seilassist/Sailassist/Http/HttpRequestType.swift
0 → 100644
View file @
fa23994a
//
// HttpRequestType.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/10/27.
//
import
Foundation
#if DEBUG
//MARK: デバッグサーバー用
enum
HttpRequestType
:
String
{
case
RegisterLogin
=
"https://ssv-canary-web.azurewebsites.net/applogin"
}
#else
//MARK: 運用サーバー用
enum
HttpRequestType
:
String
{
case
RegisterLogin
=
"https://ssv-canary-web.azurewebsites.net/applogin"
}
#endif
Seilassist/Sailassist/Json/ReqLogin.swift
0 → 100644
View file @
fa23994a
//
// ReqLogin.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/10/26.
//
import
Foundation
struct
ReqLogin
:
Codable
{
var
Id
:
String
var
Password
:
String
init
(
Id
:
String
,
Password
:
String
)
{
self
.
Id
=
Id
self
.
Password
=
Password
}
}
Seilassist/Sailassist/Json/ResLogin.swift
0 → 100644
View file @
fa23994a
//
// ResLogin.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/10/26.
//
import
Foundation
struct
ResLogin
:
Codable
{
var
Id
:
Int
=
0
var
Name
:
String
=
""
var
CanUseCmap
:
Bool
=
false
var
CanCheckActiveRouteAlert
:
Bool
=
false
var
CanCheckBamAlert
:
Bool
=
false
}
Seilassist/Sailassist/Login/View/InputIdPassWordView.swift
View file @
fa23994a
...
@@ -11,7 +11,7 @@ import Combine
...
@@ -11,7 +11,7 @@ import Combine
struct
InputIdPassWordView
:
View
{
struct
InputIdPassWordView
:
View
{
@Binding
var
viewMode
:
LoginViewMode
@Binding
var
viewMode
:
LoginViewMode
@Binding
var
param
:
LoginViewParam
@Binding
var
param
:
LoginViewParam
// @EnvironmentObject var loginViewParam = LoginViewParam()
let
itemHPadding
:
Double
=
16
let
itemHPadding
:
Double
=
16
let
dialogBottomPadding
:
Double
=
32
let
dialogBottomPadding
:
Double
=
32
let
textFieldHeight
:
Double
=
49
let
textFieldHeight
:
Double
=
49
...
@@ -20,7 +20,6 @@ struct InputIdPassWordView: View {
...
@@ -20,7 +20,6 @@ struct InputIdPassWordView: View {
var
body
:
some
View
{
var
body
:
some
View
{
VStack
{
VStack
{
VStack
{
VStack
{
HStack
{
HStack
{
Image
(
"account"
)
Image
(
"account"
)
.
frame
(
width
:
22
,
height
:
22
)
.
frame
(
width
:
22
,
height
:
22
)
...
@@ -38,6 +37,7 @@ struct InputIdPassWordView: View {
...
@@ -38,6 +37,7 @@ struct InputIdPassWordView: View {
.
padding
(
.
trailing
)
.
padding
(
.
trailing
)
.
foregroundColor
(
.
white
)
.
foregroundColor
(
.
white
)
.
background
(
.
lineColor01
)
.
background
(
.
lineColor01
)
.
autocapitalization
(
.
none
)
.
modifier
(
TextFieldModifier
(
text
:
$
param
.
shipId
,
inputType
:
.
UserId
))
.
modifier
(
TextFieldModifier
(
text
:
$
param
.
shipId
,
inputType
:
.
UserId
))
}
}
...
@@ -68,13 +68,15 @@ struct InputIdPassWordView: View {
...
@@ -68,13 +68,15 @@ struct InputIdPassWordView: View {
Divider
()
Divider
()
.
frame
(
height
:
1
)
.
frame
(
height
:
1
)
.
background
(
Color
(
.
white
))
.
background
(
Color
(
.
white
))
}
}
Spacer
()
Spacer
()
.
frame
(
height
:
40
)
.
frame
(
height
:
40
)
Button
(
action
:
{
Button
(
action
:
{
let
sessionLogin
=
SessionLogin
.
OnlyOne
let
login
=
ReqLogin
(
Id
:
param
.
shipId
,
Password
:
param
.
password
)
sessionLogin
.
RequestLogin
(
login
)
viewMode
=
.
InputUserName
viewMode
=
.
InputUserName
},
label
:
{
},
label
:
{
Text
(
"Sign In"
)
Text
(
"Sign In"
)
...
...
Seilassist/Sailassist/SailassistApp.swift
View file @
fa23994a
...
@@ -62,3 +62,16 @@ class PassThroughWindow: UIWindow{
...
@@ -62,3 +62,16 @@ class PassThroughWindow: UIWindow{
return
rootViewController
?
.
view
==
view
?
nil
:
view
return
rootViewController
?
.
view
==
view
?
nil
:
view
}
}
}
}
// MARK: コメント出力を消す
func
print
(
debug
:
Any
=
""
,
function
:
String
=
#function
,
file
:
String
=
#file
,
line
:
Int
=
#line
)
{
#if DEBUG
var
filename
:
NSString
=
file
as
NSString
filename
=
filename
.
lastPathComponent
as
NSString
// Swift.print("File: \(filename), Line: \(line), Func: \(function) \n\(debug)")
let
outstr
=
String
(
format
:
"APPDebug File: %@, Line: %d, Func: %@
\n\(
debug
)
"
,
filename
,
line
,
function
)
// Swift.print( outstr ) NSLog がある時は、両方に出るのでいらない
NSLog
(
outstr
)
// デバッグコンソールにも出力
#endif
}
Seilassist/Sailassist/ServerSession/ServerSession.swift
View file @
fa23994a
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
import
Foundation
import
Foundation
class
ServerSession
{
class
ServerSession
{
// JSON 文字列に変換
// JSON 文字列に変換
func
toJSON
<
T
>
(
_
reqparam
:
T
)
->
Data
!
where
T
:
Encodable
{
func
toJSON
<
T
>
(
_
reqparam
:
T
)
->
Data
!
where
T
:
Encodable
{
let
Jencoder
=
JSONEncoder
()
let
Jencoder
=
JSONEncoder
()
...
@@ -20,7 +20,7 @@ class ServerSession{
...
@@ -20,7 +20,7 @@ class ServerSession{
}
}
return
postdata
return
postdata
}
}
// JSON 文字列から変換
// JSON 文字列から変換
func
fromJSON
<
T
>
(
resultData
:
Data
,
resltType
:
T
.
Type
)
->
T
!
where
T
:
Decodable
{
func
fromJSON
<
T
>
(
resultData
:
Data
,
resltType
:
T
.
Type
)
->
T
!
where
T
:
Decodable
{
do
{
do
{
...
@@ -32,21 +32,21 @@ class ServerSession{
...
@@ -32,21 +32,21 @@ class ServerSession{
return
nil
return
nil
}
}
}
}
func
postJson
(
_
req_url
:
URL
,
_
postdata
:
Data
,
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
){
func
postJson
(
_
req_url
:
URL
,
_
postdata
:
Data
,
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
){
var
req
=
URLRequest
(
url
:
req_url
)
var
req
=
URLRequest
(
url
:
req_url
)
req
.
httpMethod
=
"POST"
req
.
httpMethod
=
"POST"
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
httpBody
=
postdata
req
.
httpBody
=
postdata
req
.
timeoutInterval
=
20
// タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
req
.
timeoutInterval
=
20
// タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
// サーバー送信
// サーバー送信
let
session
=
URLSession
(
configuration
:
.
default
,
delegate
:
nil
,
delegateQueue
:
OperationQueue
.
main
)
let
session
=
URLSession
(
configuration
:
.
default
,
delegate
:
nil
,
delegateQueue
:
OperationQueue
.
main
)
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
session
.
finishTasksAndInvalidate
()
session
.
finishTasksAndInvalidate
()
do
{
do
{
if
let
error
=
error
{
if
let
error
=
error
{
let
err
=
APIError
.
clientError
let
err
=
APIError
.
clientError
...
@@ -58,6 +58,12 @@ class ServerSession{
...
@@ -58,6 +58,12 @@ class ServerSession{
if
inresponse
.
statusCode
!=
200
{
if
inresponse
.
statusCode
!=
200
{
throw
APIError
.
serverError
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
{
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
completion
(
.
success
(
indata
))
}
}
...
@@ -71,4 +77,16 @@ class ServerSession{
...
@@ -71,4 +77,16 @@ class ServerSession{
}
}
})
.
resume
()
})
.
resume
()
}
}
// HTTPCookieStorageに特定のCookieが保存されているかを調べる
func
isCookieSet
(
name
:
String
,
url
:
URL
)
->
Bool
{
if
let
cookies
=
HTTPCookieStorage
.
shared
.
cookies
(
for
:
url
)
{
for
cookie
in
cookies
{
if
(
cookie
.
name
==
name
)
{
return
true
}
}
}
return
false
}
}
}
Seilassist/Sailassist/ServerSession/SessionLogin.swift
0 → 100644
View file @
fa23994a
//
// SessionLogin.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/10/26.
//
import
WebKit
class
SessionLogin
:
NSObject
{
// シングルトン宣言
static
let
OnlyOne
=
SessionLogin
()
private
var
serverSession
=
ServerSession
()
override
init
()
{
super
.
init
()
}
private
var
Calling
:
Bool
=
false
// 通信中
/**
* ログイン
* - Parameters:
* - login: ログイン情報
*/
func
RequestLogin
(
_
login
:
ReqLogin
)
{
print
(
debug
:
"calld"
)
if
Calling
{
return
}
Calling
=
true
// リクエストURLの組み立て
let
url_string
:
String
=
HttpRequestType
.
RegisterLogin
.
rawValue
guard
let
req_url
=
URL
(
string
:
url_string
)
else
{
Calling
=
false
return
}
if
let
postdata
=
serverSession
.
toJSON
(
login
)
{
serverSession
.
postJson
(
req_url
,
postdata
,
completion
:
serverResponse
)
}
else
{
Calling
=
false
return
}
}
func
serverResponse
(
result
:
Result
<
Data
,
APIError
>
)
{
print
(
debug
:
"calld"
)
switch
result
{
case
.
success
(
let
resultData
):
let
jsonstr
=
String
(
data
:
resultData
,
encoding
:
.
utf8
)
!
if
jsonstr
==
"Completed.
\n\n
"
{
Calling
=
false
}
else
{
Calling
=
false
}
case
.
failure
(
let
errorCode
):
print
(
errorCode
)
break
}
}
}
Seilassist/Sailassist/SharingData/SharingData.swift
View file @
fa23994a
...
@@ -4,10 +4,27 @@
...
@@ -4,10 +4,27 @@
//
//
// Created by Mamoru Sugita on 2023/10/20.
// Created by Mamoru Sugita on 2023/10/20.
//
//
import
Foundation
import
CoreLocation
class
SharingData
{
class
SharingData
{
class
My
{
static
var
location
:
CLLocationCoordinate2D
?
=
nil
static
var
speedKnot
:
Double
=
0.0
static
var
bearing
:
Double
=
0.0
// 自船進行方向
static
var
compass
:
Double
?
=
nil
// 端末の方位
static
func
reset
()
{
location
=
nil
speedKnot
=
0.0
bearing
=
0.0
}
}
/**
* Eca
*/
class
Eca
{
static
var
area
:
Dictionary
<
String
,
RegisteredEca
>
=
[:]
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment