#include "utils.hpp" std::vector split(std::string input, char delimiter) { std::vector answer; std::stringstream ss(input); std::string temp; while (getline(ss, temp, delimiter)) answer.push_back(temp); return answer; } std::string trim(std::string str, char c) { str = str.substr(str.find_first_not_of(c)); str = str.substr(0, str.find_last_not_of(c) + 1); return str; } std::string itos(int n) { std::stringstream strs; strs << n; return ( strs.str() ); } bool isNumeric(std::string str) { for (size_t i = 0; i < str.length(); i++) { if (std::isdigit(str[i]) == false) return false; } return true; } bool isNumeric_btw(int low, int high, std::string str) { for (size_t i = 0; i < str.length(); i++) { if (std::isdigit(str[i]) == false) return false; } int n = std::atoi(str.c_str()); if (n < low || n > high) return false; return true; } http_method str_to_http_method(std::string &str) { if (str == "GET") return GET; else if (str == "POST") return POST; else if (str == "DELETE") return DELETE; else if (str == "ALL_METHODS") return ALL_METHODS; return UNKNOWN; } std::string http_methods_to_str(unsigned int methods) { std::string str; if (methods & GET) str.append("GET"); if (methods & POST) { if (!str.empty()) str.append(", "); str.append("POST"); } if (methods & DELETE) { if (!str.empty()) str.append(", "); str.append("DELETE"); } return (str); } int path_is_valid(std::string path) { std::string i_path = path.substr(1); const char *tmp_path = i_path.c_str(); struct stat s; if (stat(tmp_path, &s) == 0) { if (S_ISREG(s.st_mode)) { // std::cout << "is a file\n"; return (2); } else if (S_ISDIR(s.st_mode)) { // std::cout << "is a Dir\n"; return (1); } } /* if (stat(tmp_path, &s) == 0 && S_ISREG(s.st_mode)) // a File { std::cout << "is a file\n"; return (2); } else if (stat(tmp_path, &s) == 0 && S_ISDIR(s.st_mode)) // A Folder { std::cout << "is a Dir\n"; return (1); } */ // std::cout << "path is neither dir nor file\n"; return (0); }