update
This commit is contained in:
154
Pods/CocoaDebug/Sources/Network/JsonViewController.swift
generated
Normal file
154
Pods/CocoaDebug/Sources/Network/JsonViewController.swift
generated
Normal file
@@ -0,0 +1,154 @@
|
||||
//
|
||||
// Example
|
||||
// man
|
||||
//
|
||||
// Created by man 11/11/2018.
|
||||
// Copyright © 2020 man. All rights reserved.
|
||||
//
|
||||
|
||||
enum EditType {
|
||||
case unknown
|
||||
case requestHeader
|
||||
case responseHeader
|
||||
case log
|
||||
}
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
class JsonViewController: UIViewController {
|
||||
|
||||
@IBOutlet weak var textView: CustomTextView!
|
||||
@IBOutlet weak var imageView: UIImageView!
|
||||
@IBOutlet weak var naviItem: UINavigationItem!
|
||||
|
||||
var naviItemTitleLabel: UILabel?
|
||||
|
||||
var editType: EditType = .unknown
|
||||
var httpModel: _HttpModel?
|
||||
var detailModel: NetworkDetailModel?
|
||||
|
||||
//Edited url
|
||||
var editedURLString: String?
|
||||
//Edited content
|
||||
var editedContent: String?
|
||||
|
||||
//log
|
||||
var logTitleString: String?
|
||||
var logModels: [_OCLogModel]?
|
||||
var logModel: _OCLogModel?
|
||||
var justCancelCallback:(() -> Void)?
|
||||
|
||||
static func instanceFromStoryBoard() -> JsonViewController {
|
||||
let storyboard = UIStoryboard(name: "Network", bundle: Bundle(for: CocoaDebug.self))
|
||||
return storyboard.instantiateViewController(withIdentifier: "JsonViewController") as! JsonViewController
|
||||
}
|
||||
|
||||
//MARK: - tool
|
||||
|
||||
//detect format (JSON/Form)
|
||||
func detectSerializer() {
|
||||
guard let content = detailModel?.content else {
|
||||
detailModel?.requestSerializer = RequestSerializer.JSON//default JSON format
|
||||
return
|
||||
}
|
||||
|
||||
if let _ = content.stringToDictionary() {
|
||||
//JSON format
|
||||
detailModel?.requestSerializer = RequestSerializer.JSON
|
||||
} else {
|
||||
//Form format
|
||||
detailModel?.requestSerializer = RequestSerializer.form
|
||||
|
||||
if let jsonString = detailModel?.content?.formStringToJsonString() {
|
||||
textView.text = jsonString
|
||||
detailModel?.requestSerializer = RequestSerializer.JSON
|
||||
detailModel?.content = textView.text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//MARK: - init
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
// navigationController?.hidesBarsOnSwipe = true
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
// navigationController?.hidesBarsOnSwipe = false
|
||||
|
||||
if let index = logModels?.firstIndex(where: { (model) -> Bool in
|
||||
return model.isSelected == true
|
||||
}) {
|
||||
logModels?[index].isSelected = false
|
||||
}
|
||||
|
||||
logModel?.isSelected = true
|
||||
|
||||
if let justCancelCallback = justCancelCallback {
|
||||
justCancelCallback()
|
||||
}
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
naviItemTitleLabel = UILabel.init(frame: CGRect(x: 0, y: 0, width: 80, height: 40))
|
||||
naviItemTitleLabel?.textAlignment = .center
|
||||
naviItemTitleLabel?.textColor = Color.mainGreen
|
||||
naviItemTitleLabel?.font = .boldSystemFont(ofSize: 20)
|
||||
naviItemTitleLabel?.text = detailModel?.title
|
||||
naviItem.titleView = naviItemTitleLabel
|
||||
|
||||
textView.textContainer.lineFragmentPadding = 15
|
||||
// textView.textContainerInset = .zero
|
||||
|
||||
//detect type (default type URL)
|
||||
if detailModel?.title == "REQUEST HEADER" {
|
||||
editType = .requestHeader
|
||||
}
|
||||
if detailModel?.title == "RESPONSE HEADER" {
|
||||
editType = .responseHeader
|
||||
}
|
||||
|
||||
//setup UI
|
||||
if editType == .requestHeader
|
||||
{
|
||||
imageView.isHidden = true
|
||||
textView.isHidden = false
|
||||
textView.text = String(detailModel?.requestHeaderFields?.dictionaryToString()?.dropFirst().dropLast().dropFirst().dropLast().dropFirst().dropFirst() ?? "").replacingOccurrences(of: "\",\n \"", with: "\",\n\"")
|
||||
}
|
||||
else if editType == .responseHeader
|
||||
{
|
||||
imageView.isHidden = true
|
||||
textView.isHidden = false
|
||||
textView.text = String(detailModel?.responseHeaderFields?.dictionaryToString()?.dropFirst().dropLast().dropFirst().dropLast().dropFirst().dropFirst() ?? "").replacingOccurrences(of: "\",\n \"", with: "\",\n\"")
|
||||
}
|
||||
else if editType == .log
|
||||
{
|
||||
imageView.isHidden = true
|
||||
textView.isHidden = false
|
||||
naviItemTitleLabel?.text = logTitleString
|
||||
|
||||
if let data = logModel?.contentData {
|
||||
textView.text = data.dataToString()
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if let content = detailModel?.content {
|
||||
imageView.isHidden = true
|
||||
textView.isHidden = false
|
||||
textView.text = content
|
||||
detectSerializer()//detect format (JSON/Form)
|
||||
}
|
||||
if let image = detailModel?.image {
|
||||
textView.isHidden = true
|
||||
imageView.isHidden = false
|
||||
imageView.image = image
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user