Skip to content

Commit

Permalink
Made it easier to read
Browse files Browse the repository at this point in the history
  • Loading branch information
keisukeYamagishi committed Aug 6, 2024
1 parent 0fc3887 commit 5e18987
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 58 deletions.
31 changes: 31 additions & 0 deletions HttpSessionSample/Model/BuildData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,35 @@ class BuildData {
{
"param:\n\(param)\nresponce header:\n\(responce)\nresult:\n \n\(result)\n\(error)"
}

static func build(data: Data?,
parameter: [String: String],
responce: HTTPURLResponse?,
error: Error?,
completion: (String) -> Void)
{
let parameter = parameter.map {
"\($0.key): \($0.value)\n"
}.joined()
if let unwrapData = data,
let result = String(data: unwrapData, encoding: .utf8),
let unwrapResponce = responce
{
let responceString = String(describing: unwrapResponce)
let result = BuildData.build(param: parameter,
responce: responceString,
result: result)

completion(result)
} else if let unwrapResponce = responce {
let responceString = String(describing: unwrapResponce)
let result = BuildData.build(param: parameter, responce: responceString)

completion(result)
} else if let unwrapError = error {
let errorString = String(describing: unwrapError)
let result = BuildData.build(param: parameter, error: errorString)
completion(result)
}
}
}
95 changes: 37 additions & 58 deletions HttpSessionSample/ViewController/View/ViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,21 @@ extension ViewModel: ViewModelInput {
switch indexPath.row {
case 0:
provider.send(api: .zen) { [unowned self] data, responce, error in
buildData(data: data,
parameter: [:],
responce: responce,
error: error)
BuildData.build(data: data,
parameter: [:],
responce: responce,
error: error,
completion: detailClosure)
}
case 1:
let val = Tapul(value: ("http_post", value: "Http Request POST 😄"))
provider.send(api: .post(param: val)) { [unowned self] data, responce, error in
buildData(data: data,
parameter: [val.value.0: val.value.1],
responce: responce,
error: error)
BuildData
.build(data: data,
parameter: [val.value.0: val.value.1],
responce: responce,
error: error,
completion: detailClosure)
}
case 2:

Expand All @@ -61,19 +64,21 @@ extension ViewModel: ViewModelInput {

Http.request(url: url, method: .post, params: param)
.session(completion: { [unowned self] data, responce, error in
buildData(data: data,
parameter: param,
responce: responce,
error: error)
BuildData.build(data: data,
parameter: param,
responce: responce,
error: error,
completion: detailClosure)
})
case 3:

Http.request(url: "https://sevens-api.herokuapp.com/signIned.json", method: .get, cookie: true)
.session(completion: { [unowned self] data, responce, error in
buildData(data: data,
parameter: [:],
responce: responce,
error: error)
BuildData.build(data: data,
parameter: [:],
responce: responce,
error: error,
completion: detailClosure)
})
case 4:

Expand All @@ -83,67 +88,41 @@ extension ViewModel: ViewModelInput {
self.uploadProgress?(percentage)

} completion: { [self] data, responce, error in
buildData(data: data,
parameter: [:],
responce: responce,
error: error)
BuildData.build(data: data,
parameter: [:],
responce: responce,
error: error,
completion: detailClosure)
}
case 5:
let basicAuth: [String: String] = [Auth.user: "httpSession",
Auth.password: "githubHttpsession"]
Http.request(url: "https://sevens-api.herokuapp.com/basicauth.json",
method: .get,
basic: basicAuth).session(completion: { [unowned self] data, responce, error in
buildData(data: data,
parameter: [:],
responce: responce,
error: error)

BuildData.build(data: data,
parameter: [:],
responce: responce,
error: error,
completion: detailClosure)
})
case 6:
pushDetailClosure?()
case 7:
let parameter = ["Swift-Http-Client-lib": "HttpSession",
"Lang": "Swift"]
provider.send(api: .jsonPost(param: parameter)) { [unowned self] data, responce, error in
buildData(data: data,
parameter: parameter,
responce: responce,
error: error)
BuildData.build(data: data,
parameter: parameter,
responce: responce,
error: error,
completion: detailClosure)
}
default:
print("Default")
}
}

func buildData(data: Data?,
parameter: [String: String],
responce: HTTPURLResponse?,
error: Error?)
{
let parameter = parameter.map {
"\($0.key): \($0.value)\n"
}.joined()
if let unwrapData = data,
let result = String(data: unwrapData, encoding: .utf8),
let unwrapResponce = responce
{
let responceString = String(describing: unwrapResponce)
let result = BuildData.build(param: parameter,
responce: responceString,
result: result)

detailClosure(result)
} else if let unwrapResponce = responce {
let responceString = String(describing: unwrapResponce)
let result = BuildData.build(param: parameter, responce: responceString)

detailClosure(result)
} else if let unwrapError = error {
let errorString = String(describing: unwrapError)
let result = BuildData.build(param: parameter, error: errorString)
detailClosure(result)
}
}
}

extension ViewModel: ViewModelOutput {
Expand Down

0 comments on commit 5e18987

Please sign in to comment.