Imported Upstream version 0.2.1
[debian/pino.git] / src / rest_api_acc.vala
1 /* rest_api_acc.vala
2  *
3  * Copyright (C) 2009-2010  troorl
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Author:
19  *      troorl <troorl@gmail.com>
20  */
21
22 using Auth;
23 using Xml;
24
25 namespace RestAPI {
26
27 public class RestAPIAcc : RestAPIAbstract {
28         
29         public RestAPIAcc(Account? _account) {
30                 base(_account);
31         }
32         
33         public RestUrls get_urls() {
34                 return urls;
35         }
36         
37         /* get userpic url of a current user */
38         public string? get_userpic_url() {
39                 if(account == null)
40                         return null;
41                 
42                 string req_url = urls.user().printf(account.login);
43                 string data = make_request(req_url, "GET",
44                         new HashTable<string, string>(null, null), false);
45                 
46                 return parse_userpic_url(data);
47         }
48         
49         private string parse_userpic_url(string data) {
50                 Xml.Doc* xmlDoc = Parser.parse_memory(data, (int)data.size());
51                 Xml.Node* rootNode = xmlDoc->get_root_element();
52                 
53                 string result = "";
54                 
55                 Xml.Node* iter;
56                 for(iter = rootNode->children; iter != null; iter = iter->next) {
57                         if (iter->type != ElementType.ELEMENT_NODE)
58                                 continue;
59                         
60                         if(iter->name == "profile_image_url") {
61                                 result = iter->get_content();
62                                 break;
63                         }
64                 } delete iter;
65                 
66                 return result;
67         }
68 }
69
70 }