Issues (16)

src/Traits/ApiMethodsTrait.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace Stevenmaguire\Services\Trello\Traits;
4
5
use BadMethodCallException;
6
7
trait ApiMethodsTrait
8
{
9
    /**
10
     * Api client method definition
11
     *
12
     * @var array
13
     */
14
    protected $methods = [
15
        'getCurrentUser' => ['get', 'members/me'],
16
        'getCurrentUserBoards' => ['get', 'members/my/boards'],
17
        'getCurrentUserPinnedBoards' => ['get', 'members/my/boards/pinned'],
18
        'getCurrentUserCards' => ['get', 'members/my/cards'],
19
        'getCurrentUserOrganizations' => ['get', 'members/my/organizations'],
20
        'deleteAction' => ['delete', 'actions/%s'],
21
        'getAction' => ['get', 'actions/%s'],
22
        'updateAction' => ['put', 'actions/%s'],
23
        'getActionField' => ['get', 'actions/%s/%s'],
24
        'getActionBoard' => ['get', 'actions/%s/board'],
25
        'getActionBoardField' => ['get', 'actions/%s/board/%s'],
26
        'getActionCard' => ['get', 'actions/%s/card'],
27
        'getActionCardField' => ['get', 'actions/%s/card/%s'],
28
        'getActionEntities' => ['get', 'actions/%s/entities'],
29
        'getActionList' => ['get', 'actions/%s/list'],
30
        'getActionListField' => ['get', 'actions/%s/list/%s'],
31
        'getActionMember' => ['get', 'actions/%s/member'],
32
        'getActionMemberField' => ['get', 'actions/%s/member/%s'],
33
        'getActionMemberCreator' => ['get', 'actions/%s/memberCreator'],
34
        'getActionMemberCreatorField' => ['get', 'actions/%s/memberCreator/%s'],
35
        'getActionOrganization' => ['get', 'actions/%s/organization'],
36
        'getActionOrganizationField' => ['get', 'actions/%s/organization/%s'],
37
        'updateActionText' => ['put', 'actions/%s/text'],
38
        'getAuthorize' => ['get', 'authorize'],
39
        'getBatch' => ['get', 'batch'],
40
        'addBoard' => ['post', 'boards'],
41
        'getBoard' => ['get', 'boards/%s'],
42
        'updateBoard' => ['put', 'boards/%s'],
43
        'getBoardField' => ['get', 'boards/%s/%s'],
44
        'getBoardActions' => ['get', 'boards/%s/actions'],
45
        'getBoardBoardStars' => ['get', 'boards/%s/boardStars'],
46
        'addBoardCalendarKeyGenerate' => ['post', 'boards/%s/calendarKey/generate'],
47
        'getBoardCards' => ['get', 'boards/%s/cards'],
48
        'getBoardCard' => ['get', 'boards/%s/cards/%s'],
49
        'getBoardCardsWithFilter' => ['get', 'boards/%s/cards/%s'],
50
        'getBoardChecklists' => ['get', 'boards/%s/checklists'],
51
        'addBoardChecklist' => ['post', 'boards/%s/checklists'],
52
        'updateBoardClosed' => ['put', 'boards/%s/closed'],
53
        'getBoardDeltas' => ['get', 'boards/%s/deltas'],
54
        'updateBoardDesc' => ['put', 'boards/%s/desc'],
55
        'addBoardEmailKeyGenerate' => ['post', 'boards/%s/emailKey/generate'],
56
        'updateBoardIdOrganization' => ['put', 'boards/%s/idOrganization'],
57
        'updateBoardLabelNameBlue' => ['put', 'boards/%s/labelNames/blue'],
58
        'updateBoardLabelNameGreen' => ['put', 'boards/%s/labelNames/green'],
59
        'updateBoardLabelNameOrange' => ['put', 'boards/%s/labelNames/orange'],
60
        'updateBoardLabelNamePurple' => ['put', 'boards/%s/labelNames/purple'],
61
        'updateBoardLabelNameRed' => ['put', 'boards/%s/labelNames/red'],
62
        'updateBoardLabelNameYellow' => ['put', 'boards/%s/labelNames/yellow'],
63
        'getBoardCustomFields' => ['get', 'boards/%s/customFields'],
64
        'getBoardLabels' => ['get', 'boards/%s/labels'],
65
        'addBoardLabel' => ['post', 'boards/%s/labels'],
66
        'getBoardLabel' => ['get', 'boards/%s/labels/%s'],
67
        'getBoardLists' => ['get', 'boards/%s/lists'],
68
        'addBoardList' => ['post', 'boards/%s/lists'],
69
        'getBoardList' => ['get', 'boards/%s/lists/%s'],
70
        'addBoardMarkAsViewed' => ['post', 'boards/%s/markAsViewed'],
71
        'getBoardMembers' => ['get', 'boards/%s/members'],
72
        'updateBoardMembers' => ['put', 'boards/%s/members'],
73
        'deleteBoardMember' => ['delete', 'boards/%s/members/%s'],
74
        'getBoardMember' => ['get', 'boards/%s/members/%s'],
75
        'updateBoardMember' => ['put', 'boards/%s/members/%s'],
76
        'getBoardMemberCards' => ['get', 'boards/%s/members/%s/cards'],
77
        'getBoardMemberships' => ['get', 'boards/%s/memberships'],
78
        'getBoardMembership' => ['get', 'boards/%s/memberships/%s'],
79
        'updateBoardMembership' => ['put', 'boards/%s/memberships/%s'],
80
        'getBoardMembersInviteds' => ['get', 'boards/%s/membersInvited'],
81
        'getBoardMembersInvited' => ['get', 'boards/%s/membersInvited/%s'],
82
        'getBoardMyPref' => ['get', 'boards/%s/myPrefs'],
83
        'updateBoardMyPrefEmailPosition' => ['put', 'boards/%s/myPrefs/emailPosition'],
84
        'updateBoardMyPrefIdEmailList' => ['put', 'boards/%s/myPrefs/idEmailList'],
85
        'updateBoardMyPrefShowListGuide' => ['put', 'boards/%s/myPrefs/showListGuide'],
86
        'updateBoardMyPrefShowSidebar' => ['put', 'boards/%s/myPrefs/showSidebar'],
87
        'updateBoardMyPrefShowSidebarActivity' => ['put', 'boards/%s/myPrefs/showSidebarActivity'],
88
        'updateBoardMyPrefShowSidebarBoardAction' => ['put', 'boards/%s/myPrefs/showSidebarBoardActions'],
89
        'updateBoardMyPrefShowSidebarMember' => ['put', 'boards/%s/myPrefs/showSidebarMembers'],
90
        'updateBoardName' => ['put', 'boards/%s/name'],
91
        'getBoardOrganization' => ['get', 'boards/%s/organization'],
92
        'getBoardOrganizationField' => ['get', 'boards/%s/organization/%s'],
93
        'addBoardPowerUp' => ['post', 'boards/%s/powerUps'],
94
        'deleteBoardPowerUp' => ['delete', 'boards/%s/powerUps/%s'],
95
        'updateBoardPrefBackground' => ['put', 'boards/%s/prefs/background'],
96
        'updateBoardPrefCalendarFeedEnabled' => ['put', 'boards/%s/prefs/calendarFeedEnabled'],
97
        'updateBoardPrefCardAging' => ['put', 'boards/%s/prefs/cardAging'],
98
        'updateBoardPrefCardCovers' => ['put', 'boards/%s/prefs/cardCovers'],
99
        'updateBoardPrefComment' => ['put', 'boards/%s/prefs/comments'],
100
        'updateBoardPrefInvitation' => ['put', 'boards/%s/prefs/invitations'],
101
        'updateBoardPrefPermissionLevel' => ['put', 'boards/%s/prefs/permissionLevel'],
102
        'updateBoardPrefSelfJoin' => ['put', 'boards/%s/prefs/selfJoin'],
103
        'updateBoardPrefVoting' => ['put', 'boards/%s/prefs/voting'],
104
        'updateBoardSubscribed' => ['put', 'boards/%s/subscribed'],
105
        'addCard' => ['post', 'cards'],
106
        'deleteCard' => ['delete', 'cards/%s'],
107
        'getCard' => ['get', 'cards/%s'],
108
        'updateCard' => ['put', 'cards/%s'],
109
        'getCardField' => ['get', 'cards/%s/%s'],
110
        'getCardAction' => ['get', 'cards/%s/actions'],
111
        'deleteCardActionComment' => ['delete', 'cards/%s/actions/%s/comments'],
112
        'updateCardActionComments' => ['put', 'cards/%s/actions/%s/comments'],
113
        'addCardActionComment' => ['post', 'cards/%s/actions/comments'],
114
        'getCardAttachments' => ['get', 'cards/%s/attachments'],
115
        'addCardAttachment' => ['post', 'cards/%s/attachments'],
116
        'deleteCardAttachment' => ['delete', 'cards/%s/attachments/%s'],
117
        'getCardAttachment' => ['get', 'cards/%s/attachments/%s'],
118
        'getCardBoard' => ['get', 'cards/%s/board'],
119
        'getCardBoardField' => ['get', 'cards/%s/board/%s'],
120
        'getCardCheckItemState' => ['get', 'cards/%s/checkItemStates'],
121
        'addCardChecklistCheckItem' => ['post', 'cards/%s/checklist/%s/checkItem'],
122
        'deleteCardChecklistCheckItem' => ['delete', 'cards/%s/checklist/%s/checkItem/%s'],
123
        'updateCardChecklistCheckItem' => ['put', 'cards/%s/checklist/%s/checkItem/%s'],
124
        'addCardChecklistCheckItemConvertToCard' => ['post', 'cards/%s/checklist/%s/checkItem/%s/convertToCard'],
125
        'updateCardChecklistCheckItemName' => ['put', 'cards/%s/checklist/%s/checkItem/%s/name'],
126
        'updateCardChecklistCheckItemPos' => ['put', 'cards/%s/checklist/%s/checkItem/%s/pos'],
127
        'updateCardChecklistCheckItemState' => ['put', 'cards/%s/checklist/%s/checkItem/%s/state'],
128
        'getCardChecklists' => ['get', 'cards/%s/checklists'],
129
        'addCardChecklist' => ['post', 'cards/%s/checklists'],
130
        'deleteCardChecklist' => ['delete', 'cards/%s/checklists/%s'],
131
        'updateCardClosed' => ['put', 'cards/%s/closed'],
132
        'updateCardDesc' => ['put', 'cards/%s/desc'],
133
        'updateCardDue' => ['put', 'cards/%s/due'],
134
        'updateCardIdAttachmentCover' => ['put', 'cards/%s/idAttachmentCover'],
135
        'updateCardIdBoard' => ['put', 'cards/%s/idBoard'],
136
        'addCardIdLabel' => ['post', 'cards/%s/idLabels'],
137
        'deleteCardIdLabel' => ['delete', 'cards/%s/idLabels/%s'],
138
        'updateCardIdList' => ['put', 'cards/%s/idList'],
139
        'addCardIdMember' => ['post', 'cards/%s/idMembers'],
140
        'updateCardIdMembers' => ['put', 'cards/%s/idMembers'],
141
        'deleteCardIdMember' => ['delete', 'cards/%s/idMembers/%s'],
142
        'addCardLabel' => ['post', 'cards/%s/labels'],
143
        'updateCardLabel' => ['put', 'cards/%s/labels'],
144
        'deleteCardLabel' => ['delete', 'cards/%s/labels/%s'],
145
        'getCardCustomField' => ['get', 'cards/%s/customField/%s'],
146
        'updateCardCustomField' => ['putAsBody', 'cards/%s/customField/%s/item'],
147
        'getCardList' => ['get', 'cards/%s/list'],
148
        'getCardListField' => ['get', 'cards/%s/list/%s'],
149
        'addCardMarkAssociatedNotificationsRead' => ['post', 'cards/%s/markAssociatedNotificationsRead'],
150
        'getCardMembers' => ['get', 'cards/%s/members'],
151
        'getCardMembersVoted' => ['get', 'cards/%s/membersVoted'],
152
        'addCardMembersVoted' => ['post', 'cards/%s/membersVoted'],
153
        'deleteCardMembersVoted' => ['delete', 'cards/%s/membersVoted/%s'],
154
        'updateCardName' => ['put', 'cards/%s/name'],
155
        'updateCardPos' => ['put', 'cards/%s/pos'],
156
        'getCardStickers' => ['get', 'cards/%s/stickers'],
157
        'addCardSticker' => ['post', 'cards/%s/stickers'],
158
        'deleteCardSticker' => ['delete', 'cards/%s/stickers/%s'],
159
        'getCardSticker' => ['get', 'cards/%s/stickers/%s'],
160
        'updateCardSticker' => ['put', 'cards/%s/stickers/%s'],
161
        'updateCardSubscribed' => ['put', 'cards/%s/subscribed'],
162
        'addChecklist' => ['post', 'checklists'],
163
        'deleteChecklist' => ['delete', 'checklists/%s'],
164
        'getChecklist' => ['get', 'checklists/%s'],
165
        'updateChecklist' => ['put', 'checklists/%s'],
166
        'getChecklistField' => ['get', 'checklists/%s/%s'],
167
        'getChecklistBoard' => ['get', 'checklists/%s/board'],
168
        'getChecklistBoardField' => ['get', 'checklists/%s/board/%s'],
169
        'getChecklistCards' => ['get', 'checklists/%s/cards'],
170
        'getChecklistCard' => ['get', 'checklists/%s/cards/%s'],
171
        'getChecklistCheckItems' => ['get', 'checklists/%s/checkItems'],
172
        'addChecklistCheckItem' => ['post', 'checklists/%s/checkItems'],
173
        'deleteChecklistCheckItem' => ['delete', 'checklists/%s/checkItems/%s'],
174
        'getChecklistCheckItem' => ['get', 'checklists/%s/checkItems/%s'],
175
        'updateChecklistIdCard' => ['put', 'checklists/%s/idCard'],
176
        'updateChecklistName' => ['put', 'checklists/%s/name'],
177
        'updateChecklistPos' => ['put', 'checklists/%s/pos'],
178
        'addCustomField' => ['post', 'customFields'],
179
        'addCustomFieldOption' => ['post', 'customField/%s/options'],
180
        'updateCustomFieldOption' => ['put', 'customField/%s/options/%s'],
181
        'deleteCustomField' => ['delete', 'customField/%s'],
182
        'addLabel' => ['post', 'labels'],
183
        'deleteLabel' => ['delete', 'labels/%s'],
184
        'getLabel' => ['get', 'labels/%s'],
185
        'updateLabel' => ['put', 'labels/%s'],
186
        'getLabelBoard' => ['get', 'labels/%s/board'],
187
        'getLabelBoardField' => ['get', 'labels/%s/board/%s'],
188
        'updateLabelColor' => ['put', 'labels/%s/color'],
189
        'updateLabelName' => ['put', 'labels/%s/name'],
190
        'addList' => ['post', 'lists'],
191
        'getList' => ['get', 'lists/%s'],
192
        'updateList' => ['put', 'lists/%s'],
193
        'getListField' => ['get', 'lists/%s/%s'],
194
        'getListActions' => ['get', 'lists/%s/actions'],
195
        'addListArchiveAllCards' => ['post', 'lists/%s/archiveAllCards'],
196
        'getListBoard' => ['get', 'lists/%s/board'],
197
        'getListBoardField' => ['get', 'lists/%s/board/%s'],
198
        'getListCards' => ['get', 'lists/%s/cards'],
199
        'addListCard' => ['post', 'lists/%s/cards'],
200
        'getListCard' => ['get', 'lists/%s/cards/%s'],
201
        'updateListClosed' => ['put', 'lists/%s/closed'],
202
        'updateListIdBoard' => ['put', 'lists/%s/idBoard'],
203
        'addListMoveAllCards' => ['post', 'lists/%s/moveAllCards'],
204
        'updateListName' => ['put', 'lists/%s/name'],
205
        'updateListPos' => ['put', 'lists/%s/pos'],
206
        'updateListSubscribed' => ['put', 'lists/%s/subscribed'],
207
        'getMember' => ['get', 'members/%s'],
208
        'updateMember' => ['put', 'members/%s'],
209
        'getMemberField' => ['get', 'members/%s/%s'],
210
        'getMemberActions' => ['get', 'members/%s/actions'],
211
        'addMemberAvatar' => ['post', 'members/%s/avatar'],
212
        'updateMemberAvatarSource' => ['put', 'members/%s/avatarSource'],
213
        'updateMemberBio' => ['put', 'members/%s/bio'],
214
        'getMemberBoardBackgrounds' => ['get', 'members/%s/boardBackgrounds'],
215
        'addMemberBoardBackground' => ['post', 'members/%s/boardBackgrounds'],
216
        'deleteMemberBoardBackground' => ['delete', 'members/%s/boardBackgrounds/%s'],
217
        'getMemberBoardBackground' => ['get', 'members/%s/boardBackgrounds/%s'],
218
        'updateMemberBoardBackground' => ['put', 'members/%s/boardBackgrounds/%s'],
219
        'getMemberBoards' => ['get', 'members/%s/boards'],
220
        'getMemberBoard' => ['get', 'members/%s/boards/%s'],
221
        'getMemberBoardsInvited' => ['get', 'members/%s/boardsInvited'],
222
        'getMemberBoardsInvitedField' => ['get', 'members/%s/boardsInvited/%s'],
223
        'getMemberBoardStars' => ['get', 'members/%s/boardStars'],
224
        'addMemberBoardStar' => ['post', 'members/%s/boardStars'],
225
        'deleteMemberBoardStar' => ['delete', 'members/%s/boardStars/%s'],
226
        'getMemberBoardStar' => ['get', 'members/%s/boardStars/%s'],
227
        'updateMemberBoardStar' => ['put', 'members/%s/boardStars/%s'],
228
        'updateMemberBoardStarIdBoard' => ['put', 'members/%s/boardStars/%s/idBoard'],
229
        'updateMemberBoardStarPos' => ['put', 'members/%s/boardStars/%s/pos'],
230
        'getMemberCards' => ['get', 'members/%s/cards'],
231
        'getMemberCard' => ['get', 'members/%s/cards/%s'],
232
        'getMemberCustomBoardBackgrounds' => ['get', 'members/%s/customBoardBackgrounds'],
233
        'addMemberCustomBoardBackground' => ['post', 'members/%s/customBoardBackgrounds'],
234
        'deleteMemberCustomBoardBackground' => ['delete', 'members/%s/customBoardBackgrounds/%s'],
235
        'getMemberCustomBoardBackground' => ['get', 'members/%s/customBoardBackgrounds/%s'],
236
        'updateMemberCustomBoardBackground' => ['put', 'members/%s/customBoardBackgrounds/%s'],
237
        'getMemberCustomEmojis' => ['get', 'members/%s/customEmoji'],
238
        'addMemberCustomEmoji' => ['post', 'members/%s/customEmoji'],
239
        'getMemberCustomEmoji' => ['get', 'members/%s/customEmoji/%s'],
240
        'getMemberCustomStickers' => ['get', 'members/%s/customStickers'],
241
        'addMemberCustomSticker' => ['post', 'members/%s/customStickers'],
242
        'deleteMemberCustomSticker' => ['delete', 'members/%s/customStickers/%s'],
243
        'getMemberCustomSticker' => ['get', 'members/%s/customStickers/%s'],
244
        'getMemberDeltas' => ['get', 'members/%s/deltas'],
245
        'updateMemberFullName' => ['put', 'members/%s/fullName'],
246
        'updateMemberInitials' => ['put', 'members/%s/initials'],
247
        'getMemberNotifications' => ['get', 'members/%s/notifications'],
248
        'getMemberNotification' => ['get', 'members/%s/notifications/%s'],
249
        'addMemberOneTimeMessagesDismissed' => ['post', 'members/%s/oneTimeMessagesDismissed'],
250
        'getMemberOrganizations' => ['get', 'members/%s/organizations'],
251
        'getMemberOrganization' => ['get', 'members/%s/organizations/%s'],
252
        'getMemberOrganizationsInvited' => ['get', 'members/%s/organizationsInvited'],
253
        'getMemberOrganizationsInvitedField' => ['get', 'members/%s/organizationsInvited/%s'],
254
        'updateMemberPrefColorBlind' => ['put', 'members/%s/prefs/colorBlind'],
255
        'updateMemberPrefMinutesBetweenSummaries' => ['put', 'members/%s/prefs/minutesBetweenSummaries'],
256
        'getMemberSavedSearches' => ['get', 'members/%s/savedSearches'],
257
        'addMemberSavedSearch' => ['post', 'members/%s/savedSearches'],
258
        'deleteMemberSavedSearch' => ['delete', 'members/%s/savedSearches/%s'],
259
        'getMemberSavedSearch' => ['get', 'members/%s/savedSearches/%s'],
260
        'updateMemberSavedSearch' => ['put', 'members/%s/savedSearches/%s'],
261
        'updateMemberSavedSearchName' => ['put', 'members/%s/savedSearches/%s/name'],
262
        'updateMemberSavedSearchPos' => ['put', 'members/%s/savedSearches/%s/pos'],
263
        'updateMemberSavedSearchQuery' => ['put', 'members/%s/savedSearches/%s/query'],
264
        'getMemberTokens' => ['get', 'members/%s/tokens'],
265
        'updateMemberUsername' => ['put', 'members/%s/username'],
266
        'getNotification' => ['get', 'notifications/%s'],
267
        'updateNotification' => ['put', 'notifications/%s'],
268
        'getNotificationField' => ['get', 'notifications/%s/%s'],
269
        'getNotificationBoard' => ['get', 'notifications/%s/board'],
270
        'getNotificationBoardField' => ['get', 'notifications/%s/board/%s'],
271
        'getNotificationCard' => ['get', 'notifications/%s/card'],
272
        'getNotificationCardField' => ['get', 'notifications/%s/card/%s'],
273
        'getNotificationEntities' => ['get', 'notifications/%s/entities'],
274
        'getNotificationList' => ['get', 'notifications/%s/list'],
275
        'getNotificationListField' => ['get', 'notifications/%s/list/%s'],
276
        'getNotificationMember' => ['get', 'notifications/%s/member'],
277
        'getNotificationMemberField' => ['get', 'notifications/%s/member/%s'],
278
        'getNotificationMemberCreator' => ['get', 'notifications/%s/memberCreator'],
279
        'getNotificationMemberCreatorField' => ['get', 'notifications/%s/memberCreator/%s'],
280
        'getNotificationOrganization' => ['get', 'notifications/%s/organization'],
281
        'getNotificationOrganizationField' => ['get', 'notifications/%s/organization/%s'],
282
        'updateNotificationUnread' => ['put', 'notifications/%s/unread'],
283
        'addNotificationAllRead' => ['post', 'notifications/all/read'],
284
        'addOrganization' => ['post', 'organizations'],
285
        'deleteOrganization' => ['delete', 'organizations/%s'],
286
        'getOrganization' => ['get', 'organizations/%s'],
287
        'updateOrganization' => ['put', 'organizations/%s'],
288
        'getOrganizationField' => ['get', 'organizations/%s/%s'],
289
        'getOrganizationActions' => ['get', 'organizations/%s/actions'],
290
        'getOrganizationBoards' => ['get', 'organizations/%s/boards'],
291
        'getOrganizationBoardsFilter' => ['get', 'organizations/%s/boards/%s'],
292
        'getOrganizationDeltas' => ['get', 'organizations/%s/deltas'],
293
        'updateOrganizationDesc' => ['put', 'organizations/%s/desc'],
294
        'updateOrganizationDisplayName' => ['put', 'organizations/%s/displayName'],
295
        'deleteOrganizationLogo' => ['delete', 'organizations/%s/logo'],
296
        'addOrganizationLogo' => ['post', 'organizations/%s/logo'],
297
        'getOrganizationMembers' => ['get', 'organizations/%s/members'],
298
        'updateOrganizationMembers' => ['put', 'organizations/%s/members'],
299
        'deleteOrganizationMember' => ['delete', 'organizations/%s/members/%s'],
300
        'getOrganizationMembersFilter' => ['get', 'organizations/%s/members/%s'],
301
        'updateOrganizationMember' => ['put', 'organizations/%s/members/%s'],
302
        'deleteOrganizationMemberAll' => ['delete', 'organizations/%s/members/%s/all'],
303
        'getOrganizationMemberCards' => ['get', 'organizations/%s/members/%s/cards'],
304
        'updateOrganizationMemberDeactivated' => ['put', 'organizations/%s/members/%s/deactivated'],
305
        'getOrganizationMemberships' => ['get', 'organizations/%s/memberships'],
306
        'getOrganizationMembership' => ['get', 'organizations/%s/memberships/%s'],
307
        'updateOrganizationMembership' => ['put', 'organizations/%s/memberships/%s'],
308
        'getOrganizationMembersInvited' => ['get', 'organizations/%s/membersInvited'],
309
        'getOrganizationMembersInvitedField' => ['get', 'organizations/%s/membersInvited/%s'],
310
        'updateOrganizationName' => ['put', 'organizations/%s/name'],
311
        'deleteOrganizationPrefAssociatedDomain' => ['delete', 'organizations/%s/prefs/associatedDomain'],
312
        'updateOrganizationPrefAssociatedDomain' => ['put', 'organizations/%s/prefs/associatedDomain'],
313
        'updateOrganizationPrefBoardVisibilityRestrictOrg' => [
314
            'put', 'organizations/%s/prefs/boardVisibilityRestrict/org',
315
        ],
316
        'updateOrganizationPrefBoardVisibilityRestrictPrivate' => [
317
            'put', 'organizations/%s/prefs/boardVisibilityRestrict/private',
318
        ],
319
        'updateOrganizationPrefBoardVisibilityRestrictPublic' => [
320
            'put', 'organizations/%s/prefs/boardVisibilityRestrict/public',
321
        ],
322
        'updateOrganizationPrefExternalMembersDisabled' => ['put', 'organizations/%s/prefs/externalMembersDisabled'],
323
        'updateOrganizationPrefGoogleAppsVersion' => ['put', 'organizations/%s/prefs/googleAppsVersion'],
324
        'deleteOrganizationPrefOrgInviteRestrict' => ['delete', 'organizations/%s/prefs/orgInviteRestrict'],
325
        'updateOrganizationPrefOrgInviteRestrict' => ['put', 'organizations/%s/prefs/orgInviteRestrict'],
326
        'updateOrganizationPrefPermissionLevel' => ['put', 'organizations/%s/prefs/permissionLevel'],
327
        'updateOrganizationWebsite' => ['put', 'organizations/%s/website'],
328
        'getSearch' => ['get', 'search'],
329
        'getSearchMembers' => ['get', 'search/members'],
330
        'addSession' => ['post', 'sessions'],
331
        'updateSession' => ['put', 'sessions/%s'],
332
        'updateSessionStatus' => ['put', 'sessions/%s/status'],
333
        'getSessionSocket' => ['get', 'sessions/socket'],
334
        'deleteToken' => ['delete', 'tokens/%s'],
335
        'getToken' => ['get', 'tokens/%s'],
336
        'getTokenField' => ['get', 'tokens/%s/%s'],
337
        'getTokenMember' => ['get', 'tokens/%s/member'],
338
        'getTokenMemberField' => ['get', 'tokens/%s/member/%s'],
339
        'getTokenWebhooks' => ['get', 'tokens/%s/webhooks'],
340
        'addTokenWebhook' => ['post', 'tokens/%s/webhooks'],
341
        'updateTokenWebhooks' => ['put', 'tokens/%s/webhooks'],
342
        'deleteTokenWebhook' => ['delete', 'tokens/%s/webhooks/%s'],
343
        'getTokenWebhook' => ['get', 'tokens/%s/webhooks/%s'],
344
        'getType' => ['get', 'types/%s'],
345
        'addWebhook' => ['post', 'webhooks'],
346
        'deleteWebhook' => ['delete', 'webhooks/%s'],
347
        'getWebhook' => ['get', 'webhooks/%s'],
348
        'updateWebhook' => ['put', 'webhooks/%s'],
349
        'getWebhookField' => ['get', 'webhooks/%s/%s'],
350
        'updateWebhookActive' => ['put', 'webhooks/%s/active'],
351
        'updateWebhookCallbackURL' => ['put', 'webhooks/%s/callbackURL'],
352
        'updateWebhookDescription' => ['put', 'webhooks/%s/description'],
353
        'updateWebhookIdModel' => ['put', 'webhooks/%s/idModel'],
354
    ];
355
356
    /**
357
     * Retrieves currently configured http broker.
358
     *
359
     * @return Stevenmaguire\Services\Trello\Http
0 ignored issues
show
The type Stevenmaguire\Services\T...re\Services\Trello\Http was not found. Did you mean Stevenmaguire\Services\Trello\Http? If so, make sure to prefix the type with \.
Loading history...
360
     * @codeCoverageIgnore
361
     */
362
    abstract public function getHttp();
363
364
    /**
365
     * Attempts to handle api method call.
366
     *
367
     * @param  string  $method
368
     * @param  array   $parameters
369
     *
370
     * @return object
371 662
     * @throws BadMethodCallException
372
     */
373 662
    public function __call($method, $parameters)
374 660
    {
375
        if ($signature = $this->getMethodSignature($method)) {
376 660
            preg_match_all('/\%/', $signature[1], $replacements);
377
378 660
            $replacementCount = isset($replacements[0]) ? count($replacements[0]) : 0;
379
380 660
            $replacementParams = array_splice($parameters, 0, $replacementCount);
381
382 660
            array_unshift($replacementParams, $signature[1]);
383
384 660
            $path = call_user_func_array('sprintf', $replacementParams);
385
386 660
            array_unshift($parameters, $path);
387
388
            return call_user_func_array([$this->getHttp(), $signature[0]], $parameters);
389 2
        }
390
391
        throw new BadMethodCallException("Method ".$method." not found on ".get_class().".", 500);
392
    }
393
394
    /**
395
     * Attempts to retrieve method signature from method definition.
396
     *
397
     * @param  string  $method
398
     *
399 662
     * @return array|null
400
     */
401 662
    private function getMethodSignature($method)
402 662
    {
403 662
        $validMethod = isset($this->methods[$method])
404
            && is_array($this->methods[$method])
405 662
            && count($this->methods[$method]) >= 2;
406 660
407
        if ($validMethod) {
408
            return $this->methods[$method];
409 2
        }
410
411
        return null;
412 2
    }
413
}
414