Example #1
0
 public function createpost()
 {
     $f3 = \Base::instance();
     $this->_requireLogin();
     $user = $f3->get('user');
     $user_obj = $f3->get('user_obj');
     $user_org_links = $f3->get('user_org_links');
     $db = $f3->get('db.instance');
     $name = $f3->get('POST.name');
     $priority = $f3->get('POST.priority');
     $text = $f3->get('POST.content');
     $errors = [];
     if (!empty($name)) {
         $name = $f3->clean($name);
         if (strlen($name) < 7) {
             $errors[] = 'Ticket name must be at least 8 characters long';
         }
     } else {
         $errors[] = 'Ticket name cannot be empty';
     }
     $priority = (int) $priority;
     if ($priority > 4 or $priority < 1) {
         $errors[] = 'Priority is 4 max, 1 min.';
     }
     if (!empty($text)) {
         $text = $f3->clean($text);
         if (strlen($text) < 30) {
             $errors[] = 'Ticket content must be at least 30 characters long.';
         }
     } else {
         $errors[] = 'Ticket text cannot be empty';
     }
     if (empty($errors)) {
         // No errors, create ticket
         // Ticket
         $ticket = new Ticket();
         $ticket->memberId = $user['id'];
         $ticket->status = 'active';
         $ticket->statusColor = 'red';
         $ticket->assignedUserId = 0;
         $ticket->title = $name;
         $ticket->create_time = date("Y-m-d H:i:s");
         $ticket->priority = $priority;
         $ticket->save();
         // First ticket message
         $ticketmsg = new TicketMessage();
         $ticketmsg->ticketId = $ticket->id;
         $ticketmsg->text = $text;
         $ticketmsg->senderId = $user['id'];
         $ticketmsg->sendTime = date("Y-m-d H:i:s");
         $ticketmsg->save();
         // Redirect to ticket
         $f3->reroute('/support/ticket/' . $ticket->id);
     } else {
         // Show him his errors
         $f3->set('errors', $errors);
     }
     $f3->set('target', 'support/new.html');
     $this->_render('base.html');
 }
Example #2
0
 public function viewpost()
 {
     $f3 = \Base::instance();
     $this->_requireLogin();
     $user = $f3->get('user');
     $user_obj = $f3->get('user_obj');
     $user_org_links = $f3->get('user_org_links');
     $db = $f3->get('db.instance');
     $ticketId = $f3->get('PARAMS.id');
     $ticket = new Ticket();
     $ticket->load($ticketId);
     if ($ticket->loaded() and $ticket->memberId == $user['id']) {
         $text = $f3->get('POST.text');
         $text = $f3->clean($text);
         if (strlen($text) > 10) {
             // Add response and redirect
             $ticketmsg = new TicketMessage();
             $ticketmsg->ticketId = $ticket->id;
             $ticketmsg->text = $text;
             $ticketmsg->senderId = $user['id'];
             $ticketmsg->sendTime = date("Y-m-d H:i:s");
             $ticketmsg->save();
             // Set ticket to active if closed
             if ($ticket->status == 'closed') {
                 $ticket->status = 'active';
                 $ticket->save();
             }
             // Sending a mail to admins
             $admins = \Helpers\User::getUsersRankedHigherThen(1);
             $adminEmails = [];
             foreach ($admins as $admin) {
                 $adminEmails[] = $admin['email'];
             }
             $f3->set('ticket_id', $ticket->id);
             $f3->set('ticket_text', $text);
             $f3->set('ticket_priority', $ticket->priority);
             SendingAPI::send(['mailTo' => $adminEmails, 'mailSubject' => 'An answer has been made to a ticket', 'mailContents' => ['html' => \Template::instance()->render('mails/ticketAnswer.html'), 'text' => "An answer has been made to a ticket. \n\n" . "From: " . $user['name'] . "\n" . "Priority: " . $ticket->priority . "\n" . "URL: " . 'https://squarems.net/dashboard/admin/support/ticket/' . $ticket->id . "\n\n" . $text . "\n\n" . "You can unsubscribe in your user settings: 'Notifications'."]]);
             $f3->reroute($f3->get('PATH'));
         } else {
             new Notification('Text must be at least 10 characters long.', 'danger', true);
             $f3->reroute($f3->get('PATH') . '?content=' . urlencode($text));
         }
     } else {
         $f3->set('target', 'support/unauthorized.html');
     }
 }
Example #3
0
 public function viewpost()
 {
     $f3 = \Base::instance();
     $this->_requireLogin();
     $this->_requireRank('support');
     $user = $f3->get('user');
     $user_obj = $f3->get('user_obj');
     $user_org_links = $f3->get('user_org_links');
     $db = $f3->get('db.instance');
     $ticketId = $f3->get('PARAMS.id');
     $ticket = new Ticket();
     $ticket->load($ticketId);
     if ($ticket->loaded()) {
         if ($f3->get('GET.action') == 'changestatus') {
             $status = $f3->get('POST.status');
             if (!empty($status) and ctype_alpha($status)) {
                 $ticket->status = $status;
                 $ticket->save();
                 $f3->reroute($f3->get('PATH'));
             }
         }
         $text = $f3->get('POST.text');
         $text = $f3->clean($text);
         if (strlen($text) > 10) {
             // Add response and redirect
             $ticketmsg = new TicketMessage();
             $ticketmsg->ticketId = $ticket->id;
             $ticketmsg->text = $text;
             $ticketmsg->senderId = $user['id'];
             $ticketmsg->sendTime = date("Y-m-d H:i:s");
             $ticketmsg->save();
             // Set ticket to active if closed
             if ($ticket->status == 'closed') {
                 $ticket->status = 'active';
                 $ticket->save();
             }
             $f3->reroute($f3->get('PATH'));
         } else {
             new Notification('Text must be at least 10 characters long.', 'danger', true);
             $f3->reroute($f3->get('PATH') . '?content=' . urlencode($text));
         }
     } else {
         $f3->set('target', '404.html');
     }
 }
 public function getTickets($eventid)
 {
     $tickets = Ticket::where('eventid', $eventid)->get();
     if ($tickets == null) {
         $array = array('success' => false, 'message' => 'No tickets found for this event');
         return json_encode($array);
     }
     $array = array('success' => true, 'tickets' => $tickets);
     return json_encode($array);
 }
