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
0
Merge Requests
0
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
CpjJwWHV
Sailassist
Commits
3f39eeba
Commit
3f39eeba
authored
Oct 29, 2023
by
shigemi miura
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Login通信ベース作成
Eca初期データ Cookie保存
parent
cc2e8395
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
258 additions
and
16 deletions
+258
-16
project.pbxproj
Seilassist/Sailassist.xcodeproj/project.pbxproj
+50
-2
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
+4
-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 @
3f39eeba
...
@@ -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 */
,
...
@@ -756,7 +804,7 @@
...
@@ -756,7 +804,7 @@
CODE_SIGN_STYLE
=
Automatic
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
1
;
CURRENT_PROJECT_VERSION
=
1
;
DEVELOPMENT_ASSET_PATHS
=
"\"Sailassist/Preview Content\""
;
DEVELOPMENT_ASSET_PATHS
=
"\"Sailassist/Preview Content\""
;
DEVELOPMENT_TEAM
=
886VZM992
8
;
DEVELOPMENT_TEAM
=
D2DC7QNNJ
8
;
ENABLE_PREVIEWS
=
YES
;
ENABLE_PREVIEWS
=
YES
;
GENERATE_INFOPLIST_FILE
=
YES
;
GENERATE_INFOPLIST_FILE
=
YES
;
INFOPLIST_FILE
=
Sailassist/Info.plist
;
INFOPLIST_FILE
=
Sailassist/Info.plist
;
...
@@ -788,7 +836,7 @@
...
@@ -788,7 +836,7 @@
CODE_SIGN_STYLE
=
Automatic
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
1
;
CURRENT_PROJECT_VERSION
=
1
;
DEVELOPMENT_ASSET_PATHS
=
"\"Sailassist/Preview Content\""
;
DEVELOPMENT_ASSET_PATHS
=
"\"Sailassist/Preview Content\""
;
DEVELOPMENT_TEAM
=
886VZM992
8
;
DEVELOPMENT_TEAM
=
D2DC7QNNJ
8
;
ENABLE_PREVIEWS
=
YES
;
ENABLE_PREVIEWS
=
YES
;
GENERATE_INFOPLIST_FILE
=
YES
;
GENERATE_INFOPLIST_FILE
=
YES
;
INFOPLIST_FILE
=
Sailassist/Info.plist
;
INFOPLIST_FILE
=
Sailassist/Info.plist
;
...
...
Seilassist/Sailassist/ECA/EcaCoordinatesTable.swift
0 → 100644
View file @
3f39eeba
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 @
3f39eeba
//
// 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 @
3f39eeba
//
// 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 @
3f39eeba
//
// 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 @
3f39eeba
//
// 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 @
3f39eeba
...
@@ -38,12 +38,10 @@ struct InputIdPassWordView: View {
...
@@ -38,12 +38,10 @@ struct InputIdPassWordView: View {
.
padding
(
.
trailing
)
.
padding
(
.
trailing
)
.
foregroundColor
(
.
white
)
.
foregroundColor
(
.
white
)
.
background
(
.
lineColor01
)
.
background
(
.
lineColor01
)
.
autocapitalization
(
.
none
)
.
modifier
(
TextFieldModifier
(
text
:
$
loginViewParam
.
shipId
,
inputType
:
.
UserId
))
.
modifier
(
TextFieldModifier
(
text
:
$
loginViewParam
.
shipId
,
inputType
:
.
UserId
))
}
}
Divider
()
Divider
()
.
frame
(
height
:
1
)
.
frame
(
height
:
1
)
.
background
(
Color
(
.
white
))
.
background
(
Color
(
.
white
))
...
@@ -75,6 +73,9 @@ struct InputIdPassWordView: View {
...
@@ -75,6 +73,9 @@ struct InputIdPassWordView: View {
.
frame
(
height
:
40
)
.
frame
(
height
:
40
)
Button
(
action
:
{
Button
(
action
:
{
let
sessionLogin
=
SessionLogin
.
OnlyOne
let
login
=
ReqLogin
(
Id
:
loginViewParam
.
shipId
,
Password
:
loginViewParam
.
password
)
sessionLogin
.
RequestLogin
(
login
)
loginViewParam
.
viewMode
=
.
InputUserName
loginViewParam
.
viewMode
=
.
InputUserName
},
label
:
{
},
label
:
{
Text
(
"Sign In"
)
Text
(
"Sign In"
)
...
...
Seilassist/Sailassist/SailassistApp.swift
View file @
3f39eeba
...
@@ -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 @
3f39eeba
...
@@ -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 @
3f39eeba
//
// 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 @
3f39eeba
...
@@ -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