Beispiel #1
0
function handle_list_command($list_name, $cmd_name)
{
    switch ($cmd_name) {
        case 'list':
            $res = mmc_array_values($list_name);
            if (count($res) === 0) {
                update_sched_tasks($list_name);
                $res = mmc_array_values($list_name);
            }
            return jsonp($res);
        case 'create':
        case 'update':
            $key_name = @$_POST['name'];
            if ($key_name) {
                return result_ok(mmc_array_set($list_name, md5($key_name), $_POST));
            } else {
                return '{"res": false}';
            }
        case 'delete':
            mmc_array_del($list_name, md5($_POST['name']));
            if (mmc_array_length($list_name) === 0) {
                del_cached_file($list_name);
            }
            return result_ok(true);
        case 'flush':
            sched_changed();
            return '{"res": false}';
        case 'names':
            return jsonp(mmc_array_keys($list_name));
        case 'tags':
            $items = mmc_array_values($list_name);
            $output_tags = [];
            foreach ($items as $item) {
                $tags = @$item['tags'];
                if ($tags) {
                    $tag_list = explode(' ', $tags);
                    foreach ($tag_list as $tag) {
                        $output_tags[] = $tag;
                    }
                }
            }
            return jsonp($output_tags);
        default:
            die('{"res": false}');
    }
}
 public function testFilter()
 {
     $book = new \AuthorBooks\Model\Book();
     $results = array();
     result_ok($results[] = $book->create(array('title' => 'My Book I')));
     result_ok($results[] = $book->create(array('title' => 'My Book II')));
     result_ok($results[] = $book->create(array('title' => 'Perl Programming')));
     result_ok($results[] = $book->create(array('title' => 'My Book IV')));
     $books = new \AuthorBooks\Model\BookCollection();
     $books->fetch();
     count_ok(4, $books);
     $perlBooks = $books->filter(function ($item) {
         return $item->title == 'Perl Programming';
     });
     ok($perlBooks);
     is(1, $perlBooks->size());
     count_ok(1, $perlBooks->items());
     foreach ($results as $result) {
         ok($result->id);
         $record = new Book($result->id);
         $record->delete();
     }
     $someBooks = $books->splice(0, 2);
     is(2, count($someBooks));
 }
Beispiel #3
0
	function contactServer($url)
	{
		$this->server = new HubbubServer($url, true);
    if(!$this->server->isTrusted()) 
		{
			return($this->server->msg_trust_sendkey1());
		}
		return(result_ok());
	}
 public function testUpdateRaw()
 {
     $author = new Author();
     $ret = $author->create(array('name' => 'Mary III', 'email' => 'zz3@zz3', 'identity' => 'zz3'));
     result_ok($ret);
     $ret = $author->update(array('id' => new Raw('id + 3')));
     result_ok($ret);
 }
 public function testLoadOrCreate()
 {
     $results = array();
     $b = new Book();
     $ret = $b->create(array('title' => 'Should Not Load This'));
     result_ok($ret);
     $results[] = $ret;
     $ret = $b->create(array('title' => 'LoadOrCreateTest'));
     result_ok($ret);
     $results[] = $ret;
     $id = $b->id;
     ok($id);
     $ret = $b->loadOrCreate(array('title' => 'LoadOrCreateTest'), 'title');
     result_ok($ret);
     is($id, $b->id, 'is the same ID');
     $results[] = $ret;
     $b2 = new Book();
     $ret = $b2->loadOrCreate(array('title' => 'LoadOrCreateTest'), 'title');
     result_ok($ret);
     is($id, $b2->id);
     $results[] = $ret;
     $ret = $b2->loadOrCreate(array('title' => 'LoadOrCreateTest2'), 'title');
     result_ok($ret);
     ok($b2);
     ok($id != $b2->id, 'we should create anther one');
     $results[] = $ret;
     $b3 = new Book();
     $ret = $b3->loadOrCreate(array('title' => 'LoadOrCreateTest3'), 'title');
     result_ok($ret);
     ok($b3);
     ok($id != $b3->id, 'we should create anther one');
     $results[] = $ret;
     $b3->delete();
     foreach ($results as $r) {
         $book = new Book();
         $book->load($r->id);
         if ($book->id) {
             $book->delete();
         }
     }
 }
 public function testUpdateNull()
 {
     $author = new Author();
     $ret = $author->create(array('name' => 'Mary III', 'email' => 'zz3@zz3', 'identity' => 'zz3'));
     result_ok($ret);
     $id = $author->id;
     ok($author->update(array('name' => 'I'))->success);
     is($id, $author->id);
     is('I', $author->name);
     ok($author->update(array('name' => null))->success);
     is($id, $author->id);
     is(null, $author->name);
     ok($author->load($author->id)->success);
     is($id, $author->id);
     is(null, $author->name);
 }
Beispiel #7
0
 /**
  * @basedata false
  */
 public function testRecordUpdateWithRawSQL()
 {
     $n = new \AuthorBooks\Model\Book();
     $n->create(array('title' => 'book title', 'view' => 0));
     $this->assertEquals(0, $n->view);
     $ret = $n->update(array('view' => new Raw('view + 1')), array('reload' => true));
     $this->assertTrue($ret->success, $ret->message);
     $this->assertEquals(1, $n->view);
     $n->update(array('view' => new Raw('view + 3')), array('reload' => true));
     $ret = $n->reload();
     $this->assertTrue($ret->success);
     $this->assertEquals(4, $n->view);
     result_ok($n->delete());
 }
Beispiel #8
0
 function msg_trust_sendkey1()
 {
     // make a trust_sendkey1 message
     $msg = new HubbubMessage('trust_sendkey1');
     $msg->to($this->entity());
     $msg->data['author'] = $this->localEntity();
     $this->save();
     // make new key if there is none
     $this->ds['s_key_in'] = getDefault($this->ds['s_key_in'], randomHashId());
     if ($this->ds['s_url'] != '') {
         DB_UpdateField('servers', $this->ds['s_key'], 's_key_in', $this->ds['s_key_in']);
     }
     $msg->data['mykey'] = $this->ds['s_key_in'];
     // we need to save at this point because the other server will try to make a trust_sendkey2-request in the meantime
     // send message to other server
     $responseData = $msg->sendToUrl($this->ds['s_url']);
     if ($responseData['result'] == 'OK') {
         $this->ds['s_status'] = 'OK';
         $ret = result_ok();
     } else {
         $this->ds['s_status'] = 'fail';
         $this->ds['s_key_in'] = '';
         logError('notrace', '[OUT] trust_sendkey1 failed, server ' . $this->ds['s_url'] . ' says: ' . getDefault($responseData['reason'], $responseData['result']));
         $ret = result_fail('trust_sendkey1 failed: ' . getDefault($responseData['reason'], $responseData['result']));
     }
     return $ret;
 }