MCPcopy Create free account
hub / github.com/Rello/analytics / createShare

Method createShare

lib/Db/ShareMapper.php:120–155  ·  view source on GitHub ↗

* Create a new share * @param $item_type * @param $item_source * @param $type * @param $uid_owner * @param $token * @return bool * @throws Exception */

($item_type, $item_source, $type, $uid_owner, $token)

Source from the content-addressed store, hash-verified

118 * @throws Exception
119 */
120 public function createShare($item_type, $item_source, $type, $uid_owner, $token)
121 {
122 $sql = $this->db->getQueryBuilder();
123 $sql->from(self::TABLE_NAME)
124 ->Select('id')
125 ->where($sql->expr()->eq('item_type', $sql->createNamedParameter($item_type)))
126 ->andWhere($sql->expr()->eq('item_source', $sql->createNamedParameter($item_source)))
127 ->andWhere($sql->expr()->eq('type', $sql->createNamedParameter($type)))
128 ->andWhere($sql->expr()->eq('uid_owner', $sql->createNamedParameter($uid_owner)))
129 ->andWhere($sql->expr()->eq('uid_initiator', $sql->createNamedParameter($this->userSession->getUser()->getUID())));
130 $statement = $sql->executeQuery();
131 $result = $statement->fetchAll();
132 $statement->closeCursor();
133
134 if ($result && ($type !== 3)) {
135 // don´t create double shares
136 // multiple link shares (3) are possible
137 return false;
138 } else {
139 $currentDateTime = (new \DateTime())->format('Y-m-d H:i:s');
140 $sql = $this->db->getQueryBuilder();
141 $sql->insert(self::TABLE_NAME)
142 ->values([
143 'item_type' => $sql->createNamedParameter($item_type),
144 'item_source' => $sql->createNamedParameter($item_source),
145 'type' => $sql->createNamedParameter($type),
146 'uid_owner' => $sql->createNamedParameter($uid_owner),
147 'uid_initiator' => $sql->createNamedParameter($this->userSession->getUser()->getUID()),
148 'token' => $sql->createNamedParameter($token),
149 'permissions' => $sql->createNamedParameter(1),
150 'created_at' => $sql->createNamedParameter($currentDateTime),
151 ]);
152 $sql->executeStatement();
153 }
154 return $sql->getLastInsertId();
155 }
156
157 /**
158 * Get all shares of a report

Callers 1

createMethod · 0.80

Calls 2

getUIDMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected