require 'time' module Xolphin module Api module Endpoint class Request def initialize(http) @http = http end def all requests = [] result = @http.get("/requests", page: 1) response = Xolphin::Api::Responses::Requests.new(result) unless response.error? requests = response.requests while response.page < response.pages result = @http.get("/requests", page: response.page + 1) response = Xolphin::Api::Responses::Requests.new(result) break if response.error? requests += response.requests end end requests end def get(id) result = @http.get("/requests/#{id}") Xolphin::Api::Responses::Request.new(result) end def create(product, years, csr, dcv_type) Xolphin::Api::CertificateRequests::CreateCertificateRequest.new(product, years, csr, dcv_type) end def send(request) result = @http.post("/requests", request.to_param) Xolphin::Api::Responses::Request.new(result) end def createEE() Xolphin::Api::CertificateRequests::CreateEERequest.new() end def sendEE(request) result = @http.post("/requests/ee", request.to_param) Xolphin::Api::Responses::RequestEE.new(result) end def sendNote(id, note) @http.post("/requests/#{id}/notes",{'message' => note}) end def getNotes(id) result = @http.get("/requests/#{id}/notes") Xolphin::Api::Responses::Notes.new(result) end def sendComodoSAEmail(id, to, language = nil) @http.post("requests/#{id}/sa",{'sa_email' => to, 'language' => language}) end def upload(id, document, description = nil) @http.post("requests/#{id}/upload-document",{'document' => document, 'description' => description}) end def scheduleValidationCall(id, date_time) t = Time.parse(date_time) @http.post("requests/#{id}/schedule-validation-call",{'date' => t.strftime("%Y-%m-%d"), 'time' => t.strftime("%H:%M")}) end def retryDCV(id, domain, dcv_type, email = nil) @http.post("requests/#{id}/retry-dcv",{"domain" => domain, "dcvType" => dcv_type, "email" => email}) end end end end end