/** * Create a new lab * @param <type> $name * @return <type> */ public function create($name) { if ($name == "") { throw new Exception(self::ERROR_INVALID_NAME); } $code_generator = new App_Value_Code(); do { $code = $code_generator->get(); } while ($this->db->findByCode($code)->count() != 0); $lab = $this->db->create(); $lab->name = $name; $lab->code = $code; if ($lab->isValid()) { try { $lab->save(); } catch (Exception $e) { throw new Exception(self::ERROR_NOT_SAVED); } } else { throw new Exception(self::ERROR_NOT_VALID . $lab->getErrorStackAsString()); } return $lab->toArray(); }