├── CHANGELOG.md ├── CONTRIBUTING.md ├── Documentation.md ├── LICENSE.md ├── README.md ├── composer.json └── src ├── Client.php ├── Exception └── UnauthorizedException.php ├── FileLoader.php ├── Laravel ├── TEvoFacade.php ├── TEvoServiceProvider.php └── config │ └── ticketevolution.php ├── PhpLoader.php ├── Resources ├── v10 │ ├── orders.php │ └── service-description.php └── v9 │ ├── accounts.php │ ├── brokerages.php │ ├── categories.php │ ├── clients.php │ ├── commissions.php │ ├── companies.php │ ├── configurations.php │ ├── credentials.php │ ├── credit_memos.php │ ├── events.php │ ├── filtered_tickets.php │ ├── listings.php │ ├── offices.php │ ├── orders.php │ ├── payments.php │ ├── performers.php │ ├── pins.php │ ├── promotion_codes.php │ ├── queued_orders.php │ ├── quotes.php │ ├── rate_options.php │ ├── reports.php │ ├── search.php │ ├── service-description.php │ ├── settings.php │ ├── shipments.php │ ├── tax.php │ ├── ticket_groups.php │ ├── tickets.php │ ├── users.php │ └── venues.php └── TEvoAuthMiddleware.php /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 4.4.4 (August 19, 2022) 4 | - When using `settings()` to update the client settings, check if the description needs to be reloaded due to a version change. 5 | 6 | ## 4.4.3 (July 22, 2022) 7 | - Remove unused `include_tevo_section_mappings` parameter from `listings()` method. 8 | 9 | ## 4.4.2 (July 18, 2022) 10 | - Add new `showEventStats()` method to return statistics regarding the tickets available for an event. 11 | 12 | ## 4.4.1 (June 4, 2022) 13 | - Do not require `price` when using `createTaxQuote()`. 14 | 15 | ## 4.4.0 (April 4, 2022) 16 | - Ensure the `TEvoAuthMiddleware` is before any additional middleware so the computed X-Signature can be available to a logger middlware. 17 | 18 | ## 4.3.0 (March 9, 2022) 19 | - Add new `completeShipment()` and `updateShipment()` methods that are most often used when fulfilling mobile transfer sales. 20 | 21 | ## 4.2.10 (December 16, 2021) 22 | - Add new `createTaxQuote()` method in preparation of the coming-soon [Tax Quotes / Create](https://ticketevolution.atlassian.net/wiki/spaces/API/pages/2900459521/Tax+Quotes) endpoint. 23 | 24 | ## 4.2.9 (December 8, 2021) 25 | - Add new `listings()` method to use the new faster and more efficient [Listings / Index](https://ticketevolution.atlassian.net/wiki/spaces/API/pages/2853797930/Listings+Index) endpoint. 26 | - Add new `showListing()` method to use the new faster and more efficient [Listings / Show](https://ticketevolution.atlassian.net/wiki/spaces/API/pages/2895052808/Listings+Show) endpoint. 27 | 28 | ## 4.2.8 (November 29, 2021) 29 | - Add new `deleteClientEmailAddress()` method. 30 | 31 | ## 4.2.7 (September 20, 2021) 32 | - Add new `updateOrder()` method. 33 | 34 | ## 4.2.6 (September 9, 2021) 35 | - Do not include `min_and_max_price` in `listEventsDeleted()`. 36 | 37 | ## 4.2.5 (September 7, 2021) 38 | - Allow PHP 8.0 39 | 40 | ## 4.2.4 (September 7, 2021) 41 | - Support `GuzzleHttp\Psr7` 2.0 in addition to 1.x. 42 | 43 | ## 4.2.3 (April 22, 2020) 44 | - Allow usage of `symfony/config` ^5.0 in addition to ^4.2. Fixes the inability to install alongside newer versions of Laravel. 45 | 46 | ## 4.2.2 (November 4, 2019) 47 | - Ensure that when `min_and_max_price` is used with `listEvents()` it is sent as a boolean-string because the comparison in the API requires `true` and not just a truthy value. 48 | 49 | ## 4.2.1 (April 22, 2019) 50 | - Added `deleteOfficeCreditCard()`. 51 | 52 | ## 4.2.0 (March 31, 2019) 53 | - Replace `gimler/guzzle-description-loader` with local version. This resolves the conflict with Symfony files that was preventing this project from being used with Laravel 5.8. 54 | 55 | ## 4.1.3 (March 29, 2019) 56 | - Correct location of `recipients` parameter for `emailAirbillForShipment()`. 57 | - Fix `rejection_notes` parameter for `rejectOrder()`. 58 | - Make `q` parameter optional for `searchEvents()`. 59 | 60 | ## 4.1.2 (February 11, 2019) 61 | - Ensure `include_tevo_section_mappings` is sent as a string when used with `listTicketGroups()`. (Thanks to @zimm0r) 62 | 63 | ## 4.1.1 (January 2, 2019) 64 | - Fix an issue with deploying [/jwcobb/tevo-harvester](https://github.com/jwcobb/tevo-harvester) by removing typehints in `__constructor()` of `TEvoAuthMiddleware`. 65 | 66 | ## 4.1.0 (February 20, 2018) 67 | - Added `/v10/orders` endpoint for `createOrders()`. 68 | 69 | ## 4.0.5 (February 20, 2018) 70 | - Expanded acceptable `states` for `listOrders()`. 71 | 72 | ## 4.0.4 (June 19, 2017) 73 | - Added `uploadAirbillForShipment()` for uploading a base-64 encoded PDF airbill for a `ProvidedAirbill` shipment. 74 | - Correct documentation for adding a logger middleware under Advanced Usage. 75 | 76 | ## 4.0.3 (June 9, 2017) 77 | - Use `PUT` for `setTicketProperties()`. 78 | 79 | ## 4.0.2 (June 9, 2017) 80 | - Allow `string` or `int` `barcode` for `setTicketProperties()`. 81 | 82 | ## 4.0.1 (June 9, 2017) 83 | - Fix validation of value `type` where the value is formatted as `boolean-string` because of [change made in `guzzle/guzzle-services` in 1.1.0](https://github.com/guzzle/guzzle-services/pull/130/commits/13f2abc948901a8f108c5bf4daafeb2a137b853b). 84 | - Support Laravel 5.5 [Package Auto-Discovery](https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518). 85 | 86 | ## 4.0.0 (May 24, 2017) 87 | - Fix issue with parameters for `listCategories`. 88 | 89 | ## 4.0.0RC1 (March 20, 2017) 90 | - Upgrade to [Guzzle 6.2](https://github.com/guzzle/guzzle). 91 | - Create new `TEvoAuthMiddleware` to handle API authentication since the old Subscriber method no longer works. 92 | 93 | ## 3.0.8 (October 19, 2016) 94 | - Correct the allowed `type`s for `listTicketGroups()`. 95 | 96 | ## 3.0.7 (October 19, 2016) 97 | - Allow strings to be used in addition to integers for `showPerformer()` and `showVenue()` so that the slugs may be used. 98 | 99 | ## 3.0.6 (August 17, 2016) 100 | - Update `search()` to use a comma-separated string for the `types` value instead of an array now that the corresponding endpoint allows that. 101 | 102 | ## 3.0.5 (June 24, 2016) 103 | - Update `listSearchSuggestions()` to use a comma-separated string for the `entities` value instead of an array now that the corresponding endpoint allows that. This fixes #130. 104 | 105 | ## 3.0.4 (March 26, 2016) 106 | - Update `bindShared()` to `singleton()` in `TEvoServiceProvider` because `bindShared()` was deprecated in Laravel 5.1 and removed in Laravel 5.2. 107 | - Update installation instructions for Laravel. 108 | 109 | ## 3.0.3 (October 14, 2015) 110 | - Correct HTTP method for `cancelShipment`. 111 | - Correct `composer require` statements in some [Documentation](https://github.com/thephpleague/skeleton/blob/master/Documentation.md) examples. 112 | 113 | ## 3.0.2 (September 8, 2015) 114 | - Make sure to not send `Expect: 100` header. 115 | 116 | ## 3.0.1 (September 8, 2015) 117 | - Fixed an issue in the `TEvoAuth` subscriber that caused uploads > 1MB to fail. 118 | - Fixed an issue with the `httpMethod` specified for some shipments-related resources. 119 | - Updated Documentation. 120 | 121 | ## 3.0.0 (April 30, 2015) 122 | - No changes from 3.0.0-rc.1 123 | 124 | ## 3.0.0-rc.1 (January 21, 2015) 125 | - Complete rewrite breaking all backwards compatibility 126 | 127 | ## 2.2.2 (January 21, 2015) 128 | - Moved Wiki information to [Documentation.md](https://github.com/thephpleague/skeleton/blob/master/Documentation.md) 129 | - Updated README.md to include info about upcoming 3.0 release 130 | - Moved LICENSE.txt to LICENSE.md 131 | 132 | ## 2.2.1 (November 2, 2014) 133 | - Improved code formatting 134 | - Updated docblock `@link`s to related API documentation for all methods 135 | - Changed `searchClients()` to use `/searches/suggestions` endpoint 136 | - Removed `updateShipment()` and `updateOrder()` 137 | - Added methods: `cancelShipment()`, `generateAirbill()`, `getAirbill()`, `emailAirbill()`, `getShipmentSugestion()`, `createQuotes()` 138 | 139 | ## 2.2.0 (November 14, 2014) 140 | - Close #113 by extending `Zend_Rest_Client` and `Zend_Http_Client` to add the ability to set the proper `Content-Type` header. 141 | - Close #111 by adding the `ticketsSetProperties()` method. 142 | 143 | ## 2.1.5 (November 14, 2014) 144 | - Close #110 by adding a `$options` parameter to `showTicketGroup()`. 145 | - Close #112 by renaming `rejection_reason` to `reason` and adding support for `rejection_notes`. 146 | 147 | ## 2.1.4 (August 1, 2014) 148 | - Add `printEtickets()` method for retrieving etickets for an order. Thanks to @tapmodo. 149 | 150 | ## 2.1.3 (June 4, 2014) 151 | - Account for a bug in some API responses where `total_entries` is being returned as `NULL`, thus causing `Webservice.php` to not return a `ResultSet` as is expected. 152 | 153 | ## 2.1.2 (January 28, 2014) 154 | - Added the ability to time the API call & response using getElapsedTime(). This only times the actual call & response and does not include any of the setup time. 155 | 156 | ## 2.1.1 (January 21, 2014) 157 | - Added searchEvents() for performing [full text search of events](https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470096) 158 | - Added createOrdersFromJson() for [creating orders](https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994275) from raw JSON 159 | - Removed @author attributions 160 | - Updated @copyright dates 161 | 162 | ## 2.1 (September 20, 2013) 163 | - Added some more specific Exception classes to make it easier to catch different types 164 | - Moved classes specific to the [DataLoader project](https://github.com/jwcobb/ticketevolution-php-dataloaders) to that project. 165 | - Cleaned up some inline documentation in `Webservice.php` 166 | - Reduced redundant code in most methods in `Webservice.php` 167 | - The copyright has been transferred from [Team One Tickets & Sports Tours, Inc](http://www.teamonetickets.com) to [Ticket Evolution, Inc.](http://www.ticketevolution.com/). A copyright transfer agreement is on file with Ticket Evolution, Inc. 168 | 169 | 170 | ## 2.0.6 (August 9, 2013) 171 | - Exception thrown in `TicketEvolution\Webservice::_cleanAndValidateCreditCardNumber()` with invalid card numbers was not obvious. Removed card validation as the API will return a message about invalid card numbers. 172 | 173 | 174 | ## 2.0.5 (June 25, 2013) 175 | - Fixed bug (#99) with DataLoaders where some values would not be properly deleted on update. 176 | 177 | 178 | ## 2.0.4 (June 24, 2013) 179 | - Fixed bug with TicketGroup filters 180 | - Added new TicketGroup Filters 181 | - `TicketEvolution\Webservice\ResultSet\Filter\TicketGroups\ViewType` 182 | - `TicketEvolution\Webservice\ResultSet\Filter\TicketGroups\Wheelchair` 183 | 184 | 185 | ## 2.0.3 (June 12, 2013) 186 | - Made some small improvements to DataLoader classes that make extending them easier. 187 | - Moved this list from README.md to CHANGELOG.md 188 | 189 | 190 | ## 2.0.2 (May 28, 2013) 191 | - Remove reference to `owned_by_office` in `TicketEvolution\DataLoaders\Events` because that isn't a field that should be cached. 192 | 193 | 194 | ## 2.0.1 (May 21, 2013) 195 | - Fixed some column names in the DataLoader classes that did not match the column names as specified in the [DataLoader project](https://github.com/TeamOneTickets/ticket-evolution-dataloaders) 196 | 197 | 198 | ## 2.0.0 (May 17, 2013) 199 | *This update contains changes that are NOT backwards compatible* 200 | 201 | - The Demo has been split out to a [separate repository](https://github.com/TeamOneTickets/ticket-evolution-php-library-demo). 202 | - The DataLoaders have been split out to a [separate repository](https://github.com/TeamOneTickets/ticket-evolution-dataloaders). 203 | - Added [Composer](http://getcomposer.org/) support. 204 | - Added more proper [namespace](http://php.net/manual/en/language.namespaces.rationale.php) support 205 | - Require autoloading by removing all `require_once` statements for requiring classes 206 | - Removed some methods that were previously deprecated 207 | 208 | 209 | ## 1.9.14 (December 10, 2012) 210 | - Squashed bugs in the deprecated methods `createClientCompany()`, `createClientAddress()`, `createClientPhoneNumber()`, `createClientEmailAddress()`, `createClientCreditCard()`, and `createOrder()` thanks to a report from tonyguo2010 211 | 212 | 213 | ## 1.9.13 (October 24, 2012) 214 | - The parameters to list events by the primary performer has changed from `primary_performer_id` to instead use `performer_id` and add the boolean `primary_performer`. Updated the Demo app to match. 215 | 216 | 217 | ## 1.9.12 (October 15, 2012) 218 | - Fixed bug (#83) with `createOrders()` 219 | 220 | 221 | ## 1.9.11 (October 8, 2012) 222 | - Fixed bug (#81) with `createClientEmailAddresses()` 223 | 224 | 225 | ## 1.9.10 (September 27, 2012) 226 | - Remover leftover debug 227 | 228 | 229 | ## 1.9.9 (September 27, 2012) 230 | - Fixes #76 by correcting typo in `TicketEvolution/Db/Table/Users.php` 231 | - Fixes a couple bugs in `/scripts/update_Tevo_tables-2012-09-26.mysql` 232 | - Improves handling of `showMemory` and `showProgress` options for DataLoaders 233 | - Better handling of an oddity in results from `/categories` endpoints when no results are returned 234 | 235 | 236 | ## 1.9.8 (September 26, 2012) 237 | - Fixes missing table name in `/scripts/update_Tevo_tables-2012-09-26.mysql` Thanks to @kylegato for reporting the bug. 238 | 239 | 240 | ## 1.9.7 (September 26, 2012) 241 | *This release has a bug in `/scripts/update_Tevo_tables-2012-09-26.mysql`. Use 1.9.8 instead.* 242 | 243 | *This update contains changes that are NOT backwards compatible* 244 | 245 | *Be sure to apply `/scripts/update_Tevo_tables-2012-09-26.mysql` to update your tables as necessary* 246 | 247 | - Full rewrite of the Demo app 248 | - Full rewrite of the Data Loaders for caching the API data locally. They are now classes, which means you can easily extend them to add additional features or tweaks as necessary. 249 | - Deprecated some methods in `TicketEvolution_Webservice`. Deprecated methods will trigger an `E_USER_DEPRECATED` error. This was done in order to make the naming more consistent with TEvo naming and with the functionality of the methods. 250 | - Added some new methods for new API features such as Companies and shipment settings. 251 | - Changed some column names for clarity. 252 | 253 | 254 | ## 1.9.6 (June 8, 2012) 255 | - Fixed bug in `TicketEvolution_Webservice::createOrder()` where an array should have been used. Thanks to @aaronwp for finding the bug. 256 | 257 | 258 | ## 1.9.5 (May 22, 2012) 259 | - Added support for new [/companies endpoint](http://developer.ticketevolution.com/endpoints/companies) 260 | 261 | 262 | ## 1.9.4 (April 26, 2012) 263 | - Use `deleted_at` instead of `updated_at` in the data-loaders for deleted endpoints 264 | 265 | 266 | ## 1.9.3 (March 27, 2012) 267 | *This update contains changes that are NOT backwards compatible* 268 | 269 | - Huge improvements in both speed and memory usage. See [Issue #46](https://github.com/ticketevolution/ticketevolution-php/issues/46) for some details. 270 | - Dates are no longer returned as `Zend_Date` objects 271 | - Currencies are no longer converted to `Zend_Currency` objects 272 | - Also added some new filters that can be used to filter ticket groups when displaying a list of them. Look for updates in [the Wiki](https://github.com/ticketevolution/ticketevolution-php/wiki) soon explaining how to use these. 273 | 274 | 275 | ## Feb 29, 2012 276 | *This update contains changes that are NOT backwards compatible* 277 | 278 | - Updated things to work with API v9. API versions <9 will not work with this release 279 | - Both data-loaders and the demo now require the user to copy `config.sample.php` to `config.php` and set your credentials there 280 | 281 | 282 | ## Feb 28, 2012 283 | - Added a database searching method "getByParameters()" to DB/Table/Abstract 284 | 285 | 286 | ## Feb 9, 2012 287 | - Improvements to API demo app: 288 | - If an exception is thrown the actual request and response will be output for debugging purposes 289 | - Made it easier to switch between API environments (Sandbox|Production) 290 | - Changes reflect new changes to API 291 | - In the data-loaders change the `$lastUpdated` timezone to UTC before using it with `updated_at.gte` to account for a bug in the API that currently ignores the datetime portion if it is not specified as UTC. 292 | 293 | 294 | ## Jan 5, 2012 295 | - Added support for new “deleted” endpoints: 296 | - `/events/deleted` 297 | - `/performers/deleted` 298 | - `/venues/deleted` 299 | - `/categories/deleted` 300 | - Added support for using persistent connections, which now default to on. I have seen a considerable speedup with data loaders using persistent connections. 301 | - No longer appends `?` to end of URL for API calls that have no parameters. The API used to require it be there regardless, but now it does not. 302 | - Removed methods for checking if API URL was https now that https is required 303 | - Markdown-ified the README 304 | 305 | 306 | ### Data Loaders 307 | - Can now pass `?startPage=xx` to URLs to start at a specific page of the loop 308 | - Support and scripts for new `deleted` endpoints 309 | - Be sure to run the newest SQL update script in `scripts` first 310 | 311 | 312 | ## Oct 27, 2011 313 | - Fixed issue #30 with `createShipment()` method 314 | 315 | 316 | ## Oct 18, 2011 317 | - Added automatic retry capability (up to 3 attempts) to Data Loaders in case of timeout 318 | 319 | 320 | ## Sept 20, 2011 321 | - Added payment type and some important documentation to `createOrderCustomer()` in the demo app. 322 | - Added name to credit card in `createCreditCard()` case in demo app 323 | - Added some extra comments for `createCreditCard()` case in demo app based upon new information from the API developers 324 | - Fixed constant name used in `Webservice.php` when using `listClientCreditCards()` in demo app 325 | - Removed stats measurements from data-loaders. 326 | 327 | 328 | ## Sept 13, 2011 329 | - Fixed some more capitalization issues. 330 | 331 | 332 | ## Sept 9, 2011 333 | *This update contains changes that are NOT backwards compatible* 334 | - Added https API URL support (Switch now. http will be turned off soon) 335 | - Added new Client Credit Card methods (Not all are active yet) 336 | - Renamed some files to adjust capitalization 337 | - `library/TicketEvolution/Db/Table/Ticketgroups.php` -> `library/TicketEvolution/Db/Table/TicketGroups.php` 338 | - `library/TicketEvolution/Db/Table/Ticketgroupseats.php` -> `library/TicketEvolution/Db/Table/TicketGroupSeats.php` 339 | - `library/TicketEvolution/Db/Table/Officeemails.php` -> `library/TicketEvolution/Db/Table/OfficeEmails.php` 340 | - `library/TicketEvolution/Db/Table/Eventperformers.php` -> `library/TicketEvolution/Db/Table/EventPerformers.php` 341 | - `library/TicketEvolution/Db/Table/Dataloaderstatus.php` -> `library/TicketEvolution/Db/Table/DataLoaderStatus.php` 342 | - Renamed some classes to adjust capitalization (Same as above files) 343 | - `TicketEvolution_Db_Table_Ticketgroups` -> `TicketEvolution_Db_Table_TicketGroups` 344 | - `TicketEvolution_Db_Table_Ticketgroupseats` -> `TicketEvolution_Db_Table_TicketGroupSeats` 345 | - `TicketEvolution_Db_Table_Officeemails` -> `TicketEvolution_Db_Table_OfficeEmails` 346 | - `TicketEvolution_Db_Table_Eventperformers` -> `TicketEvolution_Db_Table_EventPerformers` 347 | - `TicketEvolution_Db_Table_Dataloaderstatus` -> `TicketEvolution_Db_Table_DataLoaderStatus` 348 | - Renamed some methods in `Webservice.php` to adjust capitalization 349 | - `listTicketgroups()` -> `listTicketGroups()` 350 | - `showTicketgroup()` -> `showTicketGroup()` 351 | - `listEvopaytransactions()` -> `listEvoPayTransactions()` 352 | - `showEvopaytransactions()` -> `showEvoPayTransactions()` 353 | - Removed `@version` from DocBlocks 354 | 355 | 356 | 357 | ## Aug 30, 2011 358 | - Cleaned up/corrected some more documentation in `Webservice.php` 359 | - Moved `TicketEvolution_ClientAddress` to `TicketEvolution_Address_Client` 360 | - Moved `TicketEvolution_ClientEmailAddress` to `TicketEvolution_EmailAddress_Client` 361 | - Moved `TicketEvolution_ClientPhoneNumber` to `TicketEvolution_PhoneNumber_Client` 362 | - Corrected some documentation. You can create multiple client addresses/emails/phone numbers in a single API call 363 | - Corrected demo app to show example of creating two client addresses at once 364 | - Added new API features through v8 including client and order methods 365 | - Much improved "Demo App" 366 | - Now shows exact PHP code used 367 | - Method selector re-ordered to match API documentation 368 | - Methods that affect data are disabled if you do not use the Sandbox API 369 | - Much easier to override how the data is returned from API calls. Specify your own ResultSet and Result classes if you like as well as and "Post-Processing" of the JSON returned 370 | - Code now passes Zend CodeSniffer tests with no errors 371 | 372 | 373 | ## July 25, 2011 374 | - Fixed a bug in `buildRawSignature()` (in `Webservices.php`) in which parameter names were not being urlencoded (only the values were) which resulted in `401 Unauthorized` errors when attempting to `listEvents()` using `'performances[performer_id]='`. 375 | - Cleaned up some of the code in `Webservices.php` to make it pass CodeSniffer using the Zend sniffs. 376 | 377 | 378 | ## July 5, 2011 379 | *Bug fixes* 380 | - In the configuration data-loader the `venueId` column was being populated with the `configurationId`. 381 | - `ResultSet` was returning all results as `TicketEvolution_Searchresults` objects instead of the ones specific to their type of result. 382 | 383 | 384 | ## May 22, 2011 385 | - Added ability to store seating chart URls in the `tevoConfigurations` table. In order to do so you will need to run the `update_Tevo_tables.mysql` script in the scripts folder. 386 | 387 | 388 | ## May 20, 2011 389 | - Added data-loaders which is a handy app for caching the data locally in MySQL. To use it you will need to run the `create_tables.mysql` script in scripts folder. 390 | - Added `sortResults()` method to `ResultSet` to allow for sorting of results. 391 | - Added `exclusiveResults()` and `excludeResults()` methods to `ResultSet` which allow you to easily show only TicketGroups from a specified array of brokers OR to exclude TicketGroups from a specified array of brokers. Handy if you prefer to only show your own inventory for certain events or if you wish to exclude someone's inventory. 392 | - Added `search()` endpoint which searches venues and performers 393 | - Many general improvements 394 | 395 | 396 | ## May 17, 2011 397 | - Updated endpoint in `Webservice.php` from `ticket-groups` to `ticket_groups` to reflect change in API. 398 | 399 | 400 | ## May 9, 2011. 401 | Initial Release 402 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Contributions are **welcome** and will be fully **credited**. 4 | 5 | We accept contributions via Pull Requests on [Github](https://github.com/ticketevolution/ticketevolution-php). 6 | 7 | 8 | ## Pull Requests 9 | 10 | - **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). 11 | 12 | - **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date. 13 | 14 | - **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option. 15 | 16 | - **Create feature branches** - Don't ask us to pull from your master branch. 17 | 18 | - **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. 19 | 20 | - **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting. 21 | 22 | 23 | -------------------------------------------------------------------------------- /Documentation.md: -------------------------------------------------------------------------------- 1 | # PHP Client Library v4 for the [Ticket Evolution API](http://developer.ticketevolution.com/) 2 | 3 | ## Basic Usage 4 | Here is the most basic usage. 5 | 6 | In your Terminal: 7 | ```bash 8 | $ php composer require ticketevolution/ticketevolution-php 9 | ``` 10 | 11 | ```php 12 | 'https://api.sandbox.ticketevolution.com', 22 | 'apiVersion' => 'v9', 23 | 'apiToken' => 'xxxxxxxxxxxxxxxxxxxxxxxx', 24 | 'apiSecret' => 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', 25 | ]); 26 | 27 | // Get a list of the 25 most popular events sorted by descending popularity 28 | try { 29 | $results = $apiClient->listEvents([ 30 | 'page' => 1, 31 | 'per_page' => 25, 32 | 'order_by' => 'events.popularity_score DESC', 33 | ]); 34 | } catch (\Exception $e) { 35 | // Handle your Exceptions 36 | } 37 | 38 | var_dump($results); 39 | ``` 40 | 41 | ## Advanced Usage 42 | Here is a much more “real world” setup that also includes a logger ([Monolog](https://github.com/Seldaek/monolog) in this example) as a middleware. 43 | 44 | In your Terminal: 45 | ```bash 46 | $ php composer require ticketevolution/ticketevolution-php rtheunissen/guzzle-log-middleware monolog/monolog 47 | ``` 48 | 49 | ```php 50 | pushHandler(new StreamHandler('/Users/jcobb/Sites/www.myaweometicketsite.dev/myaweometicketsite.com/app/storage/logs/guzzle.log', LogLevel::DEBUG)); 69 | $log->pushHandler(new StreamHandler('../../app/storage/logs/guzzler.log', LogLevel::DEBUG)); 70 | 71 | // Add a formatter 72 | $formatter = new MessageFormatter(MessageFormatter::DEBUG); 73 | 74 | // Create a middleware for logging 75 | $middleware = new Logger($log); 76 | 77 | // Apply the formatter 78 | $middleware->setFormatter($formatter); 79 | 80 | // Add it to the middleware array so it will get pushed to the client’s stack 81 | $middlewares[] = $middleware; 82 | 83 | // Create an API Client 84 | $apiClient = new TEvoClient([ 85 | 'baseUrl' => 'https://api.sandbox.ticketevolution.com', 86 | 'apiVersion' => 'v9', 87 | 'apiToken' => 'xxxxxxxxxxxxxxxxxxxxxxxx', 88 | 'apiSecret' => 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', 89 | ], $middlewares); 90 | 91 | // Get a list of the 25 most popular events sorted by descending popularity 92 | try { 93 | $results = $apiClient->listEvents([ 94 | 'page' => 1, 95 | 'per_page' => 25, 96 | 'order_by' => 'events.popularity_score DESC', 97 | ]); 98 | } catch (\Exception $e) { 99 | // Handle your Exceptions 100 | } 101 | 102 | // Use the RequestTimer to see how long the operation took. 103 | echo 'Request took ' . $requestTimer->getElapsedTime() . ' seconds'; 104 | 105 | var_dump($results); 106 | ``` 107 | 108 | 109 | ## Installation for Laravel 5 ## 110 | 111 | [Laravel 5](http://laravel.com/) is not required, but if you are using Laravel 5 this package includes both a [ServiceProvider](http://laravel.com/docs/5.0/providers) and a [Facade](http://laravel.com/docs/5.0/facades) for easy integration. 112 | 113 | Install the package via Composer 114 | 115 | ``` bash 116 | $ composer require ticketevolution/ticketevolution-php 117 | ``` 118 | 119 | ### Laravel 5.5+ 120 | [Package Auto-Discovery](https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518) will automatically add the ServiceProvider and `TEvo` facade. 121 | 122 | ### Laravel < 5.5 123 | After updating composer add the `TEvoServiceProvider` to the `providers` array in `config/app.php`: 124 | 125 | ``` php 126 | TicketEvolution\Laravel\TEvoServiceProvider::class, 127 | ``` 128 | 129 | If you want to use the `TEvo` facade add this to the `aliases` array in `config/app.php`: 130 | 131 | ``` php 132 | 'TEvo' => TicketEvolution\Laravel\TEvoFacade::class, 133 | ``` 134 | 135 | ### Install configuration file 136 | To copy the default configuration file to `config/ticketevolution.php` run 137 | 138 | ``` bash 139 | $ php artisan vendor:publish --provider="TicketEvolution\Laravel\TEvoServiceProvider" --tag=config 140 | ``` 141 | 142 | ### Use the `.env` file 143 | In Laravel 5 it is recommended that you [keep your API credentials in your `.env` file](http://laravel.com/docs/5.0/configuration#environment-configuration) and that you do not publish that to your repo. In your `.env` you should include 144 | 145 | ``` php 146 | TICKETEVOLUTION_API_BASEURL=https://api.sandbox.ticketevolution.com/v9 147 | TICKETEVOLUTION_API_VERSION=v9 148 | TICKETEVOLUTION_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 149 | TICKETEVOLUTION_API_SECRET=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 150 | ``` 151 | 152 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # The BSD 3-Clause License 2 | 3 | Copyright (c) 2017, Ticket Evolution, Inc. 4 | 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 13 | 14 | * Neither the name of Ticket Evolution, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP Client Library v4 for the [Ticket Evolution API](http://developer.ticketevolution.com/) 2 | The Ticket Evolution PHP Client is an open source framework created to simplify working with the [Ticket Evolution API web service](http://api.ticketevolution.com/). We created it to enable you to quickly implement the Ticket Evolution API web service on your own site whether you are creating a new site or switching from a different provider. We released it as open source so that you could make changes and improvements as you see fit. When you do we hope that you will give these changes back to the community by contributing them back to the project. 3 | 4 | 5 | ## Install 6 | 7 | Via Composer 8 | 9 | ``` bash 10 | $ composer require ticketevolution/ticketevolution-php 11 | ``` 12 | 13 | ## Usage 14 | 15 | ``` php 16 | use TicketEvolution\Client as TEvoClient; 17 | 18 | $apiClient = new TEvoClient([ 19 | 'baseUrl' => 'https://api.ticketevolution.com', 20 | 'apiVersion' => 'v9', 21 | 'apiToken' => 'xxxxxxxxxxxxxxxxxxxxxxxx', 22 | 'apiSecret' => 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', 23 | ]); 24 | 25 | $events = $apiClient->listEvents(); 26 | var_dump($events); 27 | ``` 28 | 29 | ## Contributing 30 | 31 | Please see [CONTRIBUTING](https://github.com/ticketevolution/ticketevolution-php/blob/master/CONTRIBUTING.md) for details. 32 | 33 | ## Credits 34 | 35 | - [J Cobb](https://github.com/jwcobb) 36 | - [All Contributors](https://github.com/ticketevolution/ticketevolution-php/contributors) 37 | 38 | ## License 39 | 40 | The BSD 3-Clause License (New BSD). Please see [License File](LICENSE.md) for more information. 41 | 42 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ticketevolution/ticketevolution-php", 3 | "description": "A PHP 7.1+ library for the Ticket Evolution API.", 4 | "type": "library", 5 | "keywords": [ 6 | "library", 7 | "Ticket Evolution", 8 | "ticket", 9 | "guzzle", 10 | "guzzlehttp", 11 | "guzzle-services", 12 | "laravel" 13 | ], 14 | "homepage": "https://github.com/ticketevolution/ticketevolution-php", 15 | "license": "BSD-3-Clause", 16 | "authors": [ 17 | { 18 | "name": "J Cobb", 19 | "homepage": "https://github.com/jwcobb", 20 | "role": "Developer" 21 | } 22 | ], 23 | "require": { 24 | "php": "^7.1.3 || ^8.0", 25 | "symfony/config": "^4.2 || ^5.0", 26 | "guzzlehttp/guzzle-services": "^1.1" 27 | }, 28 | "suggest": { 29 | "rtheunissen/guzzle-log-middleware": "Guzzle 6 middleware used to log requests and responses", 30 | "monolog/monolog": "Sends your logs to files, sockets, inboxes, databases and various web services" 31 | }, 32 | "autoload": { 33 | "psr-4": { 34 | "TicketEvolution\\": "src/" 35 | } 36 | }, 37 | "extra": { 38 | "laravel": { 39 | "providers": [ 40 | "TicketEvolution\\Laravel\\TEvoServiceProvider" 41 | ], 42 | "aliases": { 43 | "TEvo": "TicketEvolution\\Laravel\\TEvoFacade" 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/Client.php: -------------------------------------------------------------------------------- 1 | settings = $settings; 63 | 64 | // Use the TEvoAuth middleware to handle the request signing 65 | $this->middleware = array_merge([ 66 | new TEvoAuthMiddleware($this->settings['apiToken'], $this->settings['apiSecret']), 67 | ], $middleware); 68 | 69 | // Don’t need these anymore 70 | unset($this->settings['apiToken'], $this->settings['apiSecret']); 71 | 72 | // TEvo API servers don't like the “Expect: 100” header so override it 73 | // http://docs.guzzlephp.org/en/latest/request-options.html#expect 74 | $this->settings['expect'] = false; 75 | 76 | // Set a custom User Agent indicating which version of this library we are using 77 | // if one isn't already provided 78 | if (!isset($options['headers']['User-Agent'])) { 79 | $this->settings['headers']['User-Agent'] = 'ticketevolution-php/' . self::VERSION . ' ' . default_user_agent(); 80 | } 81 | 82 | } 83 | 84 | 85 | /** 86 | * Merge (via override) settings with newly provided ones. 87 | * 88 | * @param array $settings 89 | * 90 | * @return \TicketEvolution\Client 91 | */ 92 | public function settings(array $settings): Client 93 | { 94 | if (isset($settings['apiVersion']) && $settings['apiVersion'] !== $this->settings['apiVersion']) { 95 | $reloadDescription = true; 96 | } 97 | 98 | $this->settings = array_merge($this->settings, $settings); 99 | 100 | if ($reloadDescription) { 101 | $this->reloadDescription(); 102 | } 103 | 104 | if ($this->serviceClient) { 105 | $this->buildClient(); 106 | } 107 | 108 | return $this; 109 | } 110 | 111 | 112 | /** 113 | * Build a new service client, reloading the description of necessary. 114 | * 115 | */ 116 | private function buildClient() 117 | { 118 | $client = $this->getBaseClient(); 119 | 120 | if (!static::$_description) { 121 | $this->reloadDescription(); 122 | } 123 | 124 | $this->serviceClient = new GuzzleClient($client, static::$_description); 125 | } 126 | 127 | 128 | /** 129 | * Retrieve Guzzle base client. 130 | * 131 | * @return BaseClient 132 | */ 133 | private function getBaseClient(): BaseClient 134 | { 135 | return $this->baseClient ?: $this->baseClient = $this->loadBaseClient($this->settings); 136 | } 137 | 138 | 139 | /** 140 | * Set adapter and create Guzzle base client. 141 | * 142 | * @param array $settings 143 | * 144 | * @return BaseClient 145 | */ 146 | private function loadBaseClient(array $settings = []): BaseClient 147 | { 148 | // Create a handler stack and add any supplied middleware 149 | $stack = HandlerStack::create(); 150 | array_walk($this->middleware, function ($middleware) use ($stack) { 151 | $stack->push($middleware); 152 | }); 153 | 154 | $settings['handler'] = $stack; 155 | 156 | // Create the BaseClient 157 | $this->baseClient = new BaseClient($settings); 158 | 159 | return $this->baseClient; 160 | } 161 | 162 | 163 | /** 164 | * Description works tricky as a static property, reload as needed. 165 | * 166 | */ 167 | private function reloadDescription() 168 | { 169 | static::$_description = $this->loadDescription(); 170 | } 171 | 172 | 173 | /** 174 | * Load configuration file(s) and parse resources. 175 | * 176 | * @return Description 177 | */ 178 | private function loadDescription(): Description 179 | { 180 | $locator = new FileLocator(realpath(__DIR__ . '/Resources/' . $this->settings['apiVersion'])); 181 | 182 | $phpLoader = new PhpLoader($locator); 183 | 184 | $description = $phpLoader->load($locator->locate('service-description.php')); 185 | 186 | // Add the baseUrl specified in the settings. 187 | // Allowing one to easily change the baseUrl makes working in different environments easy. 188 | $description['baseUrl'] = $this->settings['baseUrl']; 189 | 190 | $this->description = new Description($description); 191 | 192 | return $this->description; 193 | } 194 | 195 | 196 | /** 197 | * Execute the command provided. This is used in calls that look like 198 | * 199 | * ``` 200 | * $response = $client->listBrokerages(['page' => 2, 'per_page' => 2]); 201 | * ``` 202 | * 203 | * as well as calls that look like 204 | * 205 | * ``` 206 | * $command = $client->getCommand('listBrokerages', ['page' => 2, 'per_page' => 2]); 207 | * $response = $client->execute($command); 208 | * ``` 209 | * 210 | * @param $method 211 | * @param $parameters 212 | * 213 | * @return \GuzzleHttp\Command\Result|\GuzzleHttp\Command\Command 214 | */ 215 | public function __call($method, $parameters) 216 | { 217 | if (!$this->serviceClient) { 218 | $this->buildClient(); 219 | } 220 | 221 | $response = call_user_func_array([$this->serviceClient, $method], $parameters); 222 | 223 | return $response; 224 | } 225 | } 226 | -------------------------------------------------------------------------------- /src/Exception/UnauthorizedException.php: -------------------------------------------------------------------------------- 1 | loadResource($resource); 17 | 18 | if (isset($configValues["imports"])) { 19 | foreach ($configValues["imports"] as $file) { 20 | $configValues = array_merge_recursive($configValues, $this->import($this->locator->locate($file))); 21 | } 22 | } 23 | 24 | unset($configValues["imports"]); 25 | 26 | return $configValues; 27 | } 28 | 29 | 30 | /* 31 | * @param string $resource 32 | * 33 | * @return array 34 | * 35 | * @throws InvalidResourceException If stream content has an invalid format. 36 | */ 37 | abstract protected function loadResource($resource); 38 | 39 | } -------------------------------------------------------------------------------- /src/Laravel/TEvoFacade.php: -------------------------------------------------------------------------------- 1 | setupConfig(); 28 | } 29 | 30 | 31 | /** 32 | * Setup the config. 33 | * 34 | * @return void 35 | */ 36 | protected function setupConfig() 37 | { 38 | $configPath = realpath(__DIR__ . '/config/ticketevolution.php'); 39 | 40 | if (function_exists('config_path')) { 41 | $publishPath = config_path('ticketevolution.php'); 42 | } else { 43 | $publishPath = base_path('config/ticketevolution.php'); 44 | } 45 | 46 | $this->publishes([$configPath => $publishPath], 'config'); 47 | 48 | $this->mergeConfigFrom($configPath, 'ticketevolution'); 49 | } 50 | 51 | 52 | /** 53 | * Register the service provider. 54 | * 55 | * @return void 56 | */ 57 | public function register() 58 | { 59 | $this->app->singleton('tevo', function () { 60 | return new Client(config('ticketevolution')); 61 | }); 62 | 63 | $this->app->alias('tevo', Client::class); 64 | } 65 | 66 | 67 | /** 68 | * Get the services provided by the provider. 69 | * 70 | * @return array 71 | */ 72 | public function provides() 73 | { 74 | return ['tevo']; 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /src/Laravel/config/ticketevolution.php: -------------------------------------------------------------------------------- 1 | env('TICKETEVOLUTION_API_BASEURL') ?: 'https://api.ticketevolution.com/v9', 20 | 'apiVersion' => env('TICKETEVOLUTION_API_VERSION') ?: 'v9', 21 | 'apiToken' => env('TICKETEVOLUTION_API_TOKEN'), 22 | 'apiSecret' => env('TICKETEVOLUTION_API_SECRET'), 23 | 'debug' => false, 24 | ]; 25 | -------------------------------------------------------------------------------- /src/PhpLoader.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Orders / Create 19 | */ 20 | 'createOrders' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'POST', 23 | 'uri' => '/v10/orders', 24 | 'summary' => 'Create an Order.', 25 | 'notes' => 'Creates a single order.', 26 | 'documentationUrl' => null, 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'order' => [ 31 | 'location' => 'json', 32 | 'type' => 'object', 33 | 'description' => 'An Order to create.', 34 | 'required' => true, 35 | ], 36 | ], 37 | ], 38 | ], 39 | 40 | /* 41 | |-------------------------------------------------------------------------- 42 | | Models 43 | |-------------------------------------------------------------------------- 44 | | 45 | | This array of models is specifications to returning the response 46 | | from the operation methods. 47 | | 48 | */ 49 | 50 | 'models' => [], 51 | ]; 52 | -------------------------------------------------------------------------------- /src/Resources/v10/service-description.php: -------------------------------------------------------------------------------- 1 | 'Ticket Evolution', 14 | 15 | /* 16 | |-------------------------------------------------------------------------- 17 | | Service Description 18 | |-------------------------------------------------------------------------- 19 | | 20 | | Description of the API service. 21 | | 22 | */ 23 | 24 | 'description' => 'A Ticket Evolution API Wrapper built using Guzzle.', 25 | 26 | /* 27 | |-------------------------------------------------------------------------- 28 | | API Version 29 | |-------------------------------------------------------------------------- 30 | | 31 | | Description of the API service. 32 | | 33 | */ 34 | 35 | 'apiVersion' => 'v10', 36 | 37 | /* 38 | |-------------------------------------------------------------------------- 39 | | Service Configurations 40 | |-------------------------------------------------------------------------- 41 | | 42 | | Configuration files of specific service descriptions to load. 43 | | 44 | */ 45 | 46 | 'imports' => [ 47 | 'orders.php', 48 | ], 49 | 50 | 51 | /* 52 | |-------------------------------------------------------------------------- 53 | | Default models 54 | |-------------------------------------------------------------------------- 55 | | 56 | | Default response models for typical usage of responses 57 | | 58 | */ 59 | 60 | 'models' => [ 61 | 'defaultJsonResponse' => [ 62 | 'type' => 'object', 63 | 'additionalProperties' => [ 64 | 'location' => 'json', 65 | ], 66 | ], 67 | ], 68 | ]; 69 | -------------------------------------------------------------------------------- /src/Resources/v9/accounts.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Accounts / Index 19 | */ 20 | 'listAccounts' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/accounts', 24 | 'summary' => 'Get a list of all accounts.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4751480', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Accounts / Show 51 | */ 52 | 'showAccount' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/accounts/{account_id}', 56 | 'summary' => 'Get a single account.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4751482', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'account_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Account to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | /** 72 | * Transactions / Index 73 | */ 74 | 'listTransactions' => [ 75 | 'extends' => null, 76 | 'httpMethod' => 'GET', 77 | 'uri' => '/v9/accounts/{account_id}/transactions', 78 | 'summary' => 'Get a list of all transactions.', 79 | 'notes' => '', 80 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4751489', 81 | 'deprecated' => false, 82 | 'responseModel' => 'defaultJsonResponse', 83 | 'parameters' => [ 84 | 'page' => [ 85 | 'location' => 'query', 86 | 'type' => 'integer', 87 | 'description' => 'Which page of results to return.', 88 | 'required' => false, 89 | 'default' => 1, 90 | ], 91 | 'per_page' => [ 92 | 'location' => 'query', 93 | 'type' => 'integer', 94 | 'description' => 'The integer of items for each page of results.', 95 | 'required' => false, 96 | 'default' => 100, 97 | ], 98 | 'account_id' => [ 99 | 'location' => 'uri', 100 | 'type' => 'integer', 101 | 'description' => 'The account number.', 102 | 'required' => true, 103 | ], 104 | ], 105 | 'additionalParameters' => ['location' => 'query'], 106 | ], 107 | 108 | 109 | /** 110 | * Transactions / Show 111 | */ 112 | 'showTransaction' => [ 113 | 'extends' => null, 114 | 'httpMethod' => 'GET', 115 | 'uri' => '/v9/accounts/{account_id}/transactions/{transaction_id}', 116 | 'summary' => 'Get a single transaction.', 117 | 'notes' => '', 118 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4751495', 119 | 'deprecated' => false, 120 | 'responseModel' => 'defaultJsonResponse', 121 | 'parameters' => [ 122 | 'account_id' => [ 123 | 'location' => 'uri', 124 | 'type' => 'integer', 125 | 'description' => 'The account number.', 126 | 'required' => true, 127 | ], 128 | 'transaction_id' => [ 129 | 'location' => 'uri', 130 | 'type' => 'integer', 131 | 'description' => 'The transaction number.', 132 | 'required' => true, 133 | ], 134 | ], 135 | ], 136 | 137 | /** 138 | * Transactions / Create 139 | */ 140 | 'createTransactions' => [ 141 | 'extends' => null, 142 | 'httpMethod' => 'POST', 143 | 'uri' => '/v9/accounts/{account_id}/transactions', 144 | 'summary' => 'Get a list of all transactions.', 145 | 'notes' => '', 146 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4751480', 147 | 'deprecated' => false, 148 | 'responseModel' => 'defaultJsonResponse', 149 | 'parameters' => [ 150 | 'account_id' => [ 151 | 'location' => 'uri', 152 | 'type' => 'integer', 153 | 'description' => 'The account number.', 154 | 'required' => true, 155 | ], 156 | 'transactions' => [ 157 | 'location' => 'json', 158 | 'type' => 'array', 159 | 'description' => 'A collection of transactions to create.', 160 | 'required' => true, 161 | ], 162 | ], 163 | ], 164 | 165 | 166 | ], 167 | 168 | /* 169 | |-------------------------------------------------------------------------- 170 | | Models 171 | |-------------------------------------------------------------------------- 172 | | 173 | | This array of models is specifications to returning the response 174 | | from the operation methods. 175 | | 176 | */ 177 | 178 | 'models' => [], 179 | ]; 180 | -------------------------------------------------------------------------------- /src/Resources/v9/brokerages.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Brokerages / Index 19 | */ 20 | 'listBrokerages' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/brokerages', 24 | 'summary' => 'Get a list of all brokerages.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=25001994', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The number of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Brokerages / Show 51 | */ 52 | 'showBrokerage' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/brokerages/{brokerage_id}', 56 | 'summary' => 'Get a single brokerage.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=25002003', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'brokerage_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Brokerage to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Brokerages / Search 74 | */ 75 | 'searchBrokerages' => [ 76 | 'extends' => 'listBrokerages', 77 | 'httpMethod' => 'GET', 78 | 'uri' => '/v9/brokerages/search', 79 | 'summary' => 'Search across brokerages.', 80 | 'notes' => '', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=25002003', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'q' => [ 86 | 'location' => 'query', 87 | 'type' => 'string', 88 | 'description' => 'Search query', 89 | 'required' => true 90 | ], 91 | ], 92 | 'additionalParameters' => ['location' => 'query'], 93 | ], 94 | 95 | ], 96 | 97 | /* 98 | |-------------------------------------------------------------------------- 99 | | Models 100 | |-------------------------------------------------------------------------- 101 | | 102 | | This array of models is specifications to returning the response 103 | | from the operation methods. 104 | | 105 | */ 106 | 107 | 'models' => [], 108 | ]; -------------------------------------------------------------------------------- /src/Resources/v9/categories.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Categories / Index 19 | */ 20 | 'listCategories' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/categories', 24 | 'summary' => 'Get a list of all categories.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470005', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [], 30 | 'additionalParameters' => ['location' => 'query'], 31 | ], 32 | 33 | 34 | /** 35 | * Categories / Show 36 | */ 37 | 'showCategory' => [ 38 | 'extends' => null, 39 | 'httpMethod' => 'GET', 40 | 'uri' => '/v9/categories/{category_id}', 41 | 'summary' => 'Get a single category.', 42 | 'notes' => '', 43 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470098', 44 | 'deprecated' => false, 45 | 'responseModel' => 'defaultJsonResponse', 46 | 'parameters' => [ 47 | 'category_id' => [ 48 | 'location' => 'uri', 49 | 'type' => 'integer', 50 | 'description' => 'ID of the Category to return.', 51 | 'required' => true, 52 | ], 53 | ], 54 | 'additionalParameters' => null, 55 | ], 56 | 57 | 58 | /** 59 | * Categories / Deleted 60 | */ 61 | 'listCategoriesDeleted' => [ 62 | 'extends' => 'listCategories', 63 | 'httpMethod' => 'GET', 64 | 'uri' => '/v9/categories/deleted', 65 | 'summary' => 'Obtain a list of Categories that have been deleted.', 66 | 'notes' => '', 67 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=31948905', 68 | 'deprecated' => false, 69 | 'responseModel' => 'defaultJsonResponse', 70 | 'parameters' => [ 71 | 'deleted_at.gte' => [ 72 | 'location' => 'query', 73 | 'type' => 'string', 74 | 'description' => 'ISO 8601 Date of deletion', 75 | 'required' => false, 76 | 'format' => 'date-time', 77 | ], 78 | 'deleted_at.lte' => [ 79 | 'location' => 'query', 80 | 'type' => 'string', 81 | 'description' => 'ISO 8601 Date of deletion', 82 | 'required' => false, 83 | 'format' => 'date-time', 84 | ], 85 | ], 86 | 'additionalParameters' => ['location' => 'query'], 87 | ], 88 | 89 | ], 90 | 91 | /* 92 | |-------------------------------------------------------------------------- 93 | | Models 94 | |-------------------------------------------------------------------------- 95 | | 96 | | This array of models is specifications to returning the response 97 | | from the operation methods. 98 | | 99 | */ 100 | 101 | 'models' => [], 102 | ]; 103 | -------------------------------------------------------------------------------- /src/Resources/v9/commissions.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Commissions / Index 19 | */ 20 | 'listCommissions' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/commissions', 24 | 'summary' => 'Get a list of all commissions.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994334', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Commissions / Show 51 | */ 52 | 'showCommission' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/commissions/{commission_id}', 56 | 'summary' => 'Get a single commission.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994338', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'commission_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Commission to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Commissions / Cancel 74 | */ 75 | 'cancelCommissions' => [ 76 | 'extends' => null, 77 | 'httpMethod' => 'GET', 78 | 'uri' => '/v9/commissions/{commission_id}/cancel', 79 | 'summary' => 'Cancel an active commission.', 80 | 'notes' => '', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994342', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'commission_id' => [ 86 | 'location' => 'uri', 87 | 'type' => 'integer', 88 | 'description' => 'ID of the Commission to return.', 89 | 'required' => true, 90 | ], 91 | ], 92 | ], 93 | 94 | 95 | /** 96 | * Commissions / Pay 97 | */ 98 | 'payCommissions' => [ 99 | 'extends' => null, 100 | 'httpMethod' => 'POST', 101 | 'uri' => '/v9/commissions/pay', 102 | 'summary' => 'Create a payment for one or more commissions.', 103 | 'notes' => '', 104 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994344', 105 | 'deprecated' => false, 106 | 'responseModel' => 'defaultJsonResponse', 107 | 'parameters' => [ 108 | 'transactions' => [ 109 | 'location' => 'json', 110 | 'type' => 'array', 111 | 'description' => 'An array of transactions to create.', 112 | 'required' => true, 113 | ], 114 | ], 115 | 'additionalParameters' => ['location' => 'json'], 116 | ], 117 | 118 | 119 | /** 120 | * Commission Payments / Index 121 | */ 122 | 'listCommissionPayments' => [ 123 | 'extends' => null, 124 | 'httpMethod' => 'GET', 125 | 'uri' => '/v9/commissions/{commission_id}/commission_payments', 126 | 'summary' => 'List all payments on a commission.', 127 | 'notes' => '', 128 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994352', 129 | 'deprecated' => false, 130 | 'responseModel' => 'defaultJsonResponse', 131 | 'parameters' => [ 132 | 'commission_id' => [ 133 | 'location' => 'uri', 134 | 'type' => 'integer', 135 | 'description' => 'ID of the Commission.', 136 | 'required' => true, 137 | ], 138 | ], 139 | ], 140 | 141 | /** 142 | * Commission Payments / Show 143 | */ 144 | 'showCommissionPayment' => [ 145 | 'extends' => null, 146 | 'httpMethod' => 'GET', 147 | 'uri' => '/v9/commissions/{commission_id}/commission_payments/{commission_payment_id}', 148 | 'summary' => 'Display information about a commission payment.', 149 | 'notes' => '', 150 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994354', 151 | 'deprecated' => false, 152 | 'responseModel' => 'defaultJsonResponse', 153 | 'parameters' => [ 154 | 'commission_id' => [ 155 | 'location' => 'uri', 156 | 'type' => 'integer', 157 | 'description' => 'ID of the Commission.', 158 | 'required' => true, 159 | ], 160 | 'commission_payment_id' => [ 161 | 'location' => 'uri', 162 | 'type' => 'integer', 163 | 'description' => 'ID of the Commission.', 164 | 'required' => true, 165 | ], 166 | ], 167 | ], 168 | 169 | /** 170 | * Commission Payments / Apply 171 | */ 172 | 'applyCommissionPayment' => [ 173 | 'extends' => null, 174 | 'httpMethod' => 'GET', 175 | 'uri' => '/v9/commissions/{commission_id}/commission_payments/{commission_payment_id}', 176 | 'summary' => 'Complete a commission payment.', 177 | 'notes' => '', 178 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994357', 179 | 'deprecated' => false, 180 | 'responseModel' => 'defaultJsonResponse', 181 | 'parameters' => [ 182 | 'commission_id' => [ 183 | 'location' => 'uri', 184 | 'type' => 'integer', 185 | 'description' => 'ID of the Commission.', 186 | 'required' => true, 187 | ], 188 | 'commission_payment_id' => [ 189 | 'location' => 'uri', 190 | 'type' => 'integer', 191 | 'description' => 'ID of the Commission.', 192 | 'required' => true, 193 | ], 194 | ], 195 | ], 196 | 197 | /** 198 | * Commission Payments / Cancel 199 | */ 200 | 'cancelCommissionPayment' => [ 201 | 'extends' => null, 202 | 'httpMethod' => 'GET', 203 | 'uri' => '/v9/commissions/{commission_id}/commission_payments/{commission_payment_id}', 204 | 'summary' => 'Cancel a commission payment.', 205 | 'notes' => '', 206 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994361', 207 | 'deprecated' => false, 208 | 'responseModel' => 'defaultJsonResponse', 209 | 'parameters' => [ 210 | 'commission_id' => [ 211 | 'location' => 'uri', 212 | 'type' => 'integer', 213 | 'description' => 'ID of the Commission.', 214 | 'required' => true, 215 | ], 216 | 'commission_payment_id' => [ 217 | 'location' => 'uri', 218 | 'type' => 'integer', 219 | 'description' => 'ID of the Commission.', 220 | 'required' => true, 221 | ], 222 | ], 223 | ], 224 | 225 | 226 | ], 227 | 228 | /* 229 | |-------------------------------------------------------------------------- 230 | | Models 231 | |-------------------------------------------------------------------------- 232 | | 233 | | This array of models is specifications to returning the response 234 | | from the operation methods. 235 | | 236 | */ 237 | 238 | 'models' => [], 239 | ]; 240 | -------------------------------------------------------------------------------- /src/Resources/v9/companies.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Companies / Index 19 | */ 20 | 'listCompanies' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/companies', 24 | 'summary' => 'Get a list of all companies.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=30572746', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Companies / Show 51 | */ 52 | 'showCompany' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/companies/{company_id}', 56 | 'summary' => 'Get a single company.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=30572749', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'company_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Company to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Companies / Create 74 | */ 75 | 'createCompanies' => [ 76 | 'extends' => null, 77 | 'httpMethod' => 'POST', 78 | 'uri' => '/v9/companies', 79 | 'summary' => 'Create one or more Companies.', 80 | 'notes' => 'Note that this takes an array of Companies even if only creating one.', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=30572753', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'companies' => [ 86 | 'location' => 'json', 87 | 'type' => 'array', 88 | 'description' => 'A collection of Companies to create.', 89 | 'required' => true, 90 | ], 91 | ], 92 | ], 93 | 94 | 95 | /** 96 | * Companies / Update 97 | */ 98 | 'updateCompany' => [ 99 | 'extends' => null, 100 | 'httpMethod' => 'PUT', 101 | 'uri' => '/v9/companies/{company_id}', 102 | 'summary' => 'Update a company.', 103 | 'notes' => '', 104 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=30572755', 105 | 'deprecated' => false, 106 | 'responseModel' => 'defaultJsonResponse', 107 | 'parameters' => [ 108 | 'company_id' => [ 109 | 'location' => 'uri', 110 | 'type' => 'integer', 111 | 'description' => 'The company number.', 112 | 'required' => true, 113 | ], 114 | 'name' => [ 115 | 'location' => 'json', 116 | 'type' => 'string', 117 | 'description' => 'The company’s full name.', 118 | 'required' => false, 119 | ], 120 | ], 121 | 'additionalParameters' => ['location' => 'json'], 122 | ], 123 | 124 | 125 | ], 126 | 127 | /* 128 | |-------------------------------------------------------------------------- 129 | | Models 130 | |-------------------------------------------------------------------------- 131 | | 132 | | This array of models is specifications to returning the response 133 | | from the operation methods. 134 | | 135 | */ 136 | 137 | 'models' => [], 138 | ]; 139 | -------------------------------------------------------------------------------- /src/Resources/v9/configurations.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Configurations / Index 19 | */ 20 | 'listConfigurations' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/configurations', 24 | 'summary' => 'Get a list of all configurations.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470120', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Configurations / Show 51 | */ 52 | 'showConfiguration' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/configurations/{configuration_id}', 56 | 'summary' => 'Get a single configuration.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470125', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'configuration_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Configuration to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | 'additionalParameters' => null, 70 | ], 71 | 72 | 73 | ], 74 | 75 | /* 76 | |-------------------------------------------------------------------------- 77 | | Models 78 | |-------------------------------------------------------------------------- 79 | | 80 | | This array of models is specifications to returning the response 81 | | from the operation methods. 82 | | 83 | */ 84 | 85 | 'models' => [], 86 | ]; 87 | -------------------------------------------------------------------------------- /src/Resources/v9/credentials.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Credentials / Index 19 | */ 20 | 'listCredentials' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/credentials', 24 | 'summary' => 'Get a list of all credentials.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994366', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [], 30 | 'additionalParameters' => ['location' => 'query'], 31 | ], 32 | 33 | 34 | /** 35 | * Credentials / Show 36 | */ 37 | // 'showCredential' => [ 38 | // 'extends' => null, 39 | // 'httpMethod' => 'GET', 40 | // 'uri' => '/v9/credentials/{credential_id}', 41 | // 'summary' => 'Get a single credential.', 42 | // 'notes' => '', 43 | // 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=25002003', 44 | // 'deprecated' => false, 45 | // 'responseModel' => 'defaultJsonResponse', 46 | // 'parameters' => [ 47 | // 'credential_id' => [ 48 | // 'location' => 'uri', 49 | // 'type' => 'integer', 50 | // 'description' => 'ID of the Credential.', 51 | // 'required' => true, 52 | // ], 53 | // ], 54 | // ], 55 | 56 | 57 | ], 58 | 59 | /* 60 | |-------------------------------------------------------------------------- 61 | | Models 62 | |-------------------------------------------------------------------------- 63 | | 64 | | This array of models is specifications to returning the response 65 | | from the operation methods. 66 | | 67 | */ 68 | 69 | 'models' => [], 70 | ]; 71 | -------------------------------------------------------------------------------- /src/Resources/v9/credit_memos.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Credit Memos / Index 19 | */ 20 | 'listCreditMemos' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/credit_memos', 24 | 'summary' => 'Get a list of all Credit Memos.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470159', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Credit Memos / Show 51 | */ 52 | 'showCreditMemo' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/credit_memos/{credit_memo_id}', 56 | 'summary' => 'Get a single Credit Memo.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470162', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'credit_memo_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Credit memo to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Credit Memos / Cards 74 | */ 75 | 'listCreditMemoCards' => [ 76 | 'extends' => null, 77 | 'httpMethod' => 'GET', 78 | 'uri' => '/v9/credit_memos/{credit_memo_id}/cards', 79 | 'summary' => 'Display credit card transactions on the order that created the credit memo.', 80 | 'notes' => '', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470164', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'credit_memo_id' => [ 86 | 'location' => 'uri', 87 | 'type' => 'integer', 88 | 'description' => 'ID of the Credit memo to return.', 89 | 'required' => true, 90 | ], 91 | ], 92 | ], 93 | 94 | 95 | /** 96 | * Credit Memos / Update 97 | */ 98 | 'updateCreditMemo' => [ 99 | 'extends' => null, 100 | 'httpMethod' => 'PUT', 101 | 'uri' => '/v9/credit_memos/{credit_memo_id}', 102 | 'summary' => 'Update the Quickbooks remote_id parameter for this credit memo.', 103 | 'notes' => '', 104 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994259', 105 | 'deprecated' => false, 106 | 'responseModel' => 'defaultJsonResponse', 107 | 'parameters' => [ 108 | 'credit_memo_id' => [ 109 | 'location' => 'uri', 110 | 'type' => 'integer', 111 | 'description' => 'ID of the Credit memo to return.', 112 | 'required' => true, 113 | ], 114 | 'remote_id' => [ 115 | 'location' => 'json', 116 | 'type' => 'integer', 117 | 'description' => 'The remote_id parameter for a credit memo exists to store a remote ID from another 118 | system. It was designed with Quickbooks in mind, but could be used for any remote 119 | application. This endpoint will update that parameter only.', 120 | 'required' => true, 121 | ], 122 | ], 123 | ], 124 | 125 | 126 | /** 127 | * Credit Memo Payments / Index 128 | */ 129 | 'listCreditMemoPayments' => [ 130 | 'extends' => null, 131 | 'httpMethod' => 'GET', 132 | 'uri' => '/v9/credit_memos/{credit_memo_id}/credit_memo_payments', 133 | 'summary' => 'List payments for a credit memo.', 134 | 'notes' => '', 135 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994245', 136 | 'deprecated' => false, 137 | 'responseModel' => 'defaultJsonResponse', 138 | 'parameters' => [ 139 | 'credit_memo_id' => [ 140 | 'location' => 'uri', 141 | 'type' => 'integer', 142 | 'description' => 'ID of the Credit memo.', 143 | 'required' => true, 144 | ], 145 | ], 146 | ], 147 | 148 | /** 149 | * Credit Memo Payments / Show 150 | */ 151 | 'showCreditMemoPayment' => [ 152 | 'extends' => null, 153 | 'httpMethod' => 'GET', 154 | 'uri' => '/v9/credit_memos/{credit_memo_id}/credit_memo_payments/{credit_memo_payment_id}', 155 | 'summary' => 'Display details about a credit memo payment.', 156 | 'notes' => '', 157 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994247', 158 | 'deprecated' => false, 159 | 'responseModel' => 'defaultJsonResponse', 160 | 'parameters' => [ 161 | 'credit_memo_id' => [ 162 | 'location' => 'uri', 163 | 'type' => 'integer', 164 | 'description' => 'ID of the Credit Memo.', 165 | 'required' => true, 166 | ], 167 | 'credit_memo_payment_id' => [ 168 | 'location' => 'uri', 169 | 'type' => 'integer', 170 | 'description' => 'ID of the Credit Memo Payment.', 171 | 'required' => true, 172 | ], 173 | ], 174 | ], 175 | 176 | /** 177 | * Credit Memo Payments / Create 178 | */ 179 | 'createCreditMemoPayments' => [ 180 | 'extends' => null, 181 | 'httpMethod' => 'POST', 182 | 'uri' => '/v9/credit_memos/{credit_memo_id}/credit_memo_payments', 183 | 'summary' => 'Create a payment for a credit memo.', 184 | 'notes' => 'Note that this takes an array of Credit Memo Payments even if only creating one.', 185 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994249', 186 | 'deprecated' => false, 187 | 'responseModel' => 'defaultJsonResponse', 188 | 'parameters' => [ 189 | 'credit_memo_id' => [ 190 | 'location' => 'uri', 191 | 'type' => 'integer', 192 | 'description' => 'ID of the Credit Memo.', 193 | 'required' => true, 194 | ], 195 | 'credit_memo_payments' => [ 196 | 'location' => 'json', 197 | 'type' => 'array', 198 | 'description' => 'A collection of Credit Memo Payments to create.', 199 | 'required' => true, 200 | ], 201 | ], 202 | ], 203 | 204 | /** 205 | * Credit Memo Payments / Apply 206 | */ 207 | 'applyCreditMemoPayment' => [ 208 | 'extends' => null, 209 | 'httpMethod' => 'GET', 210 | 'uri' => '/v9/credit_memos/{credit_memo_id}/credit_memo_payments/{credit_memo_payment_id}', 211 | 'summary' => 'Apply a pending credit memo payment.', 212 | 'notes' => '', 213 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994255', 214 | 'deprecated' => false, 215 | 'responseModel' => 'defaultJsonResponse', 216 | 'parameters' => [ 217 | 'credit_memo_id' => [ 218 | 'location' => 'uri', 219 | 'type' => 'integer', 220 | 'description' => 'ID of the Credit memo.', 221 | 'required' => true, 222 | ], 223 | 'credit_memo_payment_id' => [ 224 | 'location' => 'uri', 225 | 'type' => 'integer', 226 | 'description' => 'ID of the Credit memo.', 227 | 'required' => true, 228 | ], 229 | 'check_number' => [ 230 | 'location' => 'query', 231 | 'type' => 'integer', 232 | 'description' => 'Adds a check number to a payment of type "check".', 233 | 'required' => false, 234 | ], 235 | ], 236 | ], 237 | 238 | /** 239 | * Credit Memo Payments / Cancel 240 | */ 241 | 'cancelCreditMemoPayment' => [ 242 | 'extends' => null, 243 | 'httpMethod' => 'GET', 244 | 'uri' => '/v9/credit_memos/{credit_memo_id}/credit_memo_payments/{credit_memo_payment_id}', 245 | 'summary' => 'Cancel a pending credit memo payment.', 246 | 'notes' => '', 247 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994257', 248 | 'deprecated' => false, 249 | 'responseModel' => 'defaultJsonResponse', 250 | 'parameters' => [ 251 | 'credit_memo_id' => [ 252 | 'location' => 'uri', 253 | 'type' => 'integer', 254 | 'description' => 'ID of the Credit memo.', 255 | 'required' => true, 256 | ], 257 | 'credit_memo_payment_id' => [ 258 | 'location' => 'uri', 259 | 'type' => 'integer', 260 | 'description' => 'ID of the Credit memo.', 261 | 'required' => true, 262 | ], 263 | ], 264 | ], 265 | 266 | 267 | ], 268 | 269 | /* 270 | |-------------------------------------------------------------------------- 271 | | Models 272 | |-------------------------------------------------------------------------- 273 | | 274 | | This array of models is specifications to returning the response 275 | | from the operation methods. 276 | | 277 | */ 278 | 279 | 'models' => [], 280 | ]; 281 | -------------------------------------------------------------------------------- /src/Resources/v9/events.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Events / Index 19 | */ 20 | 'listEvents' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/events', 24 | 'summary' => 'Get a list of all events.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470092', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'min_and_max_price' => [ 31 | 'location' => 'query', 32 | 'type' => ['boolean', 'string'], 33 | 'description' => 'If true the response will include avg_price, sum_price, median_price, min_price & max_price, calculated based on that Credential’s settings', 34 | 'required' => false, 35 | 'default' => false, 36 | 'format' => 'boolean-string', 37 | ], 38 | 'page' => [ 39 | 'location' => 'query', 40 | 'type' => 'integer', 41 | 'description' => 'Which page of results to return.', 42 | 'required' => false, 43 | 'default' => 1, 44 | ], 45 | 'per_page' => [ 46 | 'location' => 'query', 47 | 'type' => 'integer', 48 | 'description' => 'The integer of items for each page of results.', 49 | 'required' => false, 50 | 'default' => 100, 51 | ], 52 | ], 53 | 'additionalParameters' => ['location' => 'query'], 54 | ], 55 | 56 | 57 | /** 58 | * Events / Show 59 | */ 60 | 'showEvent' => [ 61 | 'extends' => null, 62 | 'httpMethod' => 'GET', 63 | 'uri' => '/v9/events/{event_id}', 64 | 'summary' => 'Get a single event.', 65 | 'notes' => '', 66 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470094', 67 | 'deprecated' => false, 68 | 'responseModel' => 'defaultJsonResponse', 69 | 'parameters' => [ 70 | 'event_id' => [ 71 | 'location' => 'uri', 72 | 'type' => 'integer', 73 | 'description' => 'ID of the Event to return.', 74 | 'required' => true, 75 | ], 76 | ], 77 | 'additionalParameters' => null, 78 | ], 79 | 80 | 81 | /** 82 | * Events / Deleted 83 | */ 84 | 'listEventsDeleted' => [ 85 | 'extends' => null, 86 | 'httpMethod' => 'GET', 87 | 'uri' => '/v9/events/deleted', 88 | 'summary' => 'Obtain a list of Events that have been deleted.', 89 | 'notes' => '', 90 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=31948920', 91 | 'deprecated' => false, 92 | 'responseModel' => 'defaultJsonResponse', 93 | 'parameters' => [ 94 | 'page' => [ 95 | 'location' => 'query', 96 | 'type' => 'integer', 97 | 'description' => 'Which page of results to return.', 98 | 'required' => false, 99 | 'default' => 1, 100 | ], 101 | 'per_page' => [ 102 | 'location' => 'query', 103 | 'type' => 'integer', 104 | 'description' => 'The integer of items for each page of results.', 105 | 'required' => false, 106 | 'default' => 100, 107 | ], 108 | 'deleted_at.gte' => [ 109 | 'location' => 'query', 110 | 'type' => 'string', 111 | 'description' => 'ISO 8601 Date of deletion', 112 | 'required' => false, 113 | 'format' => 'date-time', 114 | ], 115 | 'deleted_at.lte' => [ 116 | 'location' => 'query', 117 | 'type' => 'string', 118 | 'description' => 'ISO 8601 Date of deletion', 119 | 'required' => false, 120 | 'format' => 'date-time', 121 | ], 122 | ], 123 | 'additionalParameters' => ['location' => 'query'], 124 | ], 125 | 126 | 127 | /** 128 | * Events / Search 129 | */ 130 | 'searchEvents' => [ 131 | 'extends' => 'listEvents', 132 | 'httpMethod' => 'GET', 133 | 'uri' => '/v9/events/search', 134 | 'summary' => 'Get a list of all events.', 135 | 'notes' => '', 136 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470096', 137 | 'deprecated' => false, 138 | 'responseModel' => 'defaultJsonResponse', 139 | 'parameters' => [ 140 | 'q' => [ 141 | 'location' => 'query', 142 | 'type' => 'string', 143 | 'description' => 'Full-text search events.', 144 | 'required' => false, 145 | ], 146 | ], 147 | 'additionalParameters' => ['location' => 'query'], 148 | ], 149 | 150 | 151 | /** 152 | * Events / Pinned 153 | */ 154 | 'listEventsPinned' => [ 155 | 'extends' => 'listEvents', 156 | 'httpMethod' => 'GET', 157 | 'uri' => '/v9/events/pinned', 158 | 'summary' => 'Obtain a list of upcoming Events that have been Pinned by this User.', 159 | 'notes' => '', 160 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=34308120', 161 | 'deprecated' => false, 162 | 'responseModel' => 'defaultJsonResponse', 163 | 'parameters' => [], 164 | ], 165 | 166 | 167 | /** 168 | * Events / Stats 169 | */ 170 | 'showEventStats' => [ 171 | 'extends' => null, 172 | 'httpMethod' => 'GET', 173 | 'uri' => '/v9/events/{event_id}/stats', 174 | 'summary' => 'Get statistics for a single event.', 175 | 'notes' => '', 176 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/spaces/API/pages/3057319937/Events+Stats', 177 | 'deprecated' => false, 178 | 'responseModel' => 'defaultJsonResponse', 179 | 'parameters' => [ 180 | 'event_id' => [ 181 | 'location' => 'uri', 182 | 'type' => 'integer', 183 | 'description' => 'ID of the Event for which to return statistics.', 184 | 'required' => true, 185 | ], 186 | ], 187 | 'additionalParameters' => null, 188 | ], 189 | 190 | 191 | ], 192 | 193 | /* 194 | |-------------------------------------------------------------------------- 195 | | Models 196 | |-------------------------------------------------------------------------- 197 | | 198 | | This array of models is specifications to returning the response 199 | | from the operation methods. 200 | | 201 | */ 202 | 203 | 'models' => [], 204 | ]; 205 | -------------------------------------------------------------------------------- /src/Resources/v9/filtered_tickets.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Filtered Tickets / Held 19 | */ 20 | 'listFilteredTicketsHeld' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/filtered_tickets/held', 24 | 'summary' => 'Display tickets that have been reserved with a "hold" action.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994314', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The number of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | ], 46 | 47 | 48 | /** 49 | * Filtered Tickets / Taken 50 | */ 51 | 'listFilteredTicketsTaken' => [ 52 | 'extends' => null, 53 | 'httpMethod' => 'GET', 54 | 'uri' => '/v9/filtered_tickets/taken', 55 | 'summary' => 'Tickets that have been reserved for a buyer with a "take" action.', 56 | 'notes' => '', 57 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994317', 58 | 'deprecated' => false, 59 | 'responseModel' => 'defaultJsonResponse', 60 | 'parameters' => [ 61 | 'page' => [ 62 | 'location' => 'query', 63 | 'type' => 'integer', 64 | 'description' => 'Which page of results to return.', 65 | 'required' => false, 66 | 'default' => 1, 67 | ], 68 | 'per_page' => [ 69 | 'location' => 'query', 70 | 'type' => 'integer', 71 | 'description' => 'The number of items for each page of results.', 72 | 'required' => false, 73 | 'default' => 100, 74 | ], 75 | ], 76 | ], 77 | ], 78 | 79 | /* 80 | |-------------------------------------------------------------------------- 81 | | Models 82 | |-------------------------------------------------------------------------- 83 | | 84 | | This array of models is specifications to returning the response 85 | | from the operation methods. 86 | | 87 | */ 88 | 89 | 'models' => [], 90 | ]; 91 | -------------------------------------------------------------------------------- /src/Resources/v9/listings.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Listings / Index 19 | */ 20 | 'listings' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/listings', 24 | 'summary' => 'The new, faster way to list all ticket groups for an event.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/spaces/API/pages/2853797930/Listings+Index', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'event_id' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'ID of the Event for which you would like to list tickets.', 34 | 'required' => true, 35 | ], 36 | 'type' => [ 37 | 'location' => 'query', 38 | 'type' => 'string', 39 | 'description' => 'Filter by Ticket Group Type.', 40 | 'required' => false, 41 | 'enum' => [ 42 | 'event', 43 | 'parking', 44 | ] 45 | ], 46 | 'quantity' => [ 47 | 'location' => 'query', 48 | 'type' => 'integer', 49 | 'description' => 'Filter by number of tickets greater than passed value.', 50 | 'required' => false, 51 | ], 52 | 'section' => [ 53 | 'location' => 'query', 54 | 'type' => 'string', 55 | 'description' => 'Filter by exact match section.', 56 | 'required' => false, 57 | ], 58 | 'row' => [ 59 | 'location' => 'query', 60 | 'type' => 'string', 61 | 'description' => 'Filter by exact match row.', 62 | 'required' => false, 63 | ], 64 | 'owned' => [ 65 | 'location' => 'query', 66 | 'type' => ['boolean', 'string'], 67 | 'description' => 'Show only your own listings.', 68 | 'required' => false, 69 | 'format' => 'boolean-string', 70 | ], 71 | 'order_by' => [ 72 | 'location' => 'query', 73 | 'type' => 'string', 74 | 'description' => 'Sort results by any return parameter.', 75 | 'required' => false, 76 | ], 77 | ], 78 | 'additionalParameters' => ['location' => 'query'], 79 | ], 80 | 81 | 82 | /** 83 | * Ticket Groups / Show 84 | */ 85 | 'showListing' => [ 86 | 'extends' => null, 87 | 'httpMethod' => 'GET', 88 | 'uri' => '/v9/listings/{id}', 89 | 'summary' => 'Get a single Listing (Ticket Group).', 90 | 'notes' => '', 91 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9469964', 92 | 'deprecated' => false, 93 | 'responseModel' => 'defaultJsonResponse', 94 | 'parameters' => [ 95 | 'id' => [ 96 | 'location' => 'uri', 97 | 'type' => 'integer', 98 | 'description' => 'ID of the Listing to return.', 99 | 'required' => true, 100 | ], 101 | ], 102 | ], 103 | 104 | ], 105 | 106 | /* 107 | |-------------------------------------------------------------------------- 108 | | Models 109 | |-------------------------------------------------------------------------- 110 | | 111 | | This array of models is specifications to returning the response 112 | | from the operation methods. 113 | | 114 | */ 115 | 116 | 'models' => [], 117 | ]; 118 | -------------------------------------------------------------------------------- /src/Resources/v9/offices.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Offices / Index 19 | */ 20 | 'listOffices' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/offices', 24 | 'summary' => 'Get a list of all offices.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470028', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The number of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Offices / Show 51 | */ 52 | 'showOffice' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/offices/{office_id}', 56 | 'summary' => 'Get a single office.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470035', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'office_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Office to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Offices / Search 74 | */ 75 | 'searchOffices' => [ 76 | 'extends' => 'listOffices', 77 | 'httpMethod' => 'GET', 78 | 'uri' => '/v9/offices/search', 79 | 'summary' => 'Search across offices.', 80 | 'notes' => '', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470037', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'q' => [ 86 | 'location' => 'query', 87 | 'type' => 'string', 88 | 'description' => 'Search query', 89 | 'required' => true 90 | ], 91 | ], 92 | 'additionalParameters' => ['location' => 'query'], 93 | ], 94 | 95 | 96 | /** 97 | * Offices / Credit Cards / Index 98 | */ 99 | 'listOfficeCreditCards' => [ 100 | 'extends' => 'listOffices', 101 | 'httpMethod' => 'GET', 102 | 'uri' => '/v9/offices/{office_id}/credit_cards', 103 | 'summary' => 'List Credit Card for a specified Office.', 104 | 'notes' => '', 105 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4129301', 106 | 'deprecated' => false, 107 | 'responseModel' => 'defaultJsonResponse', 108 | 'parameters' => [ 109 | 'office_id' => [ 110 | 'location' => 'uri', 111 | 'type' => 'integer', 112 | 'description' => 'ID of the Office.', 113 | 'required' => true, 114 | ], 115 | ], 116 | 'additionalParameters' => ['location' => 'query'], 117 | ], 118 | 119 | 120 | /** 121 | * Offices / Credit Cards / Show 122 | */ 123 | // 'showOfficeCreditCard' => [ 124 | // 'extends' => null, 125 | // 'httpMethod' => 'GET', 126 | // 'uri' => '/v9/offices/{office_id}/credit_cards/{credit_card_id}', 127 | // 'summary' => 'Get a single office Credit Card.', 128 | // 'notes' => '', 129 | // 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=27394167', 130 | // 'deprecated' => false, 131 | // 'responseModel' => 'defaultJsonResponse', 132 | // 'parameters' => [ 133 | // 'office_id' => [ 134 | // 'location' => 'uri', 135 | // 'type' => 'integer', 136 | // 'description' => 'ID of the Office.', 137 | // 'required' => true, 138 | // ], 139 | // 'credit_card_id' => [ 140 | // 'location' => 'uri', 141 | // 'type' => 'integer', 142 | // 'description' => 'ID of the Credit Card.', 143 | // 'required' => true, 144 | // ], 145 | // ], 146 | // ], 147 | 148 | 149 | /** 150 | * Offices / Credit Cards / Create 151 | */ 152 | 'createOfficeCreditCards' => [ 153 | 'extends' => null, 154 | 'httpMethod' => 'POST', 155 | 'uri' => '/v9/offices/{office_id}/credit_cards', 156 | 'summary' => 'Create one or more Credit Cards for an existing office.', 157 | 'notes' => 'Note that this takes an array of Credit Cards even if only creating one.', 158 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4129312', 159 | 'deprecated' => false, 160 | 'responseModel' => 'defaultJsonResponse', 161 | 'parameters' => [ 162 | 'office_id' => [ 163 | 'location' => 'uri', 164 | 'type' => 'integer', 165 | 'description' => 'ID of the Office to return.', 166 | 'required' => true, 167 | ], 168 | 'credit_cards' => [ 169 | 'location' => 'json', 170 | 'type' => 'array', 171 | 'description' => 'A collection of Credit Cards to create.', 172 | 'required' => true, 173 | ], 174 | ], 175 | ], 176 | 177 | 178 | /** 179 | * Offices / Credit Cards / Update 180 | */ 181 | // 'updateOfficeCreditCard' => [ 182 | // 'extends' => null, 183 | // 'httpMethod' => 'PUT', 184 | // 'uri' => '/v9/offices/{office_id}/credit_cards/{credit_card_id}', 185 | // 'summary' => 'Update a office Credit Card.', 186 | // 'notes' => '', 187 | // 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=27394225', 188 | // 'deprecated' => false, 189 | // 'responseModel' => 'defaultJsonResponse', 190 | // 'parameters' => [ 191 | // 'office_id' => [ 192 | // 'location' => 'uri', 193 | // 'type' => 'integer', 194 | // 'description' => 'ID of the Office.', 195 | // 'required' => true, 196 | // ], 197 | // 'credit_card_id' => [ 198 | // 'location' => 'uri', 199 | // 'type' => 'integer', 200 | // 'description' => 'ID of the Credit Card.', 201 | // 'required' => true, 202 | // ], 203 | // ], 204 | // 'additionalParameters' => ['location' => 'json'], 205 | // ], 206 | 207 | 208 | /** 209 | * Offices / Credit Cards / Delete 210 | */ 211 | 'deleteOfficeCreditCard' => [ 212 | 'extends' => null, 213 | 'httpMethod' => 'DELETE', 214 | 'uri' => '/v9/offices/{office_id}/credit_cards/{credit_card_id}', 215 | 'summary' => 'Delete a office Credit Card.', 216 | 'notes' => '', 217 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/spaces/API/pages/30572559/Offices+Credit+Cards+Delete', 218 | 'deprecated' => false, 219 | 'responseModel' => 'defaultJsonResponse', 220 | 'parameters' => [ 221 | 'office_id' => [ 222 | 'location' => 'uri', 223 | 'type' => 'integer', 224 | 'description' => 'ID of the Office.', 225 | 'required' => true, 226 | ], 227 | 'credit_card_id' => [ 228 | 'location' => 'uri', 229 | 'type' => 'integer', 230 | 'description' => 'ID of the Credit Card.', 231 | 'required' => true, 232 | ], 233 | ], 234 | // 'additionalParameters' => ['location' => 'json'], 235 | ], 236 | 237 | 238 | ], 239 | 240 | /* 241 | |-------------------------------------------------------------------------- 242 | | Models 243 | |-------------------------------------------------------------------------- 244 | | 245 | | This array of models is specifications to returning the response 246 | | from the operation methods. 247 | | 248 | */ 249 | 250 | 'models' => [], 251 | ]; 252 | -------------------------------------------------------------------------------- /src/Resources/v9/payments.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | 18 | /** 19 | * Payments / Status 20 | */ 21 | 'listPayments' => [ 22 | 'extends' => null, 23 | 'httpMethod' => 'GET', 24 | 'uri' => '/v9/payments/status', 25 | 'summary' => 'Gives a query-able list of payments for a brokerages.', 26 | 'notes' => '', 27 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=4751401', 28 | 'deprecated' => false, 29 | 'responseModel' => 'defaultJsonResponse', 30 | 'parameters' => [ 31 | 'page' => [ 32 | 'location' => 'query', 33 | 'type' => 'integer', 34 | 'description' => 'Which page of results to return.', 35 | 'required' => false, 36 | 'default' => 1, 37 | ], 38 | 'per_page' => [ 39 | 'location' => 'query', 40 | 'type' => 'integer', 41 | 'description' => 'The number of items for each page of results.', 42 | 'required' => false, 43 | 'default' => 100, 44 | ], 45 | 'order_type' => [ 46 | 'location' => 'query', 47 | 'type' => 'string', 48 | 'description' => 'Type of order.', 49 | 'required' => false, 50 | 'enum' => ['purchase_order', 'order', 'all'], 51 | ], 52 | 'transaction_type' => [ 53 | 'location' => 'query', 54 | 'type' => 'string', 55 | 'description' => 'Type of Transaction.', 56 | 'required' => false, 57 | 'enum' => ['EvopayTransaction', 'CreditCardTransaction'], 58 | ], 59 | 'transaction_state' => [ 60 | 'location' => 'query', 61 | 'type' => 'string', 62 | 'description' => 'Type of Transaction.', 63 | 'required' => false, 64 | 'enum' => ['completed', 'pending'], 65 | ], 66 | 'seller_type' => [ 67 | 'location' => 'query', 68 | 'type' => 'string', 69 | 'description' => 'Type of the seller.', 70 | 'required' => false, 71 | 'enum' => ['Office', 'Client'], 72 | ], 73 | 'seller_name' => [ 74 | 'location' => 'query', 75 | 'type' => 'string', 76 | 'description' => 'Name of the seller.', 77 | 'required' => false, 78 | ], 79 | 'buyer_name' => [ 80 | 'location' => 'query', 81 | 'type' => 'string', 82 | 'description' => 'Name of the buyer.', 83 | 'required' => false, 84 | ], 85 | 'seller_id' => [ 86 | 'location' => 'query', 87 | 'type' => 'integer', 88 | 'description' => 'ID of the seller.', 89 | 'required' => false, 90 | ], 91 | 'buyer_id' => [ 92 | 'location' => 'query', 93 | 'type' => 'integer', 94 | 'description' => 'ID of the buyer.', 95 | 'required' => false, 96 | ], 97 | ], 98 | 'additionalParameters' => ['location' => 'query'], 99 | ], 100 | 101 | 102 | /** 103 | * Payments / Index 104 | */ 105 | 'listPaymentsForAnOrder' => [ 106 | 'extends' => null, 107 | 'httpMethod' => 'GET', 108 | 'uri' => '/v9/payments', 109 | 'summary' => 'Get a list of all payments.', 110 | 'notes' => '', 111 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470146', 112 | 'deprecated' => false, 113 | 'responseModel' => 'defaultJsonResponse', 114 | 'parameters' => [ 115 | 'order_id' => [ 116 | 'location' => 'query', 117 | 'type' => 'integer', 118 | 'description' => 'The order ID containing the payments to list.', 119 | 'required' => true, 120 | ], 121 | ], 122 | ], 123 | 124 | 125 | /** 126 | * Payments / Show 127 | */ 128 | 'showPayment' => [ 129 | 'extends' => null, 130 | 'httpMethod' => 'GET', 131 | 'uri' => '/v9/payments/{payment_id}', 132 | 'summary' => 'Get a single payment.', 133 | 'notes' => '', 134 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470136', 135 | 'deprecated' => false, 136 | 'responseModel' => 'defaultJsonResponse', 137 | 'parameters' => [ 138 | 'payment_id' => [ 139 | 'location' => 'uri', 140 | 'type' => 'integer', 141 | 'description' => 'ID of the Payment to return.', 142 | 'required' => true, 143 | ], 144 | ], 145 | ], 146 | 147 | 148 | /** 149 | * Payments / Create 150 | */ 151 | 'createPayments' => [ 152 | 'extends' => null, 153 | 'httpMethod' => 'POST', 154 | 'uri' => '/v9/payments', 155 | 'summary' => 'Create one or more Payments.', 156 | 'notes' => 'Note that this takes an array of Payments even if only creating one.', 157 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470142', 158 | 'deprecated' => false, 159 | 'responseModel' => 'defaultJsonResponse', 160 | 'parameters' => [ 161 | 'payments' => [ 162 | 'location' => 'json', 163 | 'type' => 'array', 164 | 'description' => 'A collection of Payments to create.', 165 | 'required' => true 166 | ], 167 | ], 168 | ], 169 | 170 | 171 | /** 172 | * Payments / Cancel 173 | */ 174 | 'cancelPayment' => [ 175 | 'extends' => null, 176 | 'httpMethod' => 'GET', 177 | 'uri' => '/v9/payments/{payment_id}/cancel', 178 | 'summary' => 'Cancel a pending payment on an order.', 179 | 'notes' => 'Cancel a payment that is in the pending state. Pending payments do not affect the order balance, but they do affect the pending balance, which can prevent additional payments from being posted.', 180 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470155', 181 | 'deprecated' => false, 182 | 'responseModel' => 'defaultJsonResponse', 183 | 'parameters' => [ 184 | 'payment_id' => [ 185 | 'location' => 'uri', 186 | 'type' => 'integer', 187 | 'description' => 'ID of the Payment.', 188 | 'required' => true, 189 | ], 190 | ], 191 | ], 192 | 193 | 194 | /** 195 | * Payments / Refund 196 | */ 197 | 'refundPayment' => [ 198 | 'extends' => null, 199 | 'httpMethod' => 'POST', 200 | 'uri' => '/v9/payments/{payment_id}/refund', 201 | 'summary' => 'Create a refund of an existing payment.', 202 | 'notes' => 'This action can be called on an existing payment to create a new reverse (refunded) payment of the same type. In the case of credit_card payments, it may void the existing transaction if it has not yet settled.', 203 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470151', 204 | 'deprecated' => false, 205 | 'responseModel' => 'defaultJsonResponse', 206 | 'parameters' => [ 207 | 'payment_id' => [ 208 | 'location' => 'uri', 209 | 'type' => 'integer', 210 | 'description' => 'ID of the Payment.', 211 | 'required' => true, 212 | ], 213 | 'amount' => [ 214 | 'location' => 'json', 215 | 'type' => 'number', 216 | 'description' => 'Amount of the refund (only necessary if different from amount of original payment).', 217 | 'required' => false, 218 | ], 219 | ], 220 | ], 221 | 222 | 223 | /** 224 | * Payments / Apply 225 | */ 226 | 'applyPayment' => [ 227 | 'extends' => null, 228 | 'httpMethod' => 'GET', 229 | 'uri' => '/v9/payments/{payment_id}/apply', 230 | 'summary' => 'Apply a pending payment to an order, making it complete.', 231 | 'notes' => 'By default, a payment is created in the pending state. This means it has been prepared, but is not yet applied to the order. The order’s pending balance will reflect that it exists, but it will not affect the order balance. Applying the payment will attempt to transition it to the completed state, after which the order balance will be adjusted.', 232 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470132', 233 | 'deprecated' => false, 234 | 'responseModel' => 'defaultJsonResponse', 235 | 'parameters' => [ 236 | 'payment_id' => [ 237 | 'location' => 'uri', 238 | 'type' => 'integer', 239 | 'description' => 'ID of the Payment.', 240 | 'required' => true, 241 | ], 242 | 'check_number' => [ 243 | 'location' => 'query', 244 | 'type' => 'integer', 245 | 'description' => 'Adds check number while applying (only relevant for Check Transactions).', 246 | 'required' => false, 247 | ], 248 | ], 249 | ], 250 | 251 | ], 252 | 253 | /* 254 | |-------------------------------------------------------------------------- 255 | | Models 256 | |-------------------------------------------------------------------------- 257 | | 258 | | This array of models is specifications to returning the response 259 | | from the operation methods. 260 | | 261 | */ 262 | 263 | 'models' => [], 264 | ]; 265 | -------------------------------------------------------------------------------- /src/Resources/v9/performers.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Performers / Index 19 | */ 20 | 'listPerformers' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/performers', 24 | 'summary' => 'Get a list of all performers.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470084', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Performers / Show 51 | */ 52 | 'showPerformer' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/performers/{performer_id}', 56 | 'summary' => 'Get a single performer.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470086', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'performer_id' => [ 63 | 'location' => 'uri', 64 | 'type' => ['integer', 'string'], 65 | 'description' => 'ID or slug of the Performer to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | 'additionalParameters' => null, 70 | ], 71 | 72 | 73 | /** 74 | * Performers / Deleted 75 | */ 76 | 'listPerformersDeleted' => [ 77 | 'extends' => 'listPerformers', 78 | 'httpMethod' => 'GET', 79 | 'uri' => '/v9/performers/deleted', 80 | 'summary' => 'Obtain a list of Performers that have been deleted.', 81 | 'notes' => '', 82 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=31948895', 83 | 'deprecated' => false, 84 | 'responseModel' => 'defaultJsonResponse', 85 | 'parameters' => [ 86 | 'deleted_at.gte' => [ 87 | 'location' => 'query', 88 | 'type' => 'string', 89 | 'description' => 'ISO 8601 Date of deletion', 90 | 'required' => false, 91 | 'format' => 'date-time', 92 | ], 93 | 'deleted_at.lte' => [ 94 | 'location' => 'query', 95 | 'type' => 'string', 96 | 'description' => 'ISO 8601 Date of deletion', 97 | 'required' => false, 98 | 'format' => 'date-time', 99 | ], 100 | ], 101 | 'additionalParameters' => ['location' => 'query'], 102 | ], 103 | 104 | 105 | /** 106 | * Performers / Search 107 | */ 108 | 'searchPerformers' => [ 109 | 'extends' => 'listPerformers', 110 | 'httpMethod' => 'GET', 111 | 'uri' => '/v9/performers/search', 112 | 'summary' => 'Get a list of all performers.', 113 | 'notes' => '', 114 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470088', 115 | 'deprecated' => false, 116 | 'responseModel' => 'defaultJsonResponse', 117 | 'parameters' => [ 118 | 'q' => [ 119 | 'location' => 'query', 120 | 'type' => 'string', 121 | 'description' => 'Full-text search performers.', 122 | 'required' => true, 123 | ], 124 | ], 125 | 'additionalParameters' => ['location' => 'query'], 126 | ], 127 | 128 | 129 | ], 130 | 131 | /* 132 | |-------------------------------------------------------------------------- 133 | | Models 134 | |-------------------------------------------------------------------------- 135 | | 136 | | This array of models is specifications to returning the response 137 | | from the operation methods. 138 | | 139 | */ 140 | 141 | 'models' => [], 142 | ]; 143 | -------------------------------------------------------------------------------- /src/Resources/v9/pins.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Pins / Index 19 | */ 20 | 'listPins' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/pins', 24 | 'summary' => 'Get a list of all pins.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=34308114', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | 'embedded' => [ 45 | 'location' => 'query', 46 | 'type' => ['boolean', 'string'], 47 | 'description' => 'If true the response will only contain the id and url of the Pin.', 48 | 'required' => false, 49 | 'default' => false, 50 | 'format' => 'boolean-string', 51 | ], 52 | ], 53 | 'additionalParameters' => ['location' => 'query'], 54 | ], 55 | 56 | 57 | /** 58 | * Pins / Show 59 | */ 60 | 'showPin' => [ 61 | 'extends' => null, 62 | 'httpMethod' => 'GET', 63 | 'uri' => '/v9/pins/{pin_id}', 64 | 'summary' => 'Get a single pin.', 65 | 'notes' => '', 66 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470086', 67 | 'deprecated' => false, 68 | 'responseModel' => 'defaultJsonResponse', 69 | 'parameters' => [ 70 | 'pin_id' => [ 71 | 'location' => 'uri', 72 | 'type' => 'integer', 73 | 'description' => 'ID of the Pin to return.', 74 | 'required' => true, 75 | ], 76 | ], 77 | 'additionalParameters' => null, 78 | ], 79 | 80 | 81 | /** 82 | * Pins / Create 83 | */ 84 | 'createPins' => [ 85 | 'extends' => null, 86 | 'httpMethod' => 'POST', 87 | 'uri' => '/v9/pins', 88 | 'summary' => 'Create one or more Pins.', 89 | 'notes' => 'Note that this takes an array of Pins even if only creating one.', 90 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=34308109', 91 | 'deprecated' => false, 92 | 'responseModel' => 'defaultJsonResponse', 93 | 'parameters' => [ 94 | 'pins' => [ 95 | 'location' => 'json', 96 | 'type' => 'array', 97 | 'description' => 'A collection of Pins to create.', 98 | 'required' => true, 99 | ], 100 | ], 101 | ], 102 | 103 | 104 | /** 105 | * Pins / Delete 106 | */ 107 | 'deletePin' => [ 108 | 'extends' => null, 109 | 'httpMethod' => 'DELETE', 110 | 'uri' => '/v9/pins/{pin_id}', 111 | 'summary' => 'Delete the specified Pin.', 112 | 'notes' => '', 113 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=34308106', 114 | 'deprecated' => false, 115 | 'responseModel' => 'defaultJsonResponse', 116 | 'parameters' => [ 117 | 'pin_id' => [ 118 | 'location' => 'uri', 119 | 'type' => 'integer', 120 | 'description' => 'ID of the pin.', 121 | 'required' => true, 122 | ], 123 | ], 124 | ], 125 | 126 | 127 | ], 128 | 129 | /* 130 | |-------------------------------------------------------------------------- 131 | | Models 132 | |-------------------------------------------------------------------------- 133 | | 134 | | This array of models is specifications to returning the response 135 | | from the operation methods. 136 | | 137 | */ 138 | 139 | 'models' => [], 140 | ]; 141 | -------------------------------------------------------------------------------- /src/Resources/v9/promotion_codes.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Promotion Codes / Index 19 | */ 20 | 'listPromotionCodes' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/promotion_codes', 24 | 'summary' => 'Get a list of all Promotion Codes.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994378', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | 'code' => [ 45 | 'location' => 'query', 46 | 'type' => 'string', 47 | 'description' => 'Filter results by case-insensitive code.', 48 | 'required' => false, 49 | ], 50 | 'inactive' => [ 51 | 'location' => 'query', 52 | 'type' => ['boolean', 'string'], 53 | 'description' => 'Display inactive results (default is active-only).', 54 | 'required' => false, 55 | 'format' => 'boolean-string', 56 | ], 57 | ], 58 | 'additionalParameters' => ['location' => 'query'], 59 | ], 60 | 61 | 62 | /** 63 | * Promotion Codes / Show 64 | */ 65 | 'showPromotionCode' => [ 66 | 'extends' => null, 67 | 'httpMethod' => 'GET', 68 | 'uri' => '/v9/promotion_codes/{promotion_code_id}', 69 | 'summary' => 'Get a single Promotion Code.', 70 | 'notes' => '', 71 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994380', 72 | 'deprecated' => false, 73 | 'responseModel' => 'defaultJsonResponse', 74 | 'parameters' => [ 75 | 'promotion_code_id' => [ 76 | 'location' => 'uri', 77 | 'type' => 'integer', 78 | 'description' => 'ID of the Promotion Code.', 79 | 'required' => true, 80 | ], 81 | ], 82 | 'additionalParameters' => null, 83 | ], 84 | 85 | 86 | ], 87 | 88 | /* 89 | |-------------------------------------------------------------------------- 90 | | Models 91 | |-------------------------------------------------------------------------- 92 | | 93 | | This array of models is specifications to returning the response 94 | | from the operation methods. 95 | | 96 | */ 97 | 98 | 'models' => [], 99 | ]; 100 | -------------------------------------------------------------------------------- /src/Resources/v9/queued_orders.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Queued Orders / Index 19 | */ 20 | 'listQueuedOrders' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/queued_orders', 24 | 'summary' => 'Get a list of all Queued Orders.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994281', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Queued Orders / Show 51 | */ 52 | 'showQueuedOrder' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/queued_orders/{queued_order_id}', 56 | 'summary' => 'Get a single category.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994286', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'queued_order_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Queued Order.', 66 | 'required' => true, 67 | ], 68 | ], 69 | 'additionalParameters' => null, 70 | ], 71 | 72 | 73 | /** 74 | * Queued Orders / Recent 75 | */ 76 | 'listRecentQueuedOrders' => [ 77 | 'extends' => null, 78 | 'httpMethod' => 'GET', 79 | 'uri' => '/v9/queued_orders/recent', 80 | 'summary' => 'List all orders that have been queued for background processing in the last 48 hours.', 81 | 'notes' => '', 82 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994284', 83 | 'deprecated' => false, 84 | 'responseModel' => 'defaultJsonResponse', 85 | 'parameters' => [], 86 | 'additionalParameters' => ['location' => 'query'], 87 | ], 88 | 89 | ], 90 | 91 | /* 92 | |-------------------------------------------------------------------------- 93 | | Models 94 | |-------------------------------------------------------------------------- 95 | | 96 | | This array of models is specifications to returning the response 97 | | from the operation methods. 98 | | 99 | */ 100 | 101 | 'models' => [], 102 | ]; 103 | -------------------------------------------------------------------------------- /src/Resources/v9/quotes.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Quotes / Index 19 | */ 20 | 'listQuotes' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/quotes', 24 | 'summary' => 'Get a list of all quotes.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=5341218', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Quotes / Show 51 | */ 52 | 'showQuote' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/quotes/{quote_id}', 56 | 'summary' => 'Get a single quote.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=5341220', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'quote_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the Quote to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Quotes / Create 74 | */ 75 | 'createQuotes' => [ 76 | 'extends' => null, 77 | 'httpMethod' => 'POST', 78 | 'uri' => '/v9/quotes', 79 | 'summary' => 'Create one or more quotes.', 80 | 'notes' => 'Note that this takes an array of Quotes even if only creating one.', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=5341222', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'quotes' => [ 86 | 'location' => 'json', 87 | 'type' => 'array', 88 | 'description' => 'A collection of Quotes to create.', 89 | 'required' => true, 90 | ], 91 | ], 92 | ], 93 | 94 | 95 | /** 96 | * Quotes / Update 97 | */ 98 | 'updateQuote' => [ 99 | 'extends' => null, 100 | 'httpMethod' => 'PUT', 101 | 'uri' => '/v9/quotes/{quote_id}', 102 | 'summary' => 'Update a quote.', 103 | 'notes' => 'At this time, only updating state is supported.', 104 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=5341224', 105 | 'deprecated' => false, 106 | 'responseModel' => 'defaultJsonResponse', 107 | 'parameters' => [ 108 | 'quote_id' => [ 109 | 'location' => 'uri', 110 | 'type' => 'integer', 111 | 'description' => 'The quote number.', 112 | 'required' => true, 113 | ], 114 | 'state' => [ 115 | 'location' => 'json', 116 | 'type' => 'string', 117 | 'description' => 'Verb describing transition.', 118 | 'required' => true, 119 | 'enum' => ['convert', 'cancel'], 120 | ], 121 | ], 122 | ], 123 | 124 | 125 | /** 126 | * Quotes / Resend 127 | */ 128 | 'resendQuote' => [ 129 | 'extends' => null, 130 | 'httpMethod' => 'GET', 131 | 'uri' => '/v9/quotes/{quote_id}/resend', 132 | 'summary' => 'Resend a quote after it has been created.', 133 | 'notes' => '', 134 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470145', 135 | 'deprecated' => false, 136 | 'responseModel' => 'defaultJsonResponse', 137 | 'parameters' => [ 138 | 'quote_id' => [ 139 | 'location' => 'uri', 140 | 'type' => 'integer', 141 | 'description' => 'ID of the Quote to return.', 142 | 'required' => true, 143 | ], 144 | ], 145 | ], 146 | 147 | 148 | /** 149 | * Quotes / Autocomplete 150 | */ 151 | 'searchQuotesForAutocomplete' => [ 152 | 'extends' => null, 153 | 'httpMethod' => 'GET', 154 | 'uri' => '/v9/quotes/autocomplete', 155 | 'summary' => 'Retrieve autocomplete field data.', 156 | 'notes' => '', 157 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=5341228', 158 | 'deprecated' => false, 159 | 'responseModel' => 'defaultJsonResponse', 160 | 'parameters' => [ 161 | 'q' => [ 162 | 'location' => 'query', 163 | 'type' => 'string', 164 | 'description' => 'Search term.', 165 | 'required' => true, 166 | ], 167 | 'search_field' => [ 168 | 'location' => 'query', 169 | 'type' => 'string', 170 | 'description' => 'Field for which you would like data.', 171 | 'required' => true, 172 | 'enum' => ['events', 'venues', 'name', 'email', 'prepared_for'], 173 | ], 174 | 'limit' => [ 175 | 'location' => 'query', 176 | 'type' => 'string', 177 | 'description' => 'Number of results.', 178 | 'required' => false, 179 | 'default' => 8, 180 | ], 181 | ], 182 | ], 183 | 184 | 185 | ], 186 | 187 | /* 188 | |-------------------------------------------------------------------------- 189 | | Models 190 | |-------------------------------------------------------------------------- 191 | | 192 | | This array of models is specifications to returning the response 193 | | from the operation methods. 194 | | 195 | */ 196 | 197 | 'models' => [], 198 | ]; 199 | -------------------------------------------------------------------------------- /src/Resources/v9/rate_options.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Rate Options / Index 19 | */ 20 | 'listRateOptions' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'POST', 23 | 'uri' => '/v9/rate_options', 24 | 'summary' => 'Retrieve shipping rates via the FedEx API.', 25 | 'notes' => 'Note that this takes an array of Rate Options even if only requesting one.', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=34832455', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'rate_options' => [ 31 | 'location' => 'json', 32 | 'type' => 'array', 33 | 'description' => 'A collection of Rate Options to retrieve.', 34 | 'required' => true, 35 | ], 36 | ], 37 | ], 38 | 39 | ], 40 | 41 | /* 42 | |-------------------------------------------------------------------------- 43 | | Models 44 | |-------------------------------------------------------------------------- 45 | | 46 | | This array of models is specifications to returning the response 47 | | from the operation methods. 48 | | 49 | */ 50 | 51 | 'models' => [], 52 | ]; 53 | -------------------------------------------------------------------------------- /src/Resources/v9/reports.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Reports / Sales 19 | */ 20 | 'showSalesReport' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/reports/sales', 24 | 'summary' => 'Generate a quick report of all sales.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9994373', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'by_order_credential' => [ 31 | 'location' => 'query', 32 | 'type' => ['boolean', 'string'], 33 | 'description' => 'Order results by credential.', 34 | 'required' => false, 35 | 'format' => 'boolean-string', 36 | ], 37 | 'by_order_placer' => [ 38 | 'location' => 'query', 39 | 'type' => ['boolean', 'string'], 40 | 'description' => 'Order results by person who placed the order.', 41 | 'required' => false, 42 | 'format' => 'boolean-string', 43 | ], 44 | 'buyer_id' => [ 45 | 'location' => 'query', 46 | 'type' => 'integer', 47 | 'description' => 'Filter results by buyer_id.', 48 | 'required' => false, 49 | ], 50 | 'order_placer_id' => [ 51 | 'location' => 'query', 52 | 'type' => 'integer', 53 | 'description' => 'Filter results by order_placer_id.', 54 | 'required' => false, 55 | ], 56 | 'order_promo_code' => [ 57 | 'location' => 'query', 58 | 'type' => 'integer', 59 | 'description' => 'Filter results by order_promo_code.', 60 | 'required' => false, 61 | ], 62 | 'order_credential_id' => [ 63 | 'location' => 'query', 64 | 'type' => 'integer', 65 | 'description' => 'Filter results by order_credential_id.', 66 | 'required' => false, 67 | ], 68 | 'aggregates' => [ 69 | 'location' => 'query', 70 | 'type' => ['boolean', 'string'], 71 | 'description' => 'Provide count and sums of quantity, cost, price, and fee.', 72 | 'required' => false, 73 | 'format' => 'boolean-string', 74 | ], 75 | ], 76 | 'additionalParameters' => ['location' => 'query'], 77 | ], 78 | 79 | 80 | /** 81 | * Reports / Inventory 82 | */ 83 | 'showInventoryReport' => [ 84 | 'extends' => 'massIndexTicketgroups', 85 | 'uri' => '/v9/reports/inventory', 86 | ], 87 | 88 | 89 | ], 90 | 91 | /* 92 | |-------------------------------------------------------------------------- 93 | | Models 94 | |-------------------------------------------------------------------------- 95 | | 96 | | This array of models is specifications to returning the response 97 | | from the operation methods. 98 | | 99 | */ 100 | 101 | 'models' => [], 102 | ]; 103 | -------------------------------------------------------------------------------- /src/Resources/v9/search.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Search 19 | */ 20 | 'search' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/search', 24 | 'summary' => 'Searches against given entities.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/display/API/Search', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'types' => [ 31 | 'location' => 'query', 32 | 'type' => 'string', 33 | 'description' => 'A comma-separated list of types for which you would like to get suggestions.', 34 | 'required' => true, 35 | ], 36 | 'q' => [ 37 | 'location' => 'query', 38 | 'type' => 'string', 39 | 'description' => 'The search query for suggestions.', 40 | 'required' => true, 41 | ], 42 | 'fuzzy' => [ 43 | 'location' => 'query', 44 | 'type' => ['boolean', 'string'], 45 | 'description' => 'If search results are to match any instead of all words passed.', 46 | 'required' => false, 47 | 'format' => 'boolean-string', 48 | ], 49 | 'order_by_popularity' => [ 50 | 'location' => 'query', 51 | 'type' => ['boolean', 'string'], 52 | 'description' => 'Indicate if you wish to sort the results with most popular first.', 53 | 'required' => false, 54 | 'format' => 'boolean-string', 55 | ], 56 | ], 57 | 'additionalParameters' => ['location' => 'query'], 58 | ], 59 | 60 | 61 | /** 62 | * Searching / Global / Suggestions 63 | */ 64 | 'listSearchSuggestions' => [ 65 | 'extends' => null, 66 | 'httpMethod' => 'GET', 67 | 'uri' => '/v9/searches/suggestions', 68 | 'summary' => 'Provides multiple suggestions for each entity requested.', 69 | 'notes' => '', 70 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=6455318', 71 | 'deprecated' => false, 72 | 'responseModel' => 'defaultJsonResponse', 73 | 'parameters' => [ 74 | 'entities' => [ 75 | 'location' => 'query', 76 | 'type' => 'string', 77 | 'description' => 'A comma-separated list of entities for which you would like to get suggestions.', 78 | 'required' => true, 79 | 'sentAs' => 'entities', 80 | ], 81 | 'q' => [ 82 | 'location' => 'query', 83 | 'type' => 'string', 84 | 'description' => 'The search query for suggestions.', 85 | 'required' => true, 86 | ], 87 | 'limit' => [ 88 | 'location' => 'query', 89 | 'type' => 'integer', 90 | 'description' => 'The limit of results you would like returned for each entity.', 91 | 'required' => false, 92 | ], 93 | 'fuzzy' => [ 94 | 'location' => 'query', 95 | 'type' => ['boolean', 'string'], 96 | 'description' => 'If search results are to match any instead of all words passed.', 97 | 'required' => false, 98 | 'format' => 'boolean-string', 99 | ], 100 | ], 101 | 'additionalParameters' => ['location' => 'query'], 102 | ], 103 | 104 | 105 | ], 106 | 107 | /* 108 | |-------------------------------------------------------------------------- 109 | | Models 110 | |-------------------------------------------------------------------------- 111 | | 112 | | This array of models is specifications to returning the response 113 | | from the operation methods. 114 | | 115 | */ 116 | 117 | 'models' => [], 118 | ]; 119 | -------------------------------------------------------------------------------- /src/Resources/v9/service-description.php: -------------------------------------------------------------------------------- 1 | 'Ticket Evolution', 14 | 15 | /* 16 | |-------------------------------------------------------------------------- 17 | | Service Description 18 | |-------------------------------------------------------------------------- 19 | | 20 | | Description of the API service. 21 | | 22 | */ 23 | 24 | 'description' => 'A Ticket Evolution API Wrapper built using Guzzle.', 25 | 26 | /* 27 | |-------------------------------------------------------------------------- 28 | | API Version 29 | |-------------------------------------------------------------------------- 30 | | 31 | | Description of the API service. 32 | | 33 | */ 34 | 35 | 'apiVersion' => 'v9', 36 | 37 | /* 38 | |-------------------------------------------------------------------------- 39 | | Service Configurations 40 | |-------------------------------------------------------------------------- 41 | | 42 | | Configuration files of specific service descriptions to load. 43 | | 44 | */ 45 | 46 | 'imports' => [ 47 | 'accounts.php', 48 | 'brokerages.php', 49 | 'categories.php', 50 | 'clients.php', 51 | 'commissions.php', 52 | 'companies.php', 53 | 'credentials.php', 54 | 'credit_memos.php', 55 | 'events.php', 56 | 'filtered_tickets.php', 57 | 'listings.php', 58 | 'offices.php', 59 | 'orders.php', 60 | 'payments.php', 61 | 'performers.php', 62 | 'pins.php', 63 | 'promotion_codes.php', 64 | 'queued_orders.php', 65 | 'quotes.php', 66 | 'rate_options.php', 67 | 'reports.php', 68 | 'search.php', 69 | 'settings.php', 70 | 'shipments.php', 71 | 'tax.php', 72 | 'ticket_groups.php', 73 | 'tickets.php', 74 | 'users.php', 75 | 'venues.php', 76 | 'configurations.php', 77 | ], 78 | 79 | 80 | /* 81 | |-------------------------------------------------------------------------- 82 | | Default models 83 | |-------------------------------------------------------------------------- 84 | | 85 | | Default response models for typical usage of responses 86 | | 87 | */ 88 | 89 | 'models' => [ 90 | 'defaultJsonResponse' => [ 91 | 'type' => 'object', 92 | 'additionalProperties' => [ 93 | 'location' => 'json', 94 | ], 95 | ], 96 | ], 97 | ]; 98 | -------------------------------------------------------------------------------- /src/Resources/v9/settings.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Settings / Service Fees 19 | */ 20 | 'listServiceFeesSettings' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/settings/service_fees', 24 | 'summary' => 'Service Fees Settings by Credential.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=22347806', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [], 30 | 'additionalParameters' => ['location' => 'query'], 31 | ], 32 | 33 | 34 | /** 35 | * Settings / Shipping 36 | */ 37 | 'listShippingSettings' => [ 38 | 'extends' => null, 39 | 'httpMethod' => 'GET', 40 | 'uri' => '/v9/settings/shipping', 41 | 'summary' => 'Shipping Settings by Credential.', 42 | 'notes' => '', 43 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470044', 44 | 'deprecated' => false, 45 | 'responseModel' => 'defaultJsonResponse', 46 | 'parameters' => [], 47 | 'additionalParameters' => ['location' => 'query'], 48 | ], 49 | 50 | 51 | ], 52 | 53 | /* 54 | |-------------------------------------------------------------------------- 55 | | Models 56 | |-------------------------------------------------------------------------- 57 | | 58 | | This array of models is specifications to returning the response 59 | | from the operation methods. 60 | | 61 | */ 62 | 63 | 'models' => [], 64 | ]; 65 | -------------------------------------------------------------------------------- /src/Resources/v9/tax.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Tax Quotes / Create 19 | */ 20 | 'createTaxQuote' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'POST', 23 | 'uri' => '/v9/tax_quotes', 24 | 'summary' => 'Create a tax quote.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/spaces/API/pages/2898427919/WIP+Tax+Quotes+Create', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'quantity' => [ 31 | 'location' => 'json', 32 | 'type' => 'integer', 33 | 'description' => 'The number of tickets the customer is purchasing.', 34 | 'required' => true, 35 | ], 36 | 'ticket_group_id' => [ 37 | 'location' => 'json', 38 | 'type' => 'integer', 39 | 'description' => 'The ID of the ticket group from which the customer is purchasing.', 40 | 'required' => true, 41 | ], 42 | ], 43 | 'additionalParameters' => ['location' => 'json'], 44 | ], 45 | 46 | 47 | ], 48 | 49 | /* 50 | |-------------------------------------------------------------------------- 51 | | Models 52 | |-------------------------------------------------------------------------- 53 | | 54 | | This array of models is specifications to returning the response 55 | | from the operation methods. 56 | | 57 | */ 58 | 59 | 'models' => [], 60 | ]; 61 | -------------------------------------------------------------------------------- /src/Resources/v9/tickets.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Tickets / Index 19 | */ 20 | 'listTickets' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/tickets', 24 | 'summary' => 'Lists all tickets for a Ticket Group.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=28016763', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'ticket_group_id' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'ID of the Event for which you would like to list tickets.', 34 | 'required' => true, 35 | ], 36 | ], 37 | ], 38 | 39 | 40 | /** 41 | * Tickets / Show 42 | */ 43 | 'showTicket' => [ 44 | 'extends' => null, 45 | 'httpMethod' => 'GET', 46 | 'uri' => '/v9/tickets/{ticket_id}', 47 | 'summary' => 'Get a single Ticket.', 48 | 'notes' => '', 49 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=28475557', 50 | 'deprecated' => false, 51 | 'responseModel' => 'defaultJsonResponse', 52 | 'parameters' => [ 53 | 'ticket_id' => [ 54 | 'location' => 'uri', 55 | 'type' => 'integer', 56 | 'description' => 'ID of the Ticket to return.', 57 | 'required' => true, 58 | ], 59 | ], 60 | ], 61 | 62 | 63 | /** 64 | * Tickets / Set Properties 65 | */ 66 | 'setTicketProperties' => [ 67 | 'extends' => null, 68 | 'httpMethod' => 'PUT', 69 | 'uri' => '/v9/tickets/{ticket_id}', 70 | 'summary' => 'Add a PDF eticket and/or barcode to an individual ticket/seat.', 71 | 'notes' => '', 72 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=28016760', 73 | 'deprecated' => false, 74 | 'responseModel' => 'defaultJsonResponse', 75 | 'parameters' => [ 76 | 'ticket_id' => [ 77 | 'location' => 'uri', 78 | 'type' => 'integer', 79 | 'description' => 'ID of the Ticket to return.', 80 | 'required' => true, 81 | ], 82 | 'eticket' => [ 83 | 'location' => 'json', 84 | 'type' => 'string', 85 | 'description' => 'Base-64 encoded single page PDF.', 86 | 'required' => false, 87 | ], 88 | 'barcode' => [ 89 | 'location' => 'json', 90 | 'type' => ['integer', 'string'], 91 | 'description' => 'The ticket’s barcode.', 92 | 'required' => false, 93 | ], 94 | ], 95 | ], 96 | 97 | 98 | ], 99 | 100 | /* 101 | |-------------------------------------------------------------------------- 102 | | Models 103 | |-------------------------------------------------------------------------- 104 | | 105 | | This array of models is specifications to returning the response 106 | | from the operation methods. 107 | | 108 | */ 109 | 110 | 'models' => [], 111 | ]; 112 | -------------------------------------------------------------------------------- /src/Resources/v9/users.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Users / Index 19 | */ 20 | 'listUsers' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/users', 24 | 'summary' => 'Return all users for a brokerage.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470068', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The number of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Users / Show 51 | */ 52 | 'showUser' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/users/{user_id}', 56 | 'summary' => 'Get a single user.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470081', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'user_id' => [ 63 | 'location' => 'uri', 64 | 'type' => 'integer', 65 | 'description' => 'ID of the User to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | ], 70 | 71 | 72 | /** 73 | * Users / Search 74 | */ 75 | 'searchUsers' => [ 76 | 'extends' => 'listUsers', 77 | 'httpMethod' => 'GET', 78 | 'uri' => '/v9/users/search', 79 | 'summary' => 'Search across users.', 80 | 'notes' => '', 81 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470083', 82 | 'deprecated' => false, 83 | 'responseModel' => 'defaultJsonResponse', 84 | 'parameters' => [ 85 | 'q' => [ 86 | 'location' => 'query', 87 | 'type' => 'string', 88 | 'description' => 'Search query', 89 | 'required' => true 90 | ], 91 | ], 92 | 'additionalParameters' => ['location' => 'query'], 93 | ], 94 | 95 | 96 | ], 97 | 98 | /* 99 | |-------------------------------------------------------------------------- 100 | | Models 101 | |-------------------------------------------------------------------------- 102 | | 103 | | This array of models is specifications to returning the response 104 | | from the operation methods. 105 | | 106 | */ 107 | 108 | 'models' => [], 109 | ]; 110 | -------------------------------------------------------------------------------- /src/Resources/v9/venues.php: -------------------------------------------------------------------------------- 1 | [ 16 | 17 | /** 18 | * Venues / Index 19 | */ 20 | 'listVenues' => [ 21 | 'extends' => null, 22 | 'httpMethod' => 'GET', 23 | 'uri' => '/v9/venues', 24 | 'summary' => 'Get a list of all venues.', 25 | 'notes' => '', 26 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470018', 27 | 'deprecated' => false, 28 | 'responseModel' => 'defaultJsonResponse', 29 | 'parameters' => [ 30 | 'page' => [ 31 | 'location' => 'query', 32 | 'type' => 'integer', 33 | 'description' => 'Which page of results to return.', 34 | 'required' => false, 35 | 'default' => 1, 36 | ], 37 | 'per_page' => [ 38 | 'location' => 'query', 39 | 'type' => 'integer', 40 | 'description' => 'The integer of items for each page of results.', 41 | 'required' => false, 42 | 'default' => 100, 43 | ], 44 | ], 45 | 'additionalParameters' => ['location' => 'query'], 46 | ], 47 | 48 | 49 | /** 50 | * Venues / Show 51 | */ 52 | 'showVenue' => [ 53 | 'extends' => null, 54 | 'httpMethod' => 'GET', 55 | 'uri' => '/v9/venues/{venue_id}', 56 | 'summary' => 'Get a single venue.', 57 | 'notes' => '', 58 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470020', 59 | 'deprecated' => false, 60 | 'responseModel' => 'defaultJsonResponse', 61 | 'parameters' => [ 62 | 'venue_id' => [ 63 | 'location' => 'uri', 64 | 'type' => ['integer', 'string'], 65 | 'description' => 'ID or slug of the Venue to return.', 66 | 'required' => true, 67 | ], 68 | ], 69 | 'additionalParameters' => null, 70 | ], 71 | 72 | 73 | /** 74 | * Venues / Deleted 75 | */ 76 | 'listVenuesDeleted' => [ 77 | 'extends' => 'listVenues', 78 | 'httpMethod' => 'GET', 79 | 'uri' => '/v9/venues/deleted', 80 | 'summary' => 'Obtain a list of Venues that have been deleted.', 81 | 'notes' => '', 82 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=31948891', 83 | 'deprecated' => false, 84 | 'responseModel' => 'defaultJsonResponse', 85 | 'parameters' => [ 86 | 'deleted_at.gte' => [ 87 | 'location' => 'query', 88 | 'type' => 'string', 89 | 'description' => 'ISO 8601 Date of deletion', 90 | 'required' => false, 91 | 'format' => 'date-time', 92 | ], 93 | 'deleted_at.lte' => [ 94 | 'location' => 'query', 95 | 'type' => 'string', 96 | 'description' => 'ISO 8601 Date of deletion', 97 | 'required' => false, 98 | 'format' => 'date-time', 99 | ], 100 | ], 101 | 'additionalParameters' => ['location' => 'query'], 102 | ], 103 | 104 | 105 | /** 106 | * Venues / Search 107 | */ 108 | 'searchVenues' => [ 109 | 'extends' => 'listVenues', 110 | 'httpMethod' => 'GET', 111 | 'uri' => '/v9/venues/search', 112 | 'summary' => 'Get a list of all venues.', 113 | 'notes' => '', 114 | 'documentationUrl' => 'https://ticketevolution.atlassian.net/wiki/pages/viewpage.action?pageId=9470023', 115 | 'deprecated' => false, 116 | 'responseModel' => 'defaultJsonResponse', 117 | 'parameters' => [ 118 | 'q' => [ 119 | 'location' => 'query', 120 | 'type' => 'string', 121 | 'description' => 'Full-text search venues.', 122 | 'required' => true, 123 | ], 124 | ], 125 | 'additionalParameters' => ['location' => 'query'], 126 | ], 127 | 128 | 129 | ], 130 | 131 | /* 132 | |-------------------------------------------------------------------------- 133 | | Models 134 | |-------------------------------------------------------------------------- 135 | | 136 | | This array of models is specifications to returning the response 137 | | from the operation methods. 138 | | 139 | */ 140 | 141 | 'models' => [], 142 | ]; 143 | -------------------------------------------------------------------------------- /src/TEvoAuthMiddleware.php: -------------------------------------------------------------------------------- 1 | apiToken = $apiToken; 28 | $this->apiSecret = $apiSecret; 29 | } 30 | 31 | 32 | /** 33 | * Called when the middleware is handled. 34 | * 35 | * @param callable $handler 36 | * 37 | * @return \Closure 38 | */ 39 | public function __invoke(callable $handler) 40 | { 41 | return function ($request, array $options) use ($handler) { 42 | 43 | $request = $this->signRequest($request); 44 | 45 | $promise = function (ResponseInterface $response) use ($request) { 46 | return $response; 47 | }; 48 | 49 | return $handler($request, $options)->then($promise); 50 | }; 51 | } 52 | 53 | 54 | /** 55 | * Signs the request with the appropriate headers. 56 | * 57 | * @param \Psr\Http\Message\RequestInterface $request 58 | * 59 | * @return \Psr\Http\Message\RequestInterface 60 | */ 61 | public function signRequest(RequestInterface $request): RequestInterface 62 | { 63 | $request = $this->getRequestWithSortedParameters($request); 64 | $request = $this->getRequestWithXToken($request); 65 | $request = $this->getRequestWithXSignature($request); 66 | 67 | return $request; 68 | } 69 | 70 | 71 | /** 72 | * Signs the request with the appropriate headers. 73 | * 74 | * @param \Psr\Http\Message\RequestInterface $request 75 | * 76 | * @return \Psr\Http\Message\RequestInterface 77 | */ 78 | public function getRequestWithSortedParameters(RequestInterface $request): RequestInterface 79 | { 80 | $sortedParams = $this->prepareParameters($this->getParametersFromRequest($request)); 81 | 82 | // Re-Set the query to the properly ordered query string 83 | if (method_exists('\GuzzleHttp\Psr7\Query','build')) { 84 | // GuzzleHttp\Psr7 version 2+ 85 | $query = \GuzzleHttp\Psr7\Query::build($sortedParams, PHP_QUERY_RFC1738); 86 | } else { 87 | // GuzzleHttp\Psr7 version 1 88 | $query = \GuzzleHttp\Psr7\build_query($sortedParams, PHP_QUERY_RFC1738); 89 | } 90 | $uri = $request->getUri()->withQuery($query); 91 | $request = $request->withUri($uri); 92 | 93 | return $request; 94 | } 95 | 96 | 97 | /** 98 | * Adds the X-Token header to the request. 99 | * 100 | * @param \Psr\Http\Message\RequestInterface $request 101 | * 102 | * @return \Psr\Http\Message\RequestInterface 103 | */ 104 | public function getRequestWithXToken(RequestInterface $request): RequestInterface 105 | { 106 | $request = $request->withHeader('X-Token', $this->apiToken); 107 | 108 | return $request; 109 | } 110 | 111 | 112 | /** 113 | * Signs the request with the X-Signature header. 114 | * 115 | * @param \Psr\Http\Message\RequestInterface $request 116 | * 117 | * @return \Psr\Http\Message\RequestInterface 118 | */ 119 | public function getRequestWithXSignature(RequestInterface $request): RequestInterface 120 | { 121 | $request = $request->withHeader('X-Signature', $this->getSignature($request)); 122 | 123 | return $request; 124 | } 125 | 126 | 127 | /** 128 | * Calculate signature for request 129 | * 130 | * @param RequestInterface $request Request to generate a signature for 131 | * 132 | * @return string 133 | */ 134 | public function getSignature(RequestInterface $request): string 135 | { 136 | $stringToSign = $this->getStringToSign($request); 137 | 138 | return base64_encode($this->signHmacSha256($stringToSign)); 139 | 140 | } 141 | 142 | 143 | /** 144 | * Calculate signature for request 145 | * 146 | * @param RequestInterface $request Request to generate a signature for 147 | * 148 | * @return string 149 | */ 150 | public function getStringToSign(RequestInterface $request): string 151 | { 152 | // For POST|PUT set the JSON body string as the params 153 | if ($request->getMethod() == 'POST' || $request->getMethod() == 'PUT' || $request->getMethod() == 'PATCH') { 154 | $data = $request->getBody()->__toString(); 155 | } else { 156 | $data = $this->getParametersFromRequest($request); 157 | } 158 | 159 | $baseString = $this->createBaseString( 160 | $request, 161 | $data 162 | ); 163 | 164 | return $baseString; 165 | } 166 | 167 | 168 | /** 169 | * Creates the Signature Base String. 170 | * 171 | * The Signature Base String is a consistent reproducible concatenation of 172 | * the request elements into a single string. The string is used as an 173 | * input in hashing or signing algorithms. 174 | * 175 | * @param RequestInterface $request Request being signed 176 | * @param array|string $data HTTP Request parameters 177 | * 178 | * @return string Returns the base string 179 | */ 180 | protected function createBaseString(RequestInterface $request, $data = []): string 181 | { 182 | // Remove query params from URL. 183 | $url = preg_replace('/https:\/\/|\?.*/', '', $request->getUri()); 184 | 185 | if (is_array($data)) { 186 | $query = http_build_query($data, '', '&', PHP_QUERY_RFC1738); 187 | } else { 188 | $query = $data; 189 | } 190 | 191 | return strtoupper($request->getMethod()) 192 | . ' ' . $url 193 | . '?' . $query; 194 | } 195 | 196 | 197 | /** 198 | * Sorts the array and removes null parameters 199 | * 200 | * @param array $params Data array 201 | * 202 | * @return array 203 | */ 204 | private function prepareParameters($params): array 205 | { 206 | // Parameters are sorted by name, using lexicographical byte value ordering. 207 | uksort($params, 'strcmp'); 208 | 209 | // Unset any parameters with null values 210 | foreach ($params as $key => $value) { 211 | if ($value === null) { 212 | unset($params[$key]); 213 | } 214 | } 215 | 216 | return $params; 217 | } 218 | 219 | 220 | /** 221 | * Perform the HMAC SHA256 signing using the $apiSecret 222 | * 223 | * @param $baseString 224 | * 225 | * @return string 226 | */ 227 | private function signHmacSha256($baseString): string 228 | { 229 | return hash_hmac('sha256', $baseString, $this->apiSecret, true); 230 | } 231 | 232 | 233 | /** 234 | * @param RequestInterface $request 235 | * 236 | * @return array 237 | */ 238 | protected function getParametersFromRequest(RequestInterface $request): array 239 | { 240 | $uri = $request->getUri(); 241 | if (method_exists('\GuzzleHttp\Psr7\Query','parse')) { 242 | // GuzzleHttp\Psr7 version 2+ 243 | $params = \GuzzleHttp\Psr7\Query::parse($uri->getQuery(), PHP_QUERY_RFC1738); 244 | } else { 245 | // GuzzleHttp\Psr7 version 1 246 | $params = \GuzzleHttp\Psr7\parse_query($uri->getQuery(), PHP_QUERY_RFC1738); 247 | } 248 | 249 | return $params; 250 | } 251 | } 252 | --------------------------------------------------------------------------------