import Foundation
import WortiseSDK

enum WortiseRequestParametersFactory {

    static func create(_ json: String?) -> WARequestParameters {
        guard
            let json   = json,
            let data   = json.data(using: .utf8),
            let values = try? JSONSerialization.jsonObject(with: data) as? [String: Any]
        else {
            return WARequestParameters()
        }

        return WARequestParameters(
            agent:       values["agent"] as? String,
            collapsible: collapsiblePosition(values["collapsible"] as? String)
        )
    }


    private static func collapsiblePosition(_ value: String?) -> WACollapsiblePosition? {
        switch value {
        case "bottom": return .bottom
        case "top":    return .top
        default:       return nil
        }
    }
}
