From a4532f27b4a6ddd3e59eb2ffa0f610f9d2d7ad55 Mon Sep 17 00:00:00 2001 From: Lewin Bormann Date: Wed, 31 Aug 2016 20:46:10 +0200 Subject: [PATCH] fix(helper): Parse app secrets into right type --- src/helper.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/helper.rs b/src/helper.rs index 1f96322..ac5aace 100644 --- a/src/helper.rs +++ b/src/helper.rs @@ -11,7 +11,7 @@ use serde_json; use std::io; use std::fs; -use types::ApplicationSecret; +use types::{ConsoleApplicationSecret, ApplicationSecret}; pub fn read_application_secret(file: &String) -> io::Result { use std::io::Read; @@ -24,11 +24,21 @@ pub fn read_application_secret(file: &String) -> io::Result { } pub fn parse_application_secret(secret: &String) -> io::Result { - match serde_json::from_str(secret) { + let result: serde_json::Result = serde_json::from_str(secret); + match result { Err(e) => { Err(io::Error::new(io::ErrorKind::InvalidData, format!("Bad application secret: {}", e))) } - Ok(decoded) => Ok(decoded), + Ok(decoded) => { + if decoded.web.is_some() { + Ok(decoded.web.unwrap()) + } else if decoded.installed.is_some() { + Ok(decoded.installed.unwrap()) + } else { + Err(io::Error::new(io::ErrorKind::InvalidData, + "Unknown application secret format")) + } + } } }