public function feedMain()
 {
     $CaNotes = new NotesCa_controller();
     $start = $this->request->query->get('start');
     $end = $this->request->query->get('end');
     //get local events
     $cacheName = App::$instance->tbId . ".vks.events.calendar.{$start}.{$end}";
     $events = App::$instance->cache->get($cacheName);
     if (!$events) {
         $events = Vks::where('start_date_time', ">=", $start)->where('start_date_time', '<=', $end)->with("connection_codes")->whereIn('status', [VKS_STATUS_PENDING, VKS_STATUS_APPROVED])->get();
         $cachedObj = new CachedObject($events, ['tag.' . $cacheName, "tag." . App::$instance->tbId . ".vks.events.calendar"]);
         App::$instance->cache->set($cacheName, $cachedObj, 3600 * 24 * 3);
     }
     //get events from central server
     if (Auth::isAdmin(App::$instance)) {
         //pull from central
         $getFromCA = Curl::get(ST::routeToCaApi("getVksWasInPeriodForTb/" . App::$instance->tbId . "/" . $start . "/" . $end));
         $getFromCA = json_decode($getFromCA);
         if ($getFromCA && $getFromCA->status == 200) {
             $getFromCA = $getFromCA->data;
         } else {
             $getFromCA = array();
         }
         //add to events container
         foreach ($getFromCA as $CAVks) {
             $CAVks->fromCa = true;
             $CAVks->tbFlag = $CaNotes->checkFlag($CAVks->id);
             $CAVks->isLinked = Vks::where('link_ca_vks_id', $CAVks->id)->count();
             $events[] = $CAVks;
         }
     }
     $events = $this->prepareEvents($events);
     print json_encode($events);
     //output
 }
Example #2
0
$app->user = new Auth();
//ST::makeDebug($init->user);
//$init->MQ->setMessage($init->opt->pm);
$app->tbId = CAAttendance::where('name', 'like', '%' . TB_PATTERN . '%')->where('is_tb', 1)->first()->id;
header($app->opt->header);
date_default_timezone_set($app->opt->timezone);
//require_once('../init.php');
//start schedule here
//-----------------------------------------------------------------------------
$now = date_create()->setTimezone(new DateTimeZone(NODE_TIME_ZONE));
$now->modify("+25 minutes");
$now->setTime($now->format('H'), $now->format('i'), 0);
$mskTime = clone $now;
//dump($now);
$mskTime->setTimezone(new DateTimeZone(App::$instance->opt->ca_timezone));
$CaNotes = new NotesCa_controller();
if ($now->format('i') % 15 == 0) {
    $events = Vks::where(function ($query) use($now) {
        $query->where('start_date_time', $now)->whereIn('status', [VKS_STATUS_APPROVED]);
    })->where(function ($query) {
        $query->where('flag', 1)->orWhere('record_required', 1);
    })->get(['id', 'start_date_time', 'end_date_time', 'title', 'record_required', 'status', 'approved_by', 'owner_id', 'is_simple', 'flag'])->toArray();
    $CaEventsTmp = CAInsideParticipant::where('attendance_id', App::$instance->tbId)->with(['vks' => function ($query) use($mskTime) {
        $query->where('start_date_time', $mskTime)->whereIn('status', [VKS_STATUS_APPROVED]);
    }])->get(['vks_id']);
    //add to events container
    $CaEvents = [];
    foreach ($CaEventsTmp as $CAVks) {
        if ($CAVks->vks) {
            $CAVks->vks->fromCa = true;
            $CAVks->vks->tbFlag = $CaNotes->checkFlag($CAVks->vks->id);