2015-02-18 15:50:31 -02:00

96 lines
2.0 KiB
PHP

<?php
class Controller_api_blast extends Crunchbutton_Controller_RestAccount {
public function init() {
if (!c::admin()->permission()->check(['global', 'blast-all', 'blast-view' ])) {
header('HTTP/1.1 401 Unauthorized');
exit;
}
switch ($this->method()) {
case 'delete':
$blast = Blast::o(c::getPagePiece(2));
if (!$blast->id_blast) {
header('HTTP/1.0 404 Not Found');
exit;
}
$blast->status = 'canceled';
$blast->save();
break;
case 'get':
$blast = Blast::o(c::getPagePiece(2));
if (!$blast->id_blast) {
header('HTTP/1.0 404 Not Found');
exit;
}
switch (c::getPagePiece(3)) {
case 'users':
echo $blast->users()->json();
exit;
break;
case 'run':
$blast->run();
exit;
break;
default:
$out = $blast->exports();
foreach ($blast->users() as $user) {
$out['users'][] = $user->exports();
}
echo json_encode($out);
exit;
}
break;
case 'post':
if (c::getPagePiece(2) == 'sample') {
$data = Blast::parseCsv($this->request()['sample']);
$sample = [];
$max = 10;
$i = 0;
$blast = new Blast([
'content' => $this->request()['content']
]);
foreach ($data as $item) {
$phone = $item['phone'];
if ($phone) {
unset($item['phone']);
$user = new Blast_User([
'phone' => $phone,
'data' => json_encode($item)
]);
$user->_blast = $blast;
$sample[] = ['phone' => $phone, 'message' => $user->message()];
$i++;
}
if ($max == $i) {
break;
}
}
echo json_encode($sample);
exit;
} else {
$blast = new Blast($this->request());
$blast->status = 'new';
$blast->id_admin = c::user()->id_admin;
$blast->type = 'phone';
$blast->save();
$blast->importData($this->request()['data']);
$blast = Blast::o($blast->id_blast);
}
break;
}
echo $blast->json();
exit;
}
}