Files
openstackid-resources/composer.json
smarcet 9f01b9e3b3 Booking Rooms Model
* 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
2019-06-03 19:20:15 -03:00

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
}