* model changes
* Endpoint to get all avaible booking rooms per summit
GET /api/v1/summits/{id}/locations/bookable-rooms
query string params
page ( int ) current page number
per_page ( int) max amount of items per page
filter ( allowed fields: name, description, cost, capacity, availability_day[epoch], attribute[string|number])
order ( allowed fields id,name,capacity)
expand ( allowed relations venue,floor,attribute_type)
scopes
%s/bookable-rooms/read
%s/summits/read/all
* Endpoint to get slot availability per room
GET /api/v1/summits/{id}/locations/bookable-rooms/{room_id}/availability/{day}
where id is summit id (integer)
room_id ( integer)
and day (epoch timestamp)
scopes
%s/bookable-rooms/read
%s/summits/read/all
* endpoint create reservation
POST /api/v1/summits/{id}/locations/bookable-rooms/{room_id}/reservations
payload
'currency' => 'required|string|currency_iso',
'amount' => 'required|integer',
'start_datetime' => 'required|date_format:U',
'end_datetime' => 'required|date_format:U|after:start_datetime',
scopes
%s/bookable-rooms/my-reservations/write
* endpoint to get all my reservations
GET /api/v1/summits/{id}/locations/bookable-rooms/all/reservations/me
query string params
expand [owner, room, type]
scopes
%s/bookable-rooms/my-reservations/read
* endpoint to cancel/ask for refund a reservation
DELETE /api/v1/summits/{id}/locations/bookable-rooms/all/reservations/{reservation_id}
scopes
%s/bookable-rooms/my-reservations/write
Change-Id: I741878c6ffc833ba23fca40f09f4664b42c8edd4
96 lines
2.6 KiB
JSON
96 lines
2.6 KiB
JSON
{
|
|
"name": "openstack-infra/openstackid-resources",
|
|
"description": "The OpenStackId Resource Server.",
|
|
"keywords": [
|
|
"framework",
|
|
"laravel"
|
|
],
|
|
"license": "MIT",
|
|
"type": "project",
|
|
"repositories": [
|
|
{
|
|
"type": "vcs",
|
|
"url": "https://github.com/OpenStackweb/openstack"
|
|
}
|
|
],
|
|
"require": {
|
|
"php": "^7.1.3",
|
|
"ext-json": "*",
|
|
"ext-pdo": "*",
|
|
"cocur/slugify": "^2.3",
|
|
"ezyang/htmlpurifier": "4.7.0",
|
|
"fideloper/proxy": "^4.0",
|
|
"glenscott/url-normalizer": "^1.4",
|
|
"google/apiclient": "^2.2",
|
|
"guzzlehttp/guzzle": "^6.3",
|
|
"idct/sftp-client": "dev-master",
|
|
"laravel-doctrine/extensions": "1.0.*",
|
|
"laravel-doctrine/migrations": "^1.2",
|
|
"laravel-doctrine/orm": "1.4.*",
|
|
"laravel/framework": "5.6.*",
|
|
"laravel/tinker": "^1.0",
|
|
"php-opencloud/openstack": "dev-master",
|
|
"predis/predis": "1.0.*",
|
|
"s-ichikawa/laravel-sendgrid-driver": "^2.0",
|
|
"smarcet/caldavclient": "1.1.6",
|
|
"smarcet/outlook-rest-client": "dev-master",
|
|
"stripe/stripe-php": "^6.37",
|
|
"symfony/yaml": "4.2.2"
|
|
},
|
|
"require-dev": {
|
|
"filp/whoops": "^2.0",
|
|
"fzaninotto/faker": "^1.4",
|
|
"mockery/mockery": "^1.0",
|
|
"nunomaduro/collision": "^2.0",
|
|
"phpunit/phpunit": "^7.0",
|
|
"laravel/browser-kit-testing": "4.0.2"
|
|
},
|
|
"suggest":{
|
|
"lib-openssl": "Required to use AES algorithms (except AES GCM)",
|
|
"ext-json":"Required to use json algorithms"
|
|
},
|
|
"autoload": {
|
|
"classmap": [
|
|
"database/seeds",
|
|
"database/factories",
|
|
"database",
|
|
"app",
|
|
"tests",
|
|
"Libs"
|
|
],
|
|
"psr-4": {
|
|
"App\\": "app/"
|
|
}
|
|
},
|
|
"autoload-dev": {
|
|
"psr-4": {
|
|
"Tests\\": "tests/"
|
|
}
|
|
},
|
|
"extra": {
|
|
"laravel": {
|
|
"dont-discover": [
|
|
]
|
|
}
|
|
},
|
|
"scripts": {
|
|
"post-root-package-install": [
|
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
|
],
|
|
"post-create-project-cmd": [
|
|
"@php artisan key:generate"
|
|
],
|
|
"post-autoload-dump": [
|
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
|
"@php artisan package:discover"
|
|
]
|
|
},
|
|
"config": {
|
|
"preferred-install": "dist",
|
|
"sort-packages": true,
|
|
"optimize-autoloader": true
|
|
},
|
|
"minimum-stability": "dev",
|
|
"prefer-stable": true
|
|
}
|