@@ -15,6 +15,13 @@ abstract class SiteResourceCommand extends SiteCommand
15
15
*/
16
16
protected $ site ;
17
17
18
+ /**
19
+ * Resource ID.
20
+ *
21
+ * @var int
22
+ */
23
+ protected $ siteResourceId = 0 ;
24
+
18
25
/**
19
26
* Site resource path.
20
27
*
@@ -23,7 +30,17 @@ abstract class SiteResourceCommand extends SiteCommand
23
30
abstract public function siteResourcePath ();
24
31
25
32
/**
26
- * Set associated site.
33
+ * Site resource class.
34
+ *
35
+ * @return string|null
36
+ */
37
+ public function siteResourceClass ()
38
+ {
39
+ //
40
+ }
41
+
42
+ /**
43
+ * Set associated site and execute command on site server.
27
44
*
28
45
* @param \Laravel\Forge\Sites\Site $site
29
46
*
@@ -34,9 +51,43 @@ public function for(Site $site)
34
51
$ this ->site = $ site ;
35
52
$ this ->setItemId ($ site ->id ());
36
53
54
+ return $ this ->on ($ site ->getServer ());
55
+ }
56
+
57
+ /**
58
+ * Set site resource ID.
59
+ *
60
+ * @param int $resourceId
61
+ *
62
+ * @return static
63
+ */
64
+ public function setSiteResourceId (int $ resourceId )
65
+ {
66
+ $ this ->siteResourceId = $ resourceId ;
67
+
37
68
return $ this ;
38
69
}
39
70
71
+ /**
72
+ * Get site resource ID.
73
+ *
74
+ * @return int
75
+ */
76
+ public function getSiteResourceId (): int
77
+ {
78
+ return $ this ->siteResourceId ;
79
+ }
80
+
81
+ /**
82
+ * Get associated site.
83
+ *
84
+ * @return \Laravel\Forge\Sites\Site
85
+ */
86
+ public function getSite (): Site
87
+ {
88
+ return $ this ->site ;
89
+ }
90
+
40
91
/**
41
92
* HTTP request URL.
42
93
*
@@ -51,6 +102,18 @@ public function requestUrl(Server $server)
51
102
return $ requestUrl .'/ ' .$ this ->siteResourcePath ();
52
103
}
53
104
105
+ /**
106
+ * Processes new response item.
107
+ *
108
+ * @param mixed $item
109
+ *
110
+ * @return mixed
111
+ */
112
+ public function processResponseItem ($ item )
113
+ {
114
+ return $ item ->setSite ($ this ->getSite ());
115
+ }
116
+
54
117
/**
55
118
* Handle command response.
56
119
*
@@ -61,6 +124,12 @@ public function requestUrl(Server $server)
61
124
*/
62
125
public function handleResponse (ResponseInterface $ response , Server $ server )
63
126
{
64
- return true ;
127
+ $ siteResourceClass = $ this ->siteResourceClass ();
128
+
129
+ if (is_null ($ siteResourceClass )) {
130
+ return true ;
131
+ }
132
+
133
+ return parent ::handleResponse ($ response , $ server );
65
134
}
66
135
}
0 commit comments