#' Add a vote for a hostname or domain
#'
#' @param domain domain name. Required.
#' @param vote vote. Required.
#' @param \dots Additional arguments passed to \code{\link{virustotal_POST}}.
#'
#' @return named list
#'
#' @export
#'
#' @references \url{https://docs.virustotal.com/reference}
#'
#' @seealso \code{\link{set_key}} for setting the API key
#'
#' @examples \dontrun{
#'
#' # Before calling the function, set the API key using set_key('api_key_here')
#'
#' post_domain_votes("http://google.com", vote = "malicious")
#' }

post_domain_votes <- function(domain = NULL, vote = NULL, ...) {

    assert_character(domain, len = 1, any.missing = FALSE, min.chars = 1)
    assert_character(vote, len = 1, any.missing = FALSE, min.chars = 1)

    domain <- gsub("^http://|^https://", "", domain)

    vote_body <- list(
      data = list(
        type = "vote",
        attributes = list(verdict = vote)
      )
    )

    res <- virustotal_POST(path = paste0("domains/", domain, "/votes"),
                           body = vote_body, ...)

    res
}
