Passed
Push — master ( f10e67...52beba )
by Julito
07:56
created

WSCMInbox::unreadMessage()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 18
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 11
nc 2
nop 2
dl 0
loc 18
rs 9.9
c 0
b 0
f 0
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
require_once __DIR__.'/../inc/global.inc.php';
6
require_once __DIR__.'/cm_webservice.php';
7
8
/**
9
 * Description of cm_soap_inbox.
10
 *
11
 * @author marcosousa
12
 */
13
class WSCMInbox extends WSCM
14
{
15
    /*public function unreadMessage($username, $password)
16
    {
17
        if ("valid" == $this->verifyUserPass($username, $password)) {
18
            $table_message = Database::get_main_table(TABLE_MESSAGE);
19
            $user_id = UserManager::get_user_id_from_username($username);
20
            $condition_msg_status = ' msg_status = 1 ';
21
22
            $sql_query = "SELECT COUNT(*) as number_messages 
23
                          FROM $table_message 
24
                          WHERE $condition_msg_status AND user_receiver_id=".$user_id;
25
26
            $sql_result = Database::query($sql_query);
27
            $result = Database::fetch_array($sql_result);
28
29
            return $result['number_messages'];
30
        }
31
32
        return "0";
33
    }
34
35
    public function get_message_id(
36
        $username,
37
        $password,
38
        $from,
39
        $number_of_items
40
    ) {
41
        if ("valid" == $this->verifyUserPass($username, $password)) {
42
            $user_id = UserManager::get_user_id_from_username($username);
43
            $table_message = Database::get_main_table(TABLE_MESSAGE);
44
45
            $sql_query = "SELECT id FROM $table_message ".
46
                                     " WHERE user_receiver_id=".$user_id." AND msg_status IN (0,1)".
47
                                     " ORDER BY send_date LIMIT $from,$number_of_items";
48
49
            $sql_result = Database::query($sql_query);
50
            $message = "#";
51
            while ($result = Database::fetch_row($sql_result)) {
52
                $message .= $result[0]."#";
53
            }
54
55
            return $message;
56
        } else {
57
            return get_lang('Login failed - incorrect login or password.');
58
        }
59
    }
60
61
    public function get_message_data($username, $password, $message_id, $field)
62
    {
63
        if ("valid" == $this->verifyUserPass($username, $password)) {
64
            $htmlcode = false;
65
            $user_id = UserManager::get_user_id_from_username($username);
66
            switch ($field) {
67
                case 'sender':
68
                    $field_table = "user_sender_id";
69
                    break;
70
                case 'title':
71
                    $htmlcode = true;
72
                    $field_table = "title";
73
                    break;
74
                case 'date':
75
                    $field_table = "send_date";
76
                    break;
77
                case 'status':
78
                    $field_table = "msg_status";
79
                    break;
80
                case 'content':
81
                    $this->set_message_as_read($user_id, $message_id);
82
                    $htmlcode = true;
83
                    $field_table = "content";
84
                    break;
85
                default:
86
                    $field_table = "title";
87
            }
88
89
            $table_message = Database::get_main_table(TABLE_MESSAGE);
90
91
            $sql_query = "SELECT ".$field_table." FROM $table_message ".
92
                                     " WHERE user_receiver_id=".$user_id." AND id=".$message_id;
93
94
            $sql_result = Database::query($sql_query);
95
            $result = Database::fetch_row($sql_result);
96
97
            return $htmlcode ? html_entity_decode($result[0]) : $result[0];
98
        } else {
99
            return get_lang('Login failed - incorrect login or password.');
100
        }
101
    }
102
103
    public function get_message_id_sent(
104
        $username,
105
        $password,
106
        $from,
107
        $number_of_items
108
    ) {
109
        $from = (int) $from;
110
        $number_of_items = (int) $number_of_items;
111
112
        if ("valid" == $this->verifyUserPass($username, $password)) {
113
            $user_id = UserManager::get_user_id_from_username($username);
114
115
            $table_message = Database::get_main_table(TABLE_MESSAGE);
116
            $sql_query = "SELECT id FROM $table_message 
117
                          WHERE user_sender_id=".$user_id." AND msg_status=".MESSAGE_STATUS_OUTBOX." 					 
118
                          ORDER BY send_date
119
                          LIMIT $from,$number_of_items";
120
121
            $sql_result = Database::query($sql_query);
122
            $message = "#";
123
            while ($result = Database::fetch_row($sql_result)) {
124
                $message .= $result[0]."#";
125
            }
126
127
            return $message;
128
        }
129
130
        return get_lang('InvalidId');
131
    }
132
133
    public function get_message_data_sent($username, $password, $id, $field)
134
    {
135
        if ("valid" == $this->verifyUserPass($username, $password)) {
136
            $htmlcode = false;
137
            switch ($field) {
138
                case 'sender':
139
                    $field_table = "user_sender_id";
140
                    break;
141
                case 'title':
142
                    $htmlcode = true;
143
                    $field_table = "title";
144
                    break;
145
                case 'date':
146
                    $field_table = "send_date";
147
                    break;
148
                case 'status':
149
                    $field_table = "msg_status";
150
                    break;
151
                case 'content':
152
                    $htmlcode = true;
153
                    $field_table = "content";
154
                    break;
155
                default:
156
                    $field_table = "title";
157
            }
158
            $user_id = UserManager::get_user_id_from_username($username);
159
            $table_message = Database::get_main_table(TABLE_MESSAGE);
160
            $sql_query = "SELECT ".$field_table." FROM $table_message ".
161
                         " WHERE user_sender_id=".$user_id." AND id=".$id;
162
            $sql_result = Database::query($sql_query);
163
            $result = Database::fetch_row($sql_result);
164
165
            return $htmlcode ? html_entity_decode($result[0]) : $result[0];
166
        } else {
167
            return get_lang('Login failed - incorrect login or password.');
168
        }
169
    }
170
171
    public function message_send(
172
        $username,
173
        $password,
174
        $receiver_user_id,
175
        $subject,
176
        $content
177
    ) {
178
        //TODO: verificar data de envio. Esta divergindo de data!
179
        if ("valid" == $this->verifyUserPass($username, $password)) {
180
            $group_id = intval(0);
181
            $parent_id = intval(0);
182
            $edit_message_id = intval(0);
183
            $sent_email = false;
184
            $user_sender_id = UserManager::get_user_id_from_username($username);
185
186
            $subject = htmlentities($subject);
187
            $content = htmlentities($content);
188
189
            $table_message = Database::get_main_table(TABLE_MESSAGE);
190
191
            $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id, update_date ) ".
192
                     " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')";
193
            Database::query($query);
194
195
            $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id, update_date ) ".
196
                           " VALUES ('$user_sender_id', '$receiver_user_id', '4', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')";
197
            Database::query($query);
198
199
            $inbox_last_id = Database::insert_id();
200
201
            return $inbox_last_id;
202
        } else {
203
            return get_lang('Login failed - incorrect login or password.');
204
        }
205
    }
206
    */
207
}
208
209
/*
210
echo "aqui: ";
211
$aqui = new WSCMInbox();
212
213
//print_r($aqui->unreadMessage("aluno", "e695f51fe3dd6b7cf2be3188a614f10f"));
214
print_r($aqui->message_send("aluno", "356a192b7913b04c54574d18c28d46e6395428ab", "1", "Título da mensagem", "Conteúdo da mensagem com ç ã"));
215
216
217
*/
218