File tree 4 files changed +163
-2
lines changed
4 files changed +163
-2
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+ use Respect \Validation \Validator as DataValidator ;
3
+
4
+ DataValidator::with ('CustomValidations ' , true );
5
+ /**
6
+ * @api {post} /system/add-project Add project
7
+ * @apiVersion 4.11.0
8
+ *
9
+ * @apiName Add project
10
+ *
11
+ * @apiGroup System
12
+ *
13
+ * @apiDescription This path create a new project.
14
+ *
15
+ * @apiPermission staff3
16
+ *
17
+ * @apiParam {String} name Name of the new project.
18
+ *
19
+ * @apiUse NO_PERMISSION
20
+ *
21
+ * @apiSuccess {Object} data Empty object
22
+ *
23
+ */
24
+
25
+ class AddProjectController extends Controller {
26
+ const PATH = '/add-project ' ;
27
+ const METHOD = 'POST ' ;
28
+
29
+ public function validations () {
30
+ return [
31
+ 'permission ' => 'staff_3 ' ,
32
+ 'requestData ' => [
33
+ 'name ' => [
34
+ 'validation ' => DataValidator::AllOf (
35
+ DataValidator::notBlank ()->length (LengthConfig::MIN_LENGTH_NAME , LengthConfig::MAX_LENGTH_NAME ),
36
+ DataValidator::ValidProjectName ()
37
+ ),
38
+ 'error ' => ERRORS ::INVALID_NAME
39
+ ]
40
+ ]
41
+ ];
42
+ }
43
+
44
+ public function handler () {
45
+ $ name = Controller::request ('name ' , true );
46
+
47
+ $ projectInstance = new Project ();
48
+
49
+ $ projectInstance ->setProperties ([
50
+ 'name ' => $ name ,
51
+ ]);
52
+ $ projectInstance ->store ();
53
+
54
+ Log::createLog ('ADD_PROJECT ' , $ name );
55
+
56
+ Response::respondSuccess ();
57
+
58
+ }
59
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+ use Respect \Validation \Validator as DataValidator ;
3
+
4
+
5
+ /**
6
+ * @api {post} /ticket/add-tag Add tag
7
+ * @apiVersion 4.11.0
8
+ *
9
+ * @apiName Add tag
10
+ *
11
+ * @apiGroup Ticket
12
+ *
13
+ * @apiDescription This path attaches a new tag to a ticket.
14
+ *
15
+ * @apiPermission staff1
16
+ *
17
+ * @apiParam {String} userId The number of the ticket which the tag is going to be attached.
18
+ * @apiParam {String} projectId The id of the tag to attach.
19
+ *
20
+ * @apiUse NO_PERMISSION
21
+ * @apiUse INVALID_TICKET
22
+ * @apiUse INVALID_TAG
23
+ * @apiUse TAG_EXISTS
24
+ *
25
+ * @apiSuccess {Object} data Empty object
26
+ *
27
+ */
28
+
29
+ class AddTagController extends Controller {
30
+ const PATH = '/add-project ' ;
31
+ const METHOD = 'POST ' ;
32
+
33
+ public function validations () {
34
+ return [
35
+ 'permission ' => 'staff_1 ' ,
36
+ 'requestData ' => [
37
+ 'userId ' => [
38
+ 'validation ' => DataValidator::dataStoreId ('user ' ),
39
+ 'error ' => ERRORS ::INVALID_USER
40
+ ],
41
+ 'projectId ' => [
42
+ 'validation ' => DataValidator::dataStoreId ('project ' ),
43
+ 'error ' => ERRORS ::INVALID_USER
44
+ ]
45
+ ]
46
+ ];
47
+ }
48
+
49
+ public function handler () {
50
+
51
+ $ user = User::getDataStore (Controller::request ('userId ' ));
52
+
53
+ $ project = Project::getDataStore (Controller::request ('projectId ' ));
54
+
55
+ Response::respondSuccess ();
56
+ }
57
+ }
Original file line number Diff line number Diff line change @@ -152,9 +152,7 @@ DROP TABLE IF EXISTS `project`;
152
152
/* !40101 SET character_set_client = utf8 */ ;
153
153
CREATE TABLE `project ` (
154
154
` id` int (11 ) unsigned NOT NULL AUTO_INCREMENT,
155
- ` owners` int (11 ) unsigned DEFAULT NULL ,
156
155
` name` varchar (191 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
157
- ` private` int (11 ) unsigned DEFAULT NULL ,
158
156
PRIMARY KEY (` id` )
159
157
) ENGINE= InnoDB AUTO_INCREMENT= 1 DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_unicode_ci;
160
158
/* !40101 SET character_set_client = @saved_cs_client */ ;
Original file line number Diff line number Diff line change
1
+ <?php
2
+ use RedBeanPHP \Facade as RedBean ;
3
+
4
+ /**
5
+ * @api {OBJECT} Project Project
6
+ * @apiVersion 4.11.0
7
+ * @apiGroup Data Structures
8
+ * @apiParam {Number} id Id of the project.
9
+ * @apiParam {String} name Name of the project.
10
+ */
11
+
12
+ class Project extends DataStore {
13
+ const TABLE = 'project ' ;
14
+
15
+ public static function getProps () {
16
+ return [
17
+ 'name ' ,
18
+ 'sharedTicketList ' ,
19
+ ];
20
+ }
21
+
22
+ public function getDefaultProps () {
23
+ return [
24
+ ];
25
+ }
26
+
27
+ public static function getAllProjectNames () {
28
+ $ projectsList = RedBean::findAll (Project::TABLE );
29
+ $ projectsNameList = [];
30
+
31
+ foreach ($ projectsList as $ project ) {
32
+ $ projectsNameList [] = [
33
+ 'id ' => $ project ->id ,
34
+ 'name ' => $ project ->name
35
+ ];
36
+ }
37
+
38
+ return $ projectsNameList ;
39
+ }
40
+
41
+ public function toArray () {
42
+ return [
43
+ 'id ' => $ this ->id ,
44
+ 'name ' => $ this ->name ,
45
+ ];
46
+ }
47
+ }
You can’t perform that action at this time.
0 commit comments