1<?php 2/** 3 * Nextcloud - cospend 4 * 5 * This file is licensed under the Affero General Public License version 3 or 6 * later. See the COPYING file. 7 * 8 * @author Julien Veyssier <eneiluj@posteo.net> 9 * @copyright Julien Veyssier 2018 10 */ 11 12return [ 13 'routes' => [ 14 ['name' => 'page#index', 'url' => '/', 'verb' => 'GET'], 15 16 ['name' => 'page#getBillActivity', 'url' => '/bill-activity', 'verb' => 'GET'], 17 18 // api for client using guest access (password) 19 [ 20 'name' => 'page#preflighted_cors', 21 'url' => '/api/{path}', 22 'verb' => 'OPTIONS', 23 'requirements' => ['path' => '.+'] 24 ], 25 [ 26 'name' => 'page#preflighted_cors', 27 'url' => '/apiv2/{path}', 28 'verb' => 'OPTIONS', 29 'requirements' => ['path' => '.+'] 30 ], 31 ['name' => 'page#apiPing', 'url' => '/api/ping', 'verb' => 'GET'], 32 ['name' => 'page#apiCreateProject', 'url' => '/api/projects', 'verb' => 'POST'], 33 ['name' => 'page#apiGetProjectInfo', 'url' => '/api/projects/{projectid}/{password}', 'verb' => 'GET'], 34 ['name' => 'page#apiSetProjectInfo', 'url' => '/api/projects/{projectid}/{passwd}', 'verb' => 'PUT'], 35 ['name' => 'page#apiDeleteProject', 'url' => '/api/projects/{projectid}/{password}', 'verb' => 'DELETE'], 36 ['name' => 'page#apiGetMembers', 'url' => '/api/projects/{projectid}/{password}/members', 'verb' => 'GET'], 37 ['name' => 'page#apiAddMember', 'url' => '/api/projects/{projectid}/{password}/members', 'verb' => 'POST'], 38 ['name' => 'page#apiv2AddMember', 'url' => '/apiv2/projects/{projectid}/{password}/members', 'verb' => 'POST'], 39 ['name' => 'page#apiEditMember', 'url' => '/api/projects/{projectid}/{password}/members/{memberid}', 'verb' => 'PUT'], 40 ['name' => 'page#apiDeleteMember', 'url' => '/api/projects/{projectid}/{password}/members/{memberid}', 'verb' => 'DELETE'], 41 ['name' => 'page#apiGetBills', 'url' => '/api/projects/{projectid}/{password}/bills', 'verb' => 'GET'], 42 ['name' => 'page#apiAddBill', 'url' => '/api/projects/{projectid}/{password}/bills', 'verb' => 'POST'], 43 ['name' => 'page#apiRepeatBill', 'url' => '/api/projects/{projectid}/{password}/bills/{billid}/repeat', 'verb' => 'GET'], 44 ['name' => 'page#apiEditBill', 'url' => '/api/projects/{projectid}/{password}/bills/{billid}', 'verb' => 'PUT'], 45 ['name' => 'page#apiEditBills', 'url' => '/api/projects/{projectid}/{password}/bills', 'verb' => 'PUT'], 46 ['name' => 'page#apiDeleteBill', 'url' => '/api/projects/{projectid}/{password}/bills/{billid}', 'verb' => 'DELETE'], 47 ['name' => 'page#apiDeleteBills', 'url' => '/api/projects/{projectid}/{password}/bills', 'verb' => 'DELETE'], 48 ['name' => 'page#apiv2GetBills', 'url' => '/apiv2/projects/{projectid}/{password}/bills', 'verb' => 'GET'], 49 ['name' => 'page#apiv3GetBills', 'url' => '/apiv3/projects/{projectid}/{password}/bills', 'verb' => 'GET'], 50 ['name' => 'page#apiGetProjectStatistics', 'url' => '/api/projects/{projectid}/{password}/statistics', 'verb' => 'GET'], 51 ['name' => 'page#apiGetProjectSettlement', 'url' => '/api/projects/{projectid}/{password}/settle', 'verb' => 'GET'], 52 ['name' => 'page#apiAutoSettlement', 'url' => '/api/projects/{projectid}/{password}/autosettlement', 'verb' => 'GET'], 53 ['name' => 'page#apiAddCurrency', 'url' => '/api/projects/{projectid}/{password}/currency', 'verb' => 'POST'], 54 ['name' => 'page#apiEditCurrency', 'url' => '/api/projects/{projectid}/{password}/currency/{currencyid}', 'verb' => 'PUT'], 55 ['name' => 'page#apiDeleteCurrency', 'url' => '/api/projects/{projectid}/{password}/currency/{currencyid}', 'verb' => 'DELETE'], 56 ['name' => 'page#apiAddPaymentMode', 'url' => '/api/projects/{projectid}/{password}/paymentmode', 'verb' => 'POST'], 57 ['name' => 'page#apiEditPaymentMode', 'url' => '/api/projects/{projectid}/{password}/paymentmode/{pmid}', 'verb' => 'PUT'], 58 ['name' => 'page#apiSavePaymentModeOrder', 'url' => '/api/projects/{projectid}/{password}/paymentmode-order', 'verb' => 'PUT'], 59 ['name' => 'page#apiDeletePaymentMode', 'url' => '/api/projects/{projectid}/{password}/paymentmode/{pmid}', 'verb' => 'DELETE'], 60 ['name' => 'page#apiAddCategory', 'url' => '/api/projects/{projectid}/{password}/category', 'verb' => 'POST'], 61 ['name' => 'page#apiEditCategory', 'url' => '/api/projects/{projectid}/{password}/category/{categoryid}', 'verb' => 'PUT'], 62 ['name' => 'page#apiSaveCategoryOrder', 'url' => '/api/projects/{projectid}/{password}/category-order', 'verb' => 'PUT'], 63 ['name' => 'page#apiDeleteCategory', 'url' => '/api/projects/{projectid}/{password}/category/{categoryid}', 'verb' => 'DELETE'], 64 ['name' => 'page#apiEditGuestAccessLevel', 'url' => '/api/projects/{projectid}/{password}/guest-access-level', 'verb' => 'PUT'], 65 66 // api for logged in clients 67 [ 68 'name' => 'page#preflighted_cors', 69 'url' => '/api-priv/{path}', 70 'verb' => 'OPTIONS', 71 'requirements' => ['path' => '.+'] 72 ], 73 ['name' => 'page#apiPrivCreateProject', 'url' => '/api-priv/projects', 'verb' => 'POST'], 74 ['name' => 'page#apiPrivGetProjectInfo', 'url' => '/api-priv/projects/{projectid}', 'verb' => 'GET'], 75 ['name' => 'page#apiPrivSetProjectInfo', 'url' => '/api-priv/projects/{projectid}', 'verb' => 'PUT'], 76 ['name' => 'page#apiPrivDeleteProject', 'url' => '/api-priv/projects/{projectid}', 'verb' => 'DELETE'], 77 ['name' => 'page#apiPrivGetMembers', 'url' => '/api-priv/projects/{projectid}/members', 'verb' => 'GET'], 78 ['name' => 'page#apiPrivAddMember', 'url' => '/api-priv/projects/{projectid}/members', 'verb' => 'POST'], 79 ['name' => 'page#apiPrivEditMember', 'url' => '/api-priv/projects/{projectid}/members/{memberid}', 'verb' => 'PUT'], 80 ['name' => 'page#apiPrivDeleteMember', 'url' => '/api-priv/projects/{projectid}/members/{memberid}', 'verb' => 'DELETE'], 81 ['name' => 'page#apiPrivGetBills', 'url' => '/api-priv/projects/{projectid}/bills', 'verb' => 'GET'], 82 ['name' => 'page#apiPrivAddBill', 'url' => '/api-priv/projects/{projectid}/bills', 'verb' => 'POST'], 83 ['name' => 'page#apiPrivEditBill', 'url' => '/api-priv/projects/{projectid}/bills/{billid}', 'verb' => 'PUT'], 84 ['name' => 'page#apiPrivDeleteBill', 'url' => '/api-priv/projects/{projectid}/bills/{billid}', 'verb' => 'DELETE'], 85 ['name' => 'page#apiPrivGetProjectStatistics', 'url' => '/api-priv/projects/{projectid}/statistics', 'verb' => 'GET'], 86 ['name' => 'page#apiPrivGetProjectSettlement', 'url' => '/api-priv/projects/{projectid}/settle', 'verb' => 'GET'], 87 ['name' => 'page#apiPrivAutoSettlement', 'url' => '/api-priv/projects/{projectid}/autosettlement', 'verb' => 'GET'], 88 ['name' => 'page#apiPrivAddCurrency', 'url' => '/api-priv/projects/{projectid}/currency', 'verb' => 'POST'], 89 ['name' => 'page#apiPrivEditCurrency', 'url' => '/api-priv/projects/{projectid}/currency/{currencyid}', 'verb' => 'PUT'], 90 ['name' => 'page#apiPrivDeleteCurrency', 'url' => '/api-priv/projects/{projectid}/currency/{currencyid}', 'verb' => 'DELETE'], 91 ['name' => 'page#apiPrivAddPaymentMode', 'url' => '/api-priv/projects/{projectid}/paymentmode', 'verb' => 'POST'], 92 ['name' => 'page#apiPrivEditPaymentMode', 'url' => '/api-priv/projects/{projectid}/paymentmode/{pmid}', 'verb' => 'PUT'], 93 ['name' => 'page#apiPrivDeletePaymentMode', 'url' => '/api-priv/projects/{projectid}/paymentmode/{pmid}', 'verb' => 'DELETE'], 94 ['name' => 'page#apiPrivAddCategory', 'url' => '/api-priv/projects/{projectid}/category', 'verb' => 'POST'], 95 ['name' => 'page#apiPrivEditCategory', 'url' => '/api-priv/projects/{projectid}/category/{categoryid}', 'verb' => 'PUT'], 96 ['name' => 'page#apiPrivDeleteCategory', 'url' => '/api-priv/projects/{projectid}/category/{categoryid}', 'verb' => 'DELETE'], 97 98 ['name' => 'utils#getOptionsValues', 'url' => '/option-values', 'verb' => 'GET'], 99 ['name' => 'utils#saveOptionValue', 'url' => '/option-value', 'verb' => 'PUT'], 100 ['name' => 'utils#setAllowAnonymousCreation', 'url' => '/allow-anonymous-creation', 'verb' => 'PUT'], 101 ['name' => 'page#addCurrency', 'url' => '/projects/{projectid}/currency', 'verb' => 'POST'], 102 ['name' => 'page#editCurrency', 'url' => '/projects/{projectid}/currency/{currencyid}', 'verb' => 'PUT'], 103 ['name' => 'page#deleteCurrency', 'url' => '/projects/{projectid}/currency/{currencyid}', 'verb' => 'DELETE'], 104 ['name' => 'page#addPaymentMode', 'url' => '/projects/{projectid}/paymentmode', 'verb' => 'POST'], 105 ['name' => 'page#editPaymentMode', 'url' => '/projects/{projectid}/paymentmode/{pmid}', 'verb' => 'PUT'], 106 ['name' => 'page#savePaymentModeOrder', 'url' => '/projects/{projectid}/paymentmode-order', 'verb' => 'PUT'], 107 ['name' => 'page#deletePaymentMode', 'url' => '/projects/{projectid}/paymentmode/{pmid}', 'verb' => 'DELETE'], 108 ['name' => 'page#addCategory', 'url' => '/projects/{projectid}/category', 'verb' => 'POST'], 109 ['name' => 'page#editCategory', 'url' => '/projects/{projectid}/category/{categoryid}', 'verb' => 'PUT'], 110 ['name' => 'page#saveCategoryOrder', 'url' => '/projects/{projectid}/category-order', 'verb' => 'PUT'], 111 ['name' => 'page#deleteCategory', 'url' => '/projects/{projectid}/category/{categoryid}', 'verb' => 'DELETE'], 112 ['name' => 'page#addUserShare', 'url' => '/projects/{projectid}/user-share', 'verb' => 'POST'], 113 ['name' => 'page#deleteUserShare', 'url' => '/projects/{projectid}/user-share/{shid}', 'verb' => 'DELETE'], 114 ['name' => 'page#addGroupShare', 'url' => '/projects/{projectid}/group-share', 'verb' => 'POST'], 115 ['name' => 'page#deleteGroupShare', 'url' => '/projects/{projectid}/group-share/{shid}', 'verb' => 'DELETE'], 116 ['name' => 'page#addCircleShare', 'url' => '/projects/{projectid}/circle-share', 'verb' => 'POST'], 117 ['name' => 'page#deleteCircleShare', 'url' => '/projects/{projectid}/circle-share/{shid}', 'verb' => 'DELETE'], 118 ['name' => 'page#addPublicShare', 'url' => '/projects/{projectid}/public-share', 'verb' => 'POST'], 119 ['name' => 'page#deletePublicShare', 'url' => '/projects/{projectid}/public-share/{shid}', 'verb' => 'DELETE'], 120 ['name' => 'page#editShareAccessLevel', 'url' => '/projects/{projectid}/share-access-level/{shid}', 'verb' => 'PUT'], 121 ['name' => 'page#editShareAccess', 'url' => '/projects/{projectid}/share-access/{shid}', 'verb' => 'PUT'], 122 ['name' => 'page#editGuestAccessLevel', 'url' => '/projects/{projectid}/guest-access-level', 'verb' => 'PUT'], 123 ['name' => 'page#getPublicFileShare', 'url' => '/getPublicFileShare', 'verb' => 'POST'], 124 ['name' => 'page#importCsvProject', 'url' => '/import-csv-project', 'verb' => 'GET'], 125 ['name' => 'page#importSWProject', 'url' => '/import-sw-project', 'verb' => 'GET'], 126 ['name' => 'page#exportCsvProject', 'url' => '/export-csv-project/{projectid}', 'verb' => 'GET'], 127 ['name' => 'page#exportCsvStatistics', 'url' => '/export-csv-statistics/{projectid}', 'verb' => 'GET'], 128 ['name' => 'page#exportCsvSettlement', 'url' => '/export-csv-settlement/{projectid}', 'verb' => 'GET'], 129 ['name' => 'page#webGetProjects', 'url' => '/projects', 'verb' => 'GET'], 130 ['name' => 'page#webGetProjects2', 'url' => '/getProjects', 'verb' => 'POST'], 131 ['name' => 'page#webCreateProject', 'url' => '/projects', 'verb' => 'POST'], 132 ['name' => 'page#webEditProject', 'url' => '/projects/{projectid}', 'verb' => 'PUT'], 133 ['name' => 'page#webDeleteProject', 'url' => '/projects/{projectid}', 'verb' => 'DELETE'], 134 ['name' => 'page#webAddMember', 'url' => '/projects/{projectid}/members', 'verb' => 'POST'], 135 ['name' => 'page#webEditMember', 'url' => '/projects/{projectid}/members/{memberid}', 'verb' => 'PUT'], 136 ['name' => 'page#webGetBills', 'url' => '/projects/{projectid}/bills', 'verb' => 'GET'], 137 ['name' => 'page#webAddBill', 'url' => '/projects/{projectid}/bills', 'verb' => 'POST'], 138 ['name' => 'page#webRepeatBill', 'url' => '/projects/{projectid}/bills/{billid}/repeat', 'verb' => 'GET'], 139 ['name' => 'page#webEditBill', 'url' => '/projects/{projectid}/bills/{billid}', 'verb' => 'PUT'], 140 ['name' => 'page#webEditBills', 'url' => '/projects/{projectid}/bills', 'verb' => 'PUT'], 141 ['name' => 'page#webDeleteBill', 'url' => '/projects/{projectid}/bills/{billid}', 'verb' => 'DELETE'], 142 ['name' => 'page#webDeleteBills', 'url' => '/projects/{projectid}/bills', 'verb' => 'DELETE'], 143 ['name' => 'page#webGetProjectInfo', 'url' => '/projects/{projectid}', 'verb' => 'GET'], 144 ['name' => 'page#webGetProjectStatistics', 'url' => '/projects/{projectid}/statistics', 'verb' => 'GET'], 145 ['name' => 'page#webGetProjectSettlement', 'url' => '/projects/{projectid}/settlement', 'verb' => 'GET'], 146 ['name' => 'page#webAutoSettlement', 'url' => '/projects/{projectid}/auto-settlement', 'verb' => 'GET'], 147 ['name' => 'page#webCheckPassword', 'url' => 'checkpassword/{projectid}/{password}', 'verb' => 'GET'], 148 ['name' => 'page#pubLoginProjectPassword', 'url' => 'loginproject/{projectid}/{password}', 'verb' => 'GET'], 149 ['name' => 'page#pubLoginProject', 'url' => 'loginproject/{projectid}', 'verb' => 'GET'], 150 ['name' => 'page#pubLogin', 'url' => 'login', 'verb' => 'GET'], 151 ['name' => 'page#pubProject', 'url' => 'project', 'verb' => 'POST'], 152 ['name' => 'page#publicShareLinkPage', 'url' => 's/{token}', 'verb' => 'GET'], 153 ] 154]; 155