@@ -2160,4 +2160,46 @@ public function userListsPermissionsWithFollowingFiltersForFileOrFolderOfTheSpac
2160
2160
$ this ->getPermissionsList ($ user , $ fileOrFolder , $ space , $ resource , $ query )
2161
2161
);
2162
2162
}
2163
+
2164
+ /**
2165
+ * @When user :user expires the last created share:
2166
+ *
2167
+ * @param string $user
2168
+ * @param TableNode $table
2169
+ *
2170
+ * @return void
2171
+ */
2172
+ public function userExpiresTheLastCreatedShare (string $ user , TableNode $ table ): void {
2173
+ $ permissionID = $ this ->featureContext ->shareNgGetLastCreatedUserGroupShareID ();
2174
+ $ bodyRows = $ table ->getRowsHash ();
2175
+ if ($ bodyRows ['space ' ] === 'Personal ' || $ bodyRows ['space ' ] === 'Shares ' ) {
2176
+ $ space = $ this ->spacesContext ->getSpaceByName ($ user , $ bodyRows ['space ' ]);
2177
+ } else {
2178
+ $ space = $ this ->spacesContext ->getCreatedSpace ($ bodyRows ['space ' ]);
2179
+ }
2180
+ $ spaceId = $ space ["id " ];
2181
+
2182
+ $ resource = $ bodyRows ['resource ' ] ?? '' ;
2183
+ if ($ resource === '' && !\in_array ($ bodyRows ['space ' ], ['Personal ' , 'Shares ' ])) {
2184
+ $ itemId = $ space ['fileId ' ];
2185
+ } else {
2186
+ $ itemId = $ this ->spacesContext ->getResourceId ($ user , $ bodyRows ['space ' ], $ resource );
2187
+ }
2188
+ $ body = [];
2189
+ $ dateTime = new DateTime ("now " , new DateTimeZone ("UTC " ));
2190
+ $ body ['expirationDateTime ' ] = $ dateTime ->modify ('-5 minutes ' )->format ('Y-m-d\TH:i:s\Z ' );
2191
+
2192
+ $ this ->featureContext ->setResponse (
2193
+ GraphHelper::updateShare (
2194
+ $ this ->featureContext ->getBaseUrl (),
2195
+ $ this ->featureContext ->getStepLineRef (),
2196
+ $ user ,
2197
+ $ this ->featureContext ->getPasswordForUser ($ user ),
2198
+ $ spaceId ,
2199
+ $ itemId ,
2200
+ \json_encode ($ body ),
2201
+ $ permissionID
2202
+ )
2203
+ );
2204
+ }
2163
2205
}
0 commit comments