/** * Convert data array into entity * * @return QuickTag\Model\StoredTag * @param array $data * @access public */ public function build($data) { $object = new StoredTag(); if ($data['tag_user_context'] !== null) { $object->setUserContext($data['tag_user_context']); } if ($data['tag_weight'] !== null) { $object->setWeight($data['tag_weight']); } $object->setTagId($data['tag_id']); $object->setTagCreated($data['tag_date_created']); $object->setTitle($data['tag_title']); return $object; }
/** * Create a tag * * @access protected * @return boolean the result true if removed * @param QuickTag\Model\StoredTag $tag * @throws QuickTag\QuickTagException if database operation fails */ protected function createTag(StoredTag $tag) { $result = null; try { if ($tag->getTagCreated() === null) { $tag->setTagCreated(new DateTime()); } # new tag store it $result = $this->gateway->insertQuery()->start()->addColumn('tag_title', $tag->getTitle())->addColumn('tag_weight', $tag->getWeight())->addColumn('tag_user_context', $tag->getUserContext())->addColumn('tag_date_created', $tag->getTagCreated())->end()->insert(); if ($result) { $tag->setTagId((int) $this->gateway->lastInsertId()); } # normalise the return if ($result === null) { $result = false; } } catch (DBALGatewayException $exception) { throw new QuickTagException($exception->getMessage(), 0, $exception); } return $result; }
public function testEntityDemolish() { $tag_id = 1; $tag_user_context = 3; $tag_date_created = new DateTime(); $tag_weight = 3.56; $tag_title = 'finance'; $data = array('tag_id' => $tag_id, 'tag_user_context' => $tag_user_context, 'tag_date_created' => $tag_date_created, 'tag_weight' => $tag_weight, 'tag_title' => $tag_title); $builder = new TagBuilder(); $entity = new StoredTag(); $entity->setTagId($tag_id); $entity->setUserContext($tag_user_context); $entity->setTagCreated($tag_date_created); $entity->setWeight($tag_weight); $entity->setTitle($tag_title); $this->assertEquals($data, $builder->demolish($entity)); }
/** * Creates a Tag * * @access public * @return string a json response */ public function postTagAction(Application $app, Request $req) { $response = array('msg' => null, 'result' => null); # Validate Params $errors = $this->getValidator()->validateValue(array('tagTitle' => $req->get('tagTitle'), 'tagWeight' => $req->get('tagWeight')), $this->getValidationRules()); if (count($errors) > 0) { $this->getContainer()->abort(400, $this->serializeValidationErrors($errors)); } $tag = new StoredTag(); $tag->setTitle((string) $req->get('tagTitle')); $tag->setWeight((double) $req->get('tagWeight')); $tag->setTagCreated(new DateTime()); $response['result'] = $this->getTagLibrary()->storeTag($tag); $response['msg'] = sprintf('Stored new tag with title %s tag at id %s', $tag->getTitle(), $tag->getTagId()); return $this->response($response, 200); }