summaryrefslogtreecommitdiff
path: root/src/converter/file_to_struct.hpp
blob: 1eb7fce83af853c5c7c3eb945a58ab666e3ec120 (plain)
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
#pragma once

#include <unordered_map>
#include <string>

#include "management/general.hpp"

namespace smtp::converter
{
    class FileToStruct
    {
    public:
        FileToStruct() = default;
        ~FileToStruct() = default;

        manage::SettingsFields Convert( manage::SettingsFileDataType const& from ) const;
    private:
        void ApplyAuth( manage::SettingsFields& result, manage::SettingsFileDataType const& from ) const;
        void ApplySsl( manage::SettingsFields& result, manage::SettingsFileDataType const& from ) const;
        void ApplyBool( manage::SettingsFileDataType const& from, std::string const& search_field, bool& field ) const;

        void ApplyUsername( manage::SettingsFields& result, manage::SettingsFileDataType const& from ) const;
        void ApplyPassword( manage::SettingsFields& result, manage::SettingsFileDataType const& from ) const;
        void ApplyHost( manage::SettingsFields& result, manage::SettingsFileDataType const& from ) const;
        void ApplyPort( manage::SettingsFields& result, manage::SettingsFileDataType const& from ) const;
        void ApplyString( manage::SettingsFileDataType const& from, std::string const& search_field, std::string& field ) const;
    };
}