Skip to content

Commit 7ace105

Browse files
committed
Refactor StudyplusAPI class
1 parent 6e9d17d commit 7ace105

File tree

3 files changed

+30
-11
lines changed

3 files changed

+30
-11
lines changed

Lib/StudyplusSDK.xcodeproj/project.pbxproj

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
183FDAAB1E75148D0085589F /* Studyplus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183FDAAA1E75148D0085589F /* Studyplus.swift */; };
1414
183FDAAD1E753E430085589F /* StudyplusLoginDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183FDAAC1E753E430085589F /* StudyplusLoginDelegate.swift */; };
1515
183FDAAF1E7544240085589F /* StudyplusError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183FDAAE1E7544240085589F /* StudyplusError.swift */; };
16-
183FDAB11E754DCB0085589F /* StudyplusAPIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183FDAB01E754DCB0085589F /* StudyplusAPIRequest.swift */; };
16+
183FDAB11E754DCB0085589F /* StudyplusAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183FDAB01E754DCB0085589F /* StudyplusAPI.swift */; };
1717
183FDAB31E7561B90085589F /* StudyplusRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = 183FDAB21E7561B90085589F /* StudyplusRecord.swift */; };
1818
/* End PBXBuildFile section */
1919

@@ -37,7 +37,7 @@
3737
183FDAAA1E75148D0085589F /* Studyplus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Studyplus.swift; sourceTree = "<group>"; };
3838
183FDAAC1E753E430085589F /* StudyplusLoginDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StudyplusLoginDelegate.swift; sourceTree = "<group>"; };
3939
183FDAAE1E7544240085589F /* StudyplusError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StudyplusError.swift; sourceTree = "<group>"; };
40-
183FDAB01E754DCB0085589F /* StudyplusAPIRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StudyplusAPIRequest.swift; sourceTree = "<group>"; };
40+
183FDAB01E754DCB0085589F /* StudyplusAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StudyplusAPI.swift; sourceTree = "<group>"; };
4141
183FDAB21E7561B90085589F /* StudyplusRecord.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StudyplusRecord.swift; sourceTree = "<group>"; };
4242
/* End PBXFileReference section */
4343

@@ -82,8 +82,8 @@
8282
isa = PBXGroup;
8383
children = (
8484
183FDA6B1E7510920085589F /* Info.plist */,
85+
65E3911625F889A700490547 /* internal */,
8586
183FDAAA1E75148D0085589F /* Studyplus.swift */,
86-
183FDAB01E754DCB0085589F /* StudyplusAPIRequest.swift */,
8787
183FDAAE1E7544240085589F /* StudyplusError.swift */,
8888
183FDAAC1E753E430085589F /* StudyplusLoginDelegate.swift */,
8989
183FDAB21E7561B90085589F /* StudyplusRecord.swift */,
@@ -101,6 +101,14 @@
101101
path = StudyplusSDKTests;
102102
sourceTree = "<group>";
103103
};
104+
65E3911625F889A700490547 /* internal */ = {
105+
isa = PBXGroup;
106+
children = (
107+
183FDAB01E754DCB0085589F /* StudyplusAPI.swift */,
108+
);
109+
path = internal;
110+
sourceTree = "<group>";
111+
};
104112
/* End PBXGroup section */
105113

106114
/* Begin PBXHeadersBuildPhase section */
@@ -218,7 +226,7 @@
218226
isa = PBXSourcesBuildPhase;
219227
buildActionMask = 2147483647;
220228
files = (
221-
183FDAB11E754DCB0085589F /* StudyplusAPIRequest.swift in Sources */,
229+
183FDAB11E754DCB0085589F /* StudyplusAPI.swift in Sources */,
222230
183FDAB31E7561B90085589F /* StudyplusRecord.swift in Sources */,
223231
183FDAAD1E753E430085589F /* StudyplusLoginDelegate.swift in Sources */,
224232
183FDAAF1E7544240085589F /* StudyplusError.swift in Sources */,

Lib/StudyplusSDK/Studyplus.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ final public class Studyplus {
165165
return
166166
}
167167

168-
StudyplusAPIRequest(accessToken: accessToken).post(record, completion: completion)
168+
StudyplusAPI(accessToken: accessToken).post(record, completion: completion)
169169
}
170170

171171
/// It is responsible for processing custom URL scheme

Lib/StudyplusSDK/StudyplusAPIRequest.swift renamed to Lib/StudyplusSDK/internal/StudyplusAPI.swift

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// StudyplusAPIRequest.swift
2+
// StudyplusAPI.swift
33
// StudyplusSDK
44
//
55
// The MIT License (MIT)
@@ -26,11 +26,22 @@
2626

2727
import Foundation
2828

29-
internal struct StudyplusAPIRequest {
29+
private struct StudyplusURL {
30+
private static let scheme: String = "https"
31+
private static let host: String = "external-api.studyplus.jp"
32+
private static let version: String = "v1"
3033

31-
private static let base: String = "https://external-api.studyplus.jp"
32-
private static let path: String = "/v1/study_records"
33-
private let studyRecordUrl: URL = URL(string: base + path)!
34+
static var records: URL {
35+
var components = URLComponents()
36+
components.scheme = scheme
37+
components.host = host
38+
components.path = "/\(version)/study_records"
39+
40+
return components.url!
41+
}
42+
}
43+
44+
internal struct StudyplusAPI {
3445

3546
private let accessToken: String
3647
private var encoder: JSONEncoder {
@@ -54,7 +65,7 @@ internal struct StudyplusAPIRequest {
5465
}
5566

5667
private func exec(_ record: StudyplusRecord, completion: @escaping (Result<Void, StudyplusPostError>) -> Void) {
57-
var request = URLRequest(url: studyRecordUrl)
68+
var request = URLRequest(url: StudyplusURL.records)
5869
request.httpMethod = "POST"
5970
request.addValue("application/json; charaset=utf-8", forHTTPHeaderField: "Content-Type")
6071
request.addValue("OAuth \(accessToken)", forHTTPHeaderField: "Authorization")

0 commit comments

Comments
 (0)