From 76f9ceeafb41aa30cdeafa260cf1e42b63111610 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 24 May 2018 00:03:03 +0300 Subject: Adapt to inventing package_name type --- libbbot/manifest.cxx | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) (limited to 'libbbot/manifest.cxx') diff --git a/libbbot/manifest.cxx b/libbbot/manifest.cxx index 3a31f55..7da3dd4 100644 --- a/libbbot/manifest.cxx +++ b/libbbot/manifest.cxx @@ -455,10 +455,14 @@ namespace bbot if (!name.empty ()) bad_name ("task package name redefinition"); - if (v.empty ()) - bad_value ("empty task package name"); - - name = move (v); + try + { + name = package_name (move (v)); + } + catch (const invalid_argument& e) + { + bad_value (string ("invalid task package name: ") + e.what ()); + } } else if (n == "version") { @@ -584,7 +588,15 @@ namespace bbot // values are valid? // s.next ("", "1"); // Start of manifest. - s.next ("name", name); + + auto bad_value ([&s](const string& d) { + throw serialization (s.name (), d);}); + + if (name.empty ()) + bad_value ("empty task package name"); + + s.next ("name", name.string ()); + s.next ("version", version.string ()); s.next ("repository", repository.string ()); @@ -857,10 +869,14 @@ namespace bbot if (!name.empty ()) bad_name ("result package name redefinition"); - if (v.empty ()) - bad_value ("empty result package name"); - - name = move (v); + try + { + name = package_name (move (v)); + } + catch (const invalid_argument& e) + { + bad_value (string ("invalid result package name: ") + e.what ()); + } } else if (n == "version") { @@ -973,7 +989,15 @@ namespace bbot // values are valid? // s.next ("", "1"); // Start of manifest. - s.next ("name", name); + + auto bad_value ([&s](const string& d) { + throw serialization (s.name (), d);}); + + if (name.empty ()) + bad_value ("empty result package name"); + + s.next ("name", name.string ()); + s.next ("version", version.string ()); s.next ("status", to_string (status)); -- cgit v1.1