<?php

use Models\Ticket;
use Lib\OAuth2\OAuth2;
$app->group('/ticket', function () use($app, $authorize, $resourceServer) {
    //create ticket//
    $app->post('/', $authorize(), function () use($app, $resourceServer) {
        $ticket = new Ticket();
        $participantid = $app->request->post('participantid');
        $eventid = $app->request->post('eventid');
        $orderid = $app->request->post('orderid');
        //perform insertion//
        $json = $ticket->addTicket($participantid, $eventid, $orderid);
        echo $json;
    });
    //get all tickets for an event//
    $app->get('/event/:eventid/', function ($eventid) use($app, $resourceServer) {
        $ticket = new Ticket();
        $json = $ticket->getTickets($eventid);
        echo $json;
    });
});
Example #6
0
 public function createpost()
 {
     $f3 = \Base::instance();
     $this->_requireLogin();
     $user = $f3->get('user');
     $user_obj = $f3->get('user_obj');
     $user_org_links = $f3->get('user_org_links');
     $db = $f3->get('db.instance');
     $name = $f3->get('POST.name');
     $priority = $f3->get('POST.priority');
     $text = $f3->get('POST.content');
     $errors = [];
     if (!empty($name)) {
         $name = $f3->clean($name);
         if (strlen($name) < 7) {
             $errors[] = 'Ticket name must be at least 8 characters long';
         }
     } else {
         $errors[] = 'Ticket name cannot be empty';
     }
     $priority = (int) $priority;
     if ($priority > 4 or $priority < 1) {
         $errors[] = 'Priority is 4 max, 1 min.';
     }
     if (!empty($text)) {
         $text = $f3->clean($text);
         if (strlen($text) < 30) {
             $errors[] = 'Ticket content must be at least 30 characters long.';
         }
     } else {
         $errors[] = 'Ticket text cannot be empty';
     }
     if (empty($errors)) {
         // No errors, create ticket
         // Ticket
         $ticket = new Ticket();
         $ticket->memberId = $user['id'];
         $ticket->status = 'active';
         $ticket->statusColor = 'red';
         $ticket->assignedUserId = 0;
         $ticket->title = $name;
         $ticket->create_time = date("Y-m-d H:i:s");
         $ticket->priority = $priority;
         $ticket->save();
         // First ticket message
         $ticketmsg = new TicketMessage();
         $ticketmsg->ticketId = $ticket->id;
         $ticketmsg->text = $text;
         $ticketmsg->senderId = $user['id'];
         $ticketmsg->sendTime = date("Y-m-d H:i:s");
         $ticketmsg->save();
         // Sending a mail to admins
         $admins = User::getUsersRankedHigherThen(1);
         $adminEmails = [];
         foreach ($admins as $admin) {
             $adminEmails[] = $admin['email'];
         }
         $f3->set('ticket_id', $ticket->id);
         $f3->set('ticket_text', $text);
         $f3->set('ticket_priority', $priority);
         SendingAPI::send(['mailTo' => $adminEmails, 'mailSubject' => 'New support ticket opened', 'mailContents' => ['html' => \Template::instance()->render('mails/newTicket.html'), 'text' => "A new ticket has just been opened. \n\n" . "From: " . $user['name'] . "\n" . "Priority: " . $priority . "\n" . "URL: " . 'https://squarems.net/dashboard/admin/support/ticket/' . $ticket->id . "\n\n" . $text . "\n\n" . "You can unsubscribe in your user settings: 'Notifications'."]]);
         // Redirect to ticket
         $f3->reroute('/support/ticket/' . $ticket->id);
     } else {
         // Show him his errors
         $f3->set('errors', $errors);
     }
     $f3->set('target', 'support/new.html');
     $this->_render('base.html');
 }
 //get specific item//
 $app->get('/:itemid/', $authorize(), function ($itemid) use($app, $resourceServer) {
     $item = new Item();
     $json = $item->getItem($itemid);
     echo $json;
 });
 //determine prize winner//
 $app->post('/winner/', $authorize(), function () use($app, $resourceServer) {
     $winner = new Winner();
     $item = new Item();
     $itemid = $app->request->post('itemid');
     $item = $item->getItem($itemid);
     $item = json_decode($item);
     //check that item exists//
     if ($item->success) {
         $ticket = new Ticket();
         $item = $item->item;
         //get all the tickets for the event and perform messy json conversions -_- //
         $ticketDecode = json_decode($ticket->getTickets($item->eventid), true);
         $tickets = $ticketDecode['tickets'];
         $event = new Event();
         //get currently logged on host//
         $userid = $resourceServer->getAccessToken()->getSession()->getOwnerId();
         //verify that current host owns the event of the item//
         if ($event->verifyHost($item->eventid, $userid)) {
             //pick a random ticket//
             if (sizeof($tickets) > 0) {
                 $numTix = sizeof($tickets);
                 $luckyNum = mt_rand(0, $numTix);
                 $ticket = $tickets[$luckyNum];
                 //more messy json conversions...//