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