//
//  RPCResponse.swift
//  Astro
//
//  Created by Mark Sandstrom on 4/23/15.
//  Copyright (c) 2015 Mobify Research & Development Inc. All rights reserved.
//

import Foundation

public class RPCResponse: RPCMessage {
    var result: Any? {
        return payload["result"]
    }

    init(to: MessageAddress, from: MessageAddress, id: RPCMessageID, rpcMethodResult: RPCMethodResult) {
        let responsePayload: JSONObject

        switch rpcMethodResult {
        case let .result(result):
            responsePayload = [
                "result": result,
                "error": NSNull()
            ]
        case let .error(message):
            responsePayload = [
                "result": NSNull(),
                "error": [
                    "message": message,
                    "details": NSNull()
                ]
            ]
        }

        super.init(to: to, from: from, id: id, payload: responsePayload)
    }
}
