03e41a0cc851e135c91a51c8cc27a0d5b39f867e
[web.Reader] / Reader / Api / Reader_read.php
1
2 <?php
3 require_once 'Reader.php';
4
5 class Reader_Api_Reader_read extends Reader
6 {   
7     function getAuth()
8     {
9         //fwrite(fopen("/tmp/input.data", "a"),print_r($_COOKIE, true));
10         
11         if (!$this->getAuthUser()) {
12             $this->jerr("Login is required");
13         }
14         
15         return true;
16     }
17     
18     function get()
19     {
20         $feed = empty($_REQUEST['feed']) ? 0 : (int) $_REQUEST['feed'];
21         
22         $view_has_read = empty($_REQUEST['show_read']) ? 0 : 1;
23         
24         //DB_DataObject::debugLevel(1);
25         $f = DB_DataObject::factory('reader_feed');
26         if (!$f->get($feed)) {
27             $this->jerr("Invalid feed");
28         }
29         
30         // list of feeds and how many unread..
31         // which are
32         //DB_DataObject::debugLevel(1);
33         
34         $p= DB_DataObject::factory('reader_sub');
35         $p->person_id = $this->authUser->id;
36         $p->feed_id = $feed;
37         if (!$p->count()) {
38             $this->jerr("not subscribed to this feed...");
39         }
40         $read = DB_DataObject::factory('reader_read');
41         $read->autoJoin();
42         $read->feed_id = $feed;
43         if (!$view_has_read) {
44             $read->has_read = 0;
45         } else {
46             // last login?
47             $read->whereAdd('reader_read.read_dt > NOW() - INTERVAL 1 DAY OR reader_read.has_read = 0');
48         }
49         
50         $read->whereAdd('join_article_id_id.fetched = 1');
51         $read->person_id = $this->authUser->id;
52         // oldest first..
53         $read->orderBy('join_article_id_id.published_dt ASC');
54         
55         
56         $this->jdata($read->fetchAll(false,false, 'toPublicArray'));
57     }
58 }