wrt-plugins-tizen_0.4.23
[framework/web/wrt-plugins-tizen.git] / src / Messaging / EmailConverter.cpp
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #include <Commons/Exception.h>
19 #include "EmailConverter.h"
20 #include <Logger.h>
21
22 #define LOG_ENTER LoggerD("---> ENTER");
23 #define LOG_EXIT LoggerD("---> EXIT");
24
25 namespace DeviceAPI {
26 namespace Messaging {
27 namespace EmailConverter {
28 email_mail_priority_t toMailPriority(MessagePriority::Priority priority)
29 {
30     LOG_ENTER
31     switch (priority) {
32     case MessagePriority::LOW: return EMAIL_MAIL_PRIORITY_LOW;
33     case MessagePriority::NORMAL: return EMAIL_MAIL_PRIORITY_NORMAL;
34     case MessagePriority::HIGH: return EMAIL_MAIL_PRIORITY_HIGH;
35     default:
36         ThrowMsg(WrtDeviceApis::Commons::PlatformException,
37                  "Unsupported priority: " << priority);
38     }
39 }
40
41 MessagePriority::Priority toMessagePriority(email_mail_priority_t priority)
42 {
43     LOG_ENTER
44     switch (priority) {
45     case EMAIL_MAIL_PRIORITY_LOW: return MessagePriority::LOW;
46     case EMAIL_MAIL_PRIORITY_NORMAL: return MessagePriority::NORMAL;
47     case EMAIL_MAIL_PRIORITY_HIGH: return MessagePriority::HIGH;
48     default:{
49         // TODO Think it through, log is enough or exception should be thrown.
50         //            ThrowMsg(WrtDeviceApis::Commons::PlatformException,
51         //                     "Unsupported platform priority: " << priority);
52         LoggerW("Unsupported platform priority");
53     }
54     }
55
56     // TODO Fix this. What to return if non-existing priority returned by platform.
57     return MessagePriority::NORMAL;
58 }
59
60 MessagePriority::Priority toMessagePriority(unsigned char priority)
61 {
62     return toMessagePriority(static_cast<email_mail_priority_t>(priority));
63 }
64
65 email_mailbox_type_e toMailboxType(FolderType folder)
66 {
67     LOG_ENTER
68     switch (folder) {
69     case INBOX: return EMAIL_MAILBOX_TYPE_INBOX;
70     case OUTBOX: return EMAIL_MAILBOX_TYPE_OUTBOX;
71     case SENTBOX: return EMAIL_MAILBOX_TYPE_SENTBOX;
72     case DRAFTBOX: return EMAIL_MAILBOX_TYPE_DRAFT;
73     case SPAMBOX: return EMAIL_MAILBOX_TYPE_SPAMBOX;
74     case ALL_FOLDERS: return EMAIL_MAILBOX_TYPE_ALL_EMAILS;
75     case USERDEFINED_FOLDER: return EMAIL_MAILBOX_TYPE_USER_DEFINED;
76     default:
77         ThrowMsg(WrtDeviceApis::Commons::PlatformException, "Conversion failed.");
78     }
79 }
80
81 const char* toMailboxName(FolderType folder)
82 {
83     LOG_ENTER
84     switch (folder) {
85     case INBOX: return EMAIL_INBOX_NAME;
86     case OUTBOX: return EMAIL_OUTBOX_NAME;
87     case SENTBOX: return EMAIL_SENTBOX_NAME;
88     case DRAFTBOX: return EMAIL_DRAFTBOX_NAME;
89     case SPAMBOX: return EMAIL_SPAMBOX_NAME;
90     default:
91         ThrowMsg(WrtDeviceApis::Commons::PlatformException,
92                  "Mailbox not found. Folder: " << folder);
93     }
94 }
95
96 FolderType toFolderType(email_mailbox_type_e mailboxType)
97 {
98     LOG_ENTER
99     switch (mailboxType) {
100     case EMAIL_MAILBOX_TYPE_INBOX: return INBOX;
101     case EMAIL_MAILBOX_TYPE_OUTBOX: return OUTBOX;
102     case EMAIL_MAILBOX_TYPE_SENTBOX: return SENTBOX;
103     case EMAIL_MAILBOX_TYPE_DRAFT: return DRAFTBOX;
104     case EMAIL_MAILBOX_TYPE_TRASH: return TRASHBOX;
105     case EMAIL_MAILBOX_TYPE_SPAMBOX: return SPAMBOX;
106     case EMAIL_MAILBOX_TYPE_ALL_EMAILS: return ALL_FOLDERS;
107     case EMAIL_MAILBOX_TYPE_SEARCH_RESULT: return SEARCHED;
108     case EMAIL_MAILBOX_TYPE_FLAGGED: return FLAGED;
109     case EMAIL_MAILBOX_TYPE_USER_DEFINED: return USERDEFINED_FOLDER;
110     default:
111         ThrowMsg(WrtDeviceApis::Commons::PlatformException, "Conversion failed.");
112     }
113 }
114
115 FolderType toFolderType(int mailboxType)
116 {
117     LOG_ENTER
118     switch (mailboxType) {
119         case EMAIL_MAILBOX_TYPE_INBOX: return INBOX;
120         case EMAIL_MAILBOX_TYPE_OUTBOX: return OUTBOX;
121         case EMAIL_MAILBOX_TYPE_SENTBOX: return SENTBOX;
122         case EMAIL_MAILBOX_TYPE_DRAFT: return DRAFTBOX;
123         case EMAIL_MAILBOX_TYPE_TRASH: return TRASHBOX;
124         case EMAIL_MAILBOX_TYPE_SPAMBOX: return SPAMBOX;
125         case EMAIL_MAILBOX_TYPE_ALL_EMAILS: return ALL_FOLDERS;
126         case EMAIL_MAILBOX_TYPE_SEARCH_RESULT: return SEARCHED;
127         case EMAIL_MAILBOX_TYPE_FLAGGED: return FLAGED;
128         case EMAIL_MAILBOX_TYPE_USER_DEFINED: return USERDEFINED_FOLDER;
129     default:
130         ThrowMsg(WrtDeviceApis::Commons::PlatformException, "Conversion failed.");
131     }
132 }
133
134
135 }
136 }
137 }