22
33namespace CodebarAg \DocuWare ;
44
5+ use CodebarAg \DocuWare \DTO \Cookie ;
56use CodebarAg \DocuWare \Events \DocuWareResponseLog ;
67use CodebarAg \DocuWare \Requests \Auth \GetLogoffRequest ;
8+ use CodebarAg \DocuWare \Requests \Auth \PostLoginRequest ;
79use CodebarAg \DocuWare \Support \Auth ;
810use CodebarAg \DocuWare \Support \EnsureValidCookie ;
911use CodebarAg \DocuWare \Support \EnsureValidCredentials ;
12+ use CodebarAg \DocuWare \Support \EnsureValidResponse ;
13+ use GuzzleHttp \Cookie \CookieJar ;
1014use Saloon \Exceptions \InvalidResponseClassException ;
1115use Saloon \Exceptions \PendingRequestException ;
1216
1317class DocuWare
1418{
19+ /**
20+ * @throws InvalidResponseClassException
21+ * @throws \Throwable
22+ * @throws \ReflectionException
23+ * @throws PendingRequestException
24+ */
25+ public function cookie (string $ url , string $ username , string $ password , $ rememberMe = false , $ redirectToMyselfInCaseOfError = false , $ licenseType = null ): Cookie
26+ {
27+ $ cookieJar = new CookieJar ();
28+
29+ $ request = new PostLoginRequest (
30+ $ url ,
31+ $ username ,
32+ $ password ,
33+ $ rememberMe ,
34+ $ redirectToMyselfInCaseOfError ,
35+ $ licenseType );
36+
37+ $ request ->config ()->add ('cookies ' , $ cookieJar );
38+
39+ $ response = $ request ->send ();
40+
41+ event (new DocuWareResponseLog ($ response ));
42+
43+ EnsureValidResponse::from ($ response );
44+
45+ return Cookie::make ($ cookieJar );
46+
47+ }
48+
1549 /**
1650 * @throws InvalidResponseClassException
1751 * @throws \Throwable
@@ -21,7 +55,6 @@ class DocuWare
2155 public function login (): void
2256 {
2357 EnsureValidCredentials::check ();
24-
2558 // Checks if already logged in, if not, logs in
2659 EnsureValidCookie::check ();
2760 }
0 commit comments