Doc
https://docs.google.com/document/d/1gOAceevwutF3QHYWD0_6aESQMZEiIz3YVBVXlyUuRy8
* Summit Registration External Feed
https://docs.google.com/document/d/1_2QZUK--A350jxh2USKBtVtisKrrcUcVjdKnbcZ7-4M/edit#
* Multi Stripe Config
* Added stripe payment configuration per summit
* Added webhook automatic creation
* Added CRUD endpoints for payment profiles per summit
GET api/v1/summits/{id}/payment-gateway-profiles
filters
active ['==']
application_type ['=@', '==']
scopes
summits/read/all
summits/payment-gateway-profiles/read
POST api/v1/summits/{id}/payment-gateway-profiles
payload
'active' => 'sometimes|boolean',
'application_type' => 'sometimes|string|in:Registration,BookableRooms'
'provider' => 'required|string|in:Stripe',
'test_mode_enabled' => 'required|boolean',
'live_secret_key' => 'sometimes|string',
'live_publishable_key' => 'required_with:live_secret_key|string',
'test_secret_key' => 'sometimes|string',
'test_publishable_key' => 'required_with:test_secret_key|string'
scopes
summits/write
summits/payment-gateway-profiles/write
GET api/v1/summits/{id}/payment-gateway-profiles/{payment_profile_id}
scopes
summits/read/all
summits/payment-gateway-profiles/read
PUT api/v1/summits/{id}/payment-gateway-profiles/{payment_profile_id}
payload
'active' => 'sometimes|boolean',
'application_type' => 'sometimes|string|in:Registration,BookableRooms'
'provider' => 'required|string|in:Stripe',
'test_mode_enabled' => 'required|boolean',
'live_secret_key' => 'sometimes|string',
'live_publishable_key' => 'required_with:live_secret_key|string',
'test_secret_key' => 'sometimes|string',
'test_publishable_key' => 'required_with:test_secret_key|string'
scopes
summits/payment-gateway-profiles/write
summits/write
DELETE api/v1/summits/{id}/payment-gateway-profiles/{payment_profile_id}
scopes
summits/payment-gateway-profiles/write
summits/write
Stripe Webhooks
default webhook
(SECRET set per application under .env, should be created previously on stripe default account)
POST api/public/v1/summits/all/payments/{application_name}/confirm
where application_name could be Registration or BookableRooms
otherwise if a stripe account is set per summit, when the profile gets activated
a webhook will be automatically be created using following url
POST api/public/v1/summits/{id}/payments/{application_name}/confirm
* Email API Integration
* moved all blade templates to mail api ( DB Seeding)
* defined email events flows per summmit
* created endpoint to set up templates per email events on each flow
PUT /api/v1/summits/{id}/email-flows-events/{event_id}
payload
email_template_identifier: string
* added endpoint to get all email events per summit
GET /api/v1/summits/{id}/email-flows-events
* added endpoint to get email event per summit/id
GET /api/v1/summits/{id}/email-flows-events/{event_id}
Summit Documents endpoints
add summit document
POST /api/v1/summits/{id}/summit-documents
payload
file (mandatory|file stream)
label ( mandatory|string)
name ( mandatory|string)
description (optional|string)
get all summit documents
GET /api/v1/summits/{id}/summit-documents
get by id
GET /api/v1/summits/{id}/summit-documents/{document_id}
update
PUT GET /api/v1/summits/{id}/summit-documents/{document_id}
file (optional|file stream)
label (optional|string)
name (optional|string)
description (optional|string)
delete
DELETE GET /api/v1/summits/{id}/summit-documents/{document_id}
add event type to doc
PUT /api/v1/summits/{id}/summit-documents/{document_id}/event-types/{event_type_id}
delete event type from doc
DELETE /api/v1/summits/{id}/summit-documents/{document_id}/event-types/{event_type_id}
add document to event type
PUT /api/v1/summits/{id}/event-types/{event_type_id}/summit-documents/{document_id}
delete document from event type
DELETE /api/v1/summits/{id}/event-types/{event_type_id}/summit-documents/{document_id}
Updated Summit events to support streaming url, meeting_url and etherpad link
* Summit Registration - Invite only
Summit Administrator Permission Groups
GET /api/v1/summit-administrator-groups
filter
* title
* member_first_name
* member_last_name
* member_full_name
* member_email
* summit_id
* member_id
ordering
id
title
scopes
%s/summit-administrator-groups/read
/api/v1/summit-administrator-groups/{group_id}
scopes
%s/summit-administrator-groups/read
POST /api/v1/summit-administrator-groups
title
summits
members
scopes
%s/summit-administrator-groups/write
PUT /api/v1/summit-administrator-groups/{group_id}
title
summits
members
scopes
%s/summit-administrator-groups/write
DELETE /api/v1/summit-administrator-groups/{group_id}
scopes
%s/summit-administrator-groups/write
PUT /api/v1/summit-administrator-groups/{group_id}/members/{member_id}
DELETE /api/v1/summit-administrator-groups/{group_id}/members/{member_id}
PUT /api/v1/summit-administrator-groups/{group_id}/summits/{summit_id}
DELETE /api/v1/summit-administrator-groups/{group_id}/summits/{summit_id}
Room Metrics
PUT /api/v1/summits/{id}/members/{member_id}/schedule/{event_id}/enter
Scopes
%s/me/summits/events/enter
PUT /api/v1/summits/{id}/members/{member_id}/schedule/{event_id}/leave
%s/me/summits/events/leave
update summit_event serializer
new fields
total_attendance_count
current_attendance_count
attendance
current_attendance
Added new Speakers Endpoints
GET /api/v1/summits/{id}/speakers/on-schedule
retrieves all speakers on summit schedule
filters
'first_name' => ['=@', '=='],
'last_name' => ['=@', '=='],
'email' => ['=@', '=='],
'id' => ['=='],
'full_name' => ['=@', '=='],
'start_date' => ['>', '<', '<=', '>=', '=='],
'end_date' => ['>', '<', '<=', '>=', '=='],
Summit Events Image
POST /api/v1/summits/{id}/events/{event_id}/image
DELETE /api/v1/summits/{id}/events/{event_id}/image
Speakers Image Big Pic
POST /api/v1/speakers/{speaker_id}/big-photo
DELETE /api/v1/speakers/{speaker_id}/big-photo
CFP - multiple summits
Presentation Materials - Media Uploads
New Endpoints
GET api/v1/summit-media-file-types
filter
'name' => ['=@', '==']
order
id, name
POST api/v1/summit-media-file-types
payload
'name' => 'required|string|max:255',
'description' => 'sometimes|string|max:255',
'allowed_extensions' => 'required|string_array',
GET api/v1/summit-media-file-types/{id}
PUT api/v1/summit-media-file-types/{id}
payload
'name' => 'sometimes|string|max:255',
'description' => 'sometimes|string|max:255',
'allowed_extensions' => 'required|string_array',
DELETE api/v1/summit-media-file-types/{id}
GET api/v1/summits/{id}/media-upload-types
POST
payload
'name' => 'required|string|max:255',
'description' => 'sometimes|string|max:255',
'is_mandatory' => 'required|boolean',
'max_size' => 'required|int|megabyte_aligned',
'private_storage_type' => 'required|string|in:None,DropBox,Swift,Local',
'public_storage_type' => 'required|string|in:None,DropBox,Swift,Local'
'type_id' => 'required|int',
'presentation_types' => 'sometimes|int_array',
GET api/v1/summits/{id}/media-upload-types/{media_upload_type_id}
PUT api/v1/summits/{id}/media-upload-types/{media_upload_type_id}
payload
'name' => 'sometimes|string|max:255',
'description' => 'sometimes|string|max:255',
'is_mandatory' => 'sometimes|boolean',
'max_size' => 'sometimes|int|megabyte_aligned',
'private_storage_type' => 'sometimes|string|in:None,DropBox,Swift,Local',
'public_storage_type' => 'sometimes|string|in:None,DropBox,Swift,Local'
'type_id' => 'sometimes|int',
'presentation_types' => 'sometimes|int_array',
DELETE api/v1/summits/{id}/media-upload-types/{media_upload_type_id}
PUT api/v1/summits/{id}/media-upload-types/{media_upload_type_id}/presentation-types/{event_type_id}
DELETE api/v1/summits/{id}/media-upload-types/{media_upload_type_id}/presentation-types/{event_type_id}
GET api/v1/summits/{id}/presentations/{presentation_id}/media-uploads
POST api/v1/summits/{id}/presentations/{presentation_id}/media-uploads
payload multiform
file
media_upload_type_id
GET api/v1/summits/{id}/presentations/{presentation_id}/media-uploads/{media_upload_id}
PUT api/v1/summits/{id}/presentations/{presentation_id}/media-uploads/{media_upload_id}
payload multiform
file
DELETE api/v1/summits/{id}/presentations/{presentation_id}/media-uploads/{media_upload_id}
POST /api/v1/summits/{id}/media-upload-types/all/clone/{to_summit_id}
Summit Invitation Only endpoints V2
CRUD invitations
Change-Id: Ia23c247a59c3810f2a738265efdd890fe6f59dfb
Signed-off-by: smarcet <smarcet@gmail.com>
in order to improve query performance
added L2 cache configuration to some
queries and classes.
also updated doctrine version.
Change-Id: I86ac24b65a28919de411b024c7ad175747630f6e
upgraded laravel version from 5.0 to 5.2.
Changed ORM from eloquent to Doctrine to support better inheritance handling
basically eloquent does not suppor the inheritance model used by Silverstripe
which makes dificult to implement write apis on model hierarchies defined with
SS schema.
Refactoring.
Change-Id: I802e171c8b95e81dc21578543ddb6a02003985e5
* migration of resource server from openstackid to its
own project
* migration of marketplace api
* added api tests
* added CORS middleware
* added SecurityHTTPHeadersWriterMiddleware
Change-Id: Ib3d02feeb1e756de73d380238a043a7ac1ec7ecc