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)); }
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); }
/** * @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()); }
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; }