diff options
Diffstat (limited to 'src/user.hpp')
-rw-r--r-- | src/user.hpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/user.hpp b/src/user.hpp index e6a4e35..62b3f0a 100644 --- a/src/user.hpp +++ b/src/user.hpp @@ -5,6 +5,8 @@ #include "user_content.hpp" +#include <cppcms/json.h> + namespace apps { class user : public master { @@ -25,9 +27,42 @@ class user : public master { void logout( ); void register_user( ); void confirm_register( ); + void api_users( ); void ini( content::user &c ); }; } +struct User { + std::string name; + std::string email; +}; + +namespace cppcms { + namespace json { + +template<> +struct traits<User> { + + static User get( value const &v ) + { + User u; + if( v.type( ) != is_object) { + throw bad_value_cast( ); + } + u.name = v.get<std::string>( "name" ); + u.email = v.get<std::string>( "email" ); + return u; + } + + static void set( value &v, User const &u ) + { + v.set( "name", u.name ); + v.set( "email", u.email ); + } + +}; + +} } // namespace cppcms::json + #endif |