Skip to content

Commit

Permalink
Merge pull request #58 from ebPark9511/newApi
Browse files Browse the repository at this point in the history
통신관련 커밋..
  • Loading branch information
ebPark9511 committed Mar 30, 2019
2 parents 9d6b4a7 + 9e950a6 commit 9311e18
Show file tree
Hide file tree
Showing 10 changed files with 164 additions and 91 deletions.
84 changes: 50 additions & 34 deletions Toonie.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,23 @@ import Foundation
Base URL과 JSONDecoder의 디코딩 전략 설정
*/
class API {
static let baseURL = "http://192.168.1.223:8080"
// static let baseURL = "http://192.168.1.223:8080"
// static let baseURL = "http://10.10.98.117:8080"
// static let baseURL = "http://192.168.0.3:8080"
static let baseURL = "http://eunbi6431.cafe24.com/Tooniee"

static let jsonDecoder: JSONDecoder = {
let jsonDecoder = JSONDecoder()
jsonDecoder.keyDecodingStrategy = .convertFromSnakeCase
return jsonDecoder
}()

static let token: String = {
return baseURL + "/token"
}()

static let keywords: String = {
return baseURL + "/keywords"
}()

}
14 changes: 14 additions & 0 deletions Toonie/Common/Network/Model/Keywords.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//
// File.swift
// Toonie
//
// Created by 박은비 on 31/03/2019.
// Copyright © 2019 Yapp. All rights reserved.
//

import Foundation
struct Keywords: Codable {
let success: Bool?
let keywords: [String]?
}

File renamed without changes.
File renamed without changes.
56 changes: 56 additions & 0 deletions Toonie/Common/Network/Requestable.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
//
// Requestable.swift
// Toonie
//
// Created by 양어진 on 30/03/2019.
// Copyright © 2019 Yapp. All rights reserved.
//

import Foundation
import Alamofire

protocol Requestable {
associatedtype NetworkData: Codable
typealias NetworkSuccessResult = (resCode: Int, resResult: NetworkData)
func get(_ URL: String,
params: Parameters?,
completion: @escaping (NetworkResult<NetworkSuccessResult>) -> Void)
}

extension Requestable {

func get(_ URL: String,
params: Parameters? = nil,
completion: @escaping (NetworkResult<NetworkSuccessResult>) -> Void) {
guard let encodedUrl = URL.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {
print("networking - invalid url")
return
}

Alamofire.request(encodedUrl,
method: .get,
parameters: nil).responseData { (res) in
switch res.result {
case .success :
if let value = res.result.value {
let decoder = JSONDecoder()
do {
let resCode = res.response?.statusCode
let datas = try decoder.decode(NetworkData.self, from: value)
let result: NetworkSuccessResult = (resCode!, datas)
completion(.networkSuccess(result))
} catch {
print("Decoding Err")
}
}
case .failure(let err) :
if let error = err as NSError?, error.code == -1009 {
completion(.networkFail)
} else {
let resCode = res.response?.statusCode ?? 0
completion(.networkError((resCode, err.localizedDescription)))
}
}
}
}
}
21 changes: 21 additions & 0 deletions Toonie/Common/Network/Service/Service.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import Foundation

struct TokenService : Requestable {
typealias NetworkData = Token
static let shareInstance = TokenService()

func getToken(url : String, params : [String : Any]? = nil, completion : @escaping (NetworkResult<Any>) -> Void) {
get(url, params: params) { (result) in

switch result {
case .networkSuccess(let successResult):
// let nextPageLink = getNextPage(linkHeader: successResult.resHeader?["Link"] as? String)
completion(.networkSuccess((successResult.resResult)))
case .networkError(let errResult):
completion(.networkError((errResult.resCode, errResult.msg)))
case .networkFail:
completion(.networkFail)
}
}
}
}
5 changes: 5 additions & 0 deletions Toonie/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,10 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
56 changes: 0 additions & 56 deletions Toonie/Network/Requestable.swift

This file was deleted.

4 changes: 4 additions & 0 deletions Toonie/Splash/KeywordSelectViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ final class KeywordSelectViewController: GestureViewController {
override func viewDidLoad() {
super.viewDidLoad()
setKeywordFlowLayout()

TokenService().getToken(url: API.token, params: nil) { (res) in
print("res \(res)")
}
}

///시작하기 버튼-메인으로 이동
Expand Down

0 comments on commit 9311e18

Please sign in to comment.