1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
use hyper::Url; use hyper::method::Method; use request::VoucherifyRequest; use utils::error::VoucherifyError; pub struct VoucherDeleteRequest { request: VoucherifyRequest, app_url: String, force: bool, voucher_id: String, } impl VoucherDeleteRequest { pub fn new(request: VoucherifyRequest, voucher_id: &str, app_url: String) -> VoucherDeleteRequest { VoucherDeleteRequest { request: request, app_url: app_url, force: false, voucher_id: voucher_id.to_string(), } } pub fn force(&mut self, force: bool) -> &mut VoucherDeleteRequest { self.force = force; self } pub fn send(&mut self) -> Result<bool, VoucherifyError> { let mut url = try!(Url::parse(format!("{}/v1/vouchers/{}", self.app_url, self.voucher_id) .as_str())); if self.force { url.query_pairs_mut().append_pair("force", "true"); } let response = try!(self.request.execute(Method::Delete, url)); if !response.status.is_success() { return Err(VoucherifyError::ResponseError("Resource not found".to_string())); } Ok(true) } }