webchaussette 1.3.3

Fast, powerful, and easy-to-set-up WebSocket library
Documentation
use std::error::Error;

use crate::{
    utils::generate_accept,
    websocket_types::{RequestStruct, ResponseStruct},
};

pub fn create_response(request: RequestStruct) -> Result<ResponseStruct, Box<dyn Error>> {
    let mut response: ResponseStruct = ResponseStruct::default();

    if let Some(key) = request.headers.get("key").cloned() {
        response
            .headers
            .insert(String::from("Sec-WebSocket-Accept"), generate_accept(key));
        response
            .headers
            .insert(String::from("Connection"), String::from("Upgrade"));
        response
            .headers
            .insert(String::from("Upgrade"), String::from("websocket"));
    }

    Ok(response)
}