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

Method createShare

lib/Db/ShareMapper.php:117–152  ·  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

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