summaryrefslogtreecommitdiff
path: root/src/converter/file_to_struct.hpp
blob: 4375ce25c4671e9c13ebcc07ff11fa3e2cfdc1a8 (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 "general/struct.hpp"

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

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

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