22
33namespace JiraRestApi \Issue ;
44
5- class IssueField {
6- public function __construct () {
7- $ this ->project = new \JiraRestApi \Project \Project ();
8-
9- $ this ->assignee = new \JiraRestApi \Issue \Reporter ();
10- $ this ->priority = new \JiraRestApi \Issue \Priority ();
11- $ this ->versions = array ();
12-
13- $ this ->issuetype = new \JiraRestApi \Issue \IssueType ();
5+ class IssueField implements \JsonSerializable {
6+ public function __construct ($ updateIssue = false ) {
7+ if ($ updateIssue != true ) {
8+ $ this ->project = new \JiraRestApi \Project \Project ();
9+
10+ $ this ->assignee = new \JiraRestApi \Issue \Reporter ();
11+ $ this ->priority = new \JiraRestApi \Issue \Priority ();
12+ $ this ->versions = array ();
13+
14+ $ this ->issuetype = new \JiraRestApi \Issue \IssueType ();
15+ }
16+ }
17+
18+ public function jsonSerialize ()
19+ {
20+ return array_filter (get_object_vars ($ this ));
1421 }
1522
1623 public function getProjectKey () {
@@ -31,6 +38,9 @@ public function setProjectId($id) {
3138 }
3239
3340 public function setIssueType ($ name ) {
41+ if (is_null ($ this ->issuetype ))
42+ $ this ->issuetype = new \JiraRestApi \Issue \IssueType ();
43+
3444 $ this ->issuetype ->name = $ name ;
3545 return $ this ;
3646 }
@@ -49,11 +59,17 @@ public function setReporterName($name) {
4959 }
5060
5161 public function setAssigneeName ($ name ) {
62+ if (is_null ($ this ->assignee ))
63+ $ this ->assignee = new \JiraRestApi \Issue \Reporter ();
64+
5265 $ this ->assignee ->name = $ name ;
5366 return $ this ;
5467 }
5568
5669 public function setPriorityName ($ name ) {
70+ if (is_null ($ this ->priority ))
71+ $ this ->priority = new \JiraRestApi \Issue \Priority ();
72+
5773 $ this ->priority ->name = $ name ;
5874 return $ this ;
5975 }
@@ -63,14 +79,12 @@ public function setDescription($description) {
6379 return $ this ;
6480 }
6581
66- public function addVersion ($ id , $ name ) {
82+ public function addVersion ($ name ) {
83+ if (is_null ($ this ->versions ))
84+ $ this ->versions = array ();
85+
6786 $ v = new Version ();
68-
69- if (isset ($ id ))
70- $ v ->id = $ id ;
71- if (isset ($ name ))
72- $ v ->name = $ name ;
73-
87+ $ v ->name = $ name ;
7488 array_push ($ this ->versions , $ v );
7589 return $ this ;
7690 }
@@ -83,7 +97,6 @@ public function addComment($comment) {
8397 return $ this ;
8498 }
8599
86- //@TODO
87100 public function addLabel ($ label ) {
88101 if (is_null ($ this ->labels ))
89102 $ this ->labels = array ();
@@ -96,7 +109,7 @@ public function addLabel($label) {
96109 public $ summary ;
97110
98111 /** @var string */
99- public $ progress ;
112+ // public $progress;
100113
101114 /** @var string */
102115 public $ timetracking ;
0 commit comments