Beispiel #1
0
 public function testToSubgroups()
 {
     $bindings = array('location' => 'a', 'summary' => 'b', 'note' => 'c', 'freq' => 'hourly', 'repeat_interval' => 1);
     $subgroups = ConvertArray::toSubgroups($bindings);
     $this->assertArrayHasKey('location', $subgroups['activity']);
     $this->assertArrayHasKey('summary', $subgroups['info']);
     $this->assertArrayHasKey('note', $subgroups['info']);
     $this->assertArrayHasKey('freq', $subgroups['recurrence']);
     $this->assertEquals(count($subgroups['activity']), 1);
     $this->assertEquals(count($subgroups['info']), 2);
     $this->assertEquals(count($subgroups['recurrence']), 2);
 }
Beispiel #2
0
 /**
  * Create the corresponding entries in recurrence and activity information
  * used by the activity.
  * @param  mixed[] $bindings Bindings for the activity. MUST include
  *                           parent id (label_id or calendar_id).
  * @return mixed[] Promise results with whether or not activity and its corresponding
  *                 entries were created successfully. See Database->query().
  */
 public function create($bindings)
 {
     try {
         $result = $this->db->beginTransaction();
         $this->checkForError($result);
         $bindings = ConvertArray::toSubgroups($bindings);
         $this->createActivityInfo($bindings['info']);
         $bindings['activity']['activity_info_id'] = $bindings['recurrence']['activity_info_id'] = $this->db->lastInsertId();
         $this->createRecurrence($bindings['recurrence']);
         $result = $this->createSelf($bindings['activity']);
         $this->checkForError($result['success']);
         return $this->db->commit();
     } catch (\Exception $e) {
         error_log($e->getMessage());
         return array('success' => false, 'title' => 'An error occurred while creating activity.', 'message' => $e->getMessage());
     }
 }