Commit Graph

20 Commits

Author SHA1 Message Date
Clark Boylan 7ae2662876 Retire this project
The upstream for this project has moved to github. Retire the opendev
repo to avoid any confusion.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/818170
Change-Id: I0e7f14701a75c4cceb76c80d2584534ddbd45f58
2021-11-16 14:44:10 -08:00
smarcet 35fc57473c Sponsored Projects - Endpoints
POST /api/v1/sponsored-projects

payload

name
description
is_active

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects

scope

REALM_URL/sponsored-projects/read

PUT /api/v1/sponsored-projects/{id}

payload

name
description
is_active

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects/{id}
scope

REALM_URL/sponsored-projects/read

PUBLIC

GET /api/public/v1/sponsored-projects/{slug}

DELETE /api/v1/sponsored-projects/{id}

scope

REALM_URL/sponsored-projects/write

POST /api/v1/sponsored-projects/{id}/sponsorship-types

payload
name
description
is_active
order

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects/{id}/sponsorship-types

scope

REALM_URL/sponsored-projects/read

GET /api/v1/sponsored-projects/{id}/sponsorship-types/{id}

scope

REALM_URL/sponsored-projects/read

DELETE /api/v1/sponsored-projects/{id}/sponsorship-types/{id}

scope

REALM_URL/sponsored-projects/write

PUT /api/v1/sponsored-projects/{id}/sponsorship-types/{id}

payload
name
description
is_active
order

scope

REALM_URL/sponsored-projects/write

PUT /api/v1/sponsored-projects/{id}/sponsorship-types/{id}/supporting-companies/{id}

payload
order (optional)

scope

REALM_URL/sponsored-projects/write

DELETE /api/v1/sponsored-projects/{id}/sponsorship-types/{id}/supporting-companies/{id}

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects/{id}/sponsorship-types/{id}/supporting-companies

scope

REALM_URL/sponsored-projects/read

Change-Id: I9c0b1bb457a1c583afd284f56f2aced5deceaa02
Signed-off-by: smarcet <smarcet@gmail.com>
2020-11-30 15:09:40 -03:00
smarcet 82a369f9b3 Added S3 file system to media uploads
remove drop box as public storage

Change-Id: I9c07fe0d3fa56f302fc5ea50686d10ee768e5a9a
Signed-off-by: smarcet <smarcet@gmail.com>
2020-11-16 11:15:33 -03:00
smarcet 8b7e68d3bd Mux export integration
Create command summit:presentation-materials-mux-assets {summit_id} {mounting_folder?} {event_id?}

Change-Id: If1ac9b315ea7ede64109e21d0c9dd0468b6c7e2c
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-13 12:35:52 -03:00
smarcet 39e3c8e333 * Summit Registration Model/Endpoints
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>
2020-09-21 09:52:07 -03:00
smarcet ba43168fad added .env variable ENABLE_BOOKABLE_ROOMS_RESERVATION_REVOCATION
to disable/enable task SummitRoomReservationRevocationCommand

Change-Id: Ie5ce24dda5b76676141ba90c32c95f3148e5ae6d
2019-08-05 18:27:11 -03:00
smarcet 9df411a77f Added flag to enable/disable cal sync tasks
Change-Id: Iec6d6cb0dad9b8af6ba39a9ea4329a2ebe657543
2019-08-05 10:47:09 -03:00
smarcet ae650777ef Migrated Mail from native to Sendgrid API
Change-Id: I2dbc7947710f3da301e8361842a5fd0ffd026f6c
2019-04-10 19:19:11 -03:00
smarcet 84df8f2923 Updated Member/Speaker Serializer
Updated PIC url generation

Change-Id: I2eb47f39d92379fa9dc289490ee269e901ecb6e7
2019-04-01 14:47:11 -03:00
Sebastian Marcet ba38209bc6 Added Scope base realm
the idea behind this is able to separate scope base realm
from host header

Change-Id: I388fbbd7fe6f8187cb15f7403023b3af9b9c6507
2019-01-30 10:35:33 -03:00
smarcet 6d52da8a9b Migration to PHP 7.x
* updated dependencies
* updated LV version to 5.6
* added object storage for assets

Change-Id: I9a66563c925fe6f70c4f7703f13867caa30b8fb7
2018-11-23 11:50:55 -03:00
Sebastian Marcet a7a8877ace Added CRON task to process eventbrite redeem promo codes
added task that marks promo codes as redeemed for a latest
summit.

Change-Id: I4e865fd025ebb30829b53d77db730503f3b946dd
2018-04-12 20:16:45 -03:00
Sebastian Marcet 7bd426fac9 Added new endpoints to add locations per summit
POST /api/v1/summits/{id}/locations
POST /api/v1/summits/{id}/locations/venues
POST /api/v1/summits/{id}/locations/external-locations
POST /api/v1/summits/{id}/locations/hotels
POST /api/v1/summits/{id}/locations/airports

Required Scopes

'%s/summits/write'
'%s/locations/write'

Payload For SummitVenue

* class_name = SummitVenue
* name (required|string:max:255)
* description (sometimes|string)
* address1 (string|required_without:lng,lat)
* address2 (sometimes|string)
* zip_code (sometimes|string)
* city (string|required_without:lng,lat)
* state (string|required_without:lng,lat)
* country (string|required_without:lng,lat)
* lng (geo_longitude|required_with:lat|required_without:address1,city,state,country)
* lat (geo_latitude|required_with:lng|required_without:address1,city,state,country)
* website_url (sometimes|url)
* display_on_site (sometimes|boolean)
* details_page (sometimes|boolean)
* location_message (sometimes|string)
* is_main (sometimes|boolean)

Payload For SummitHotel

* class_name = SummitHotel
* name (required|string:max:255)
* description (sometimes|string)
* address1 (string|required_without:lng,lat)
* address2 (sometimes|string)
* zip_code (sometimes|string)
* city (string|required_without:lng,lat)
* state (string|required_without:lng,lat)
* country (string|required_without:lng,lat)
* lng (geo_longitude|required_with:lat|required_without:address1,city,state,country)
* lat (geo_latitude|required_with:lng|required_without:address1,city,state,country)
* website_url (sometimes|url)
* display_on_site (sometimes|boolean)
* details_page (sometimes|boolean)
* location_message (sometimes|string)
* capacity (sometimes|integer:min:0)
* hotel_type (sometimes|in:Primary,Alternate)
* sold_out (sometimes|boolean)
* booking_link (sometimes|url)

Payload For SummitAirport

* class_name = SummitAirport
* name (required|string:max:255)
* description (sometimes|string)
* address1 (string|required_without:lng,lat)
* address2 (sometimes|string)
* zip_code (sometimes|string)
* city (string|required_without:lng,lat)
* state (string|required_without:lng,lat)
* country (string|required_without:lng,lat)
* lng (geo_longitude|required_with:lat|required_without:address1,city,state,country)
* lat (geo_latitude|required_with:lng|required_without:address1,city,state,country)
* website_url (sometimes|url)
* display_on_site (sometimes|boolean)
* details_page (sometimes|boolean)
* location_message (sometimes|string)
* capacity (sometimes|integer:min:0)
* airport_type (sometimes|in:International,Domestic)

Payload For SummitExternalLocation

* class_name = SummitExternalLocation
* name (required|string:max:255)
* description (sometimes|string)
* address1 (string|required_without:lng,lat)
* address2 (sometimes|string)
* zip_code (sometimes|string)
* city (string|required_without:lng,lat)
* state (string|required_without:lng,lat)
* country (string|required_without:lng,lat)
* lng (geo_longitude|required_with:lat|required_without:address1,city,state,country)
* lat (geo_latitude|required_with:lng|required_without:address1,city,state,country)
* website_url (sometimes|url)
* display_on_site (sometimes|boolean)
* details_page (sometimes|boolean)
* location_message (sometimes|string)
* capacity (sometimes|integer:min:0)

Change-Id: Ie52d6e4864e2cdb1af100e2c325e02e92f1de9bd
2018-03-01 16:19:28 -03:00
Sebastian Marcet 615b3dbf7c Added new Upload Summit Event Attachment Endpoint
POST api/v1/summits/{:summit_id}/events/{:event_id}/attachment

Change-Id: I41bdb5b9551165682c0fd6ea5eb0b0d21c792ba0
2017-11-25 15:41:00 -03:00
Sebastian Marcet 8e67f5ae90 External Calendar Sync
Allows to synchronize member
summit schedule with an enternal
calendar provider:

* Outlook
* iCloud
* Google

the solution is composed of 2 services

* member actions processor ( process actions like:
create calendar, add event, remove event, remove calendar)
* admin actions processsor ( process actions like:
update event, delete event, update location, delete location)

Change-Id: Ib8681bd2ea3b66b114fb676b4fa25fc15c65b46c
2017-08-22 14:37:55 -03:00
Sebastian Marcet 8113fefaff New External Orders Endpoints
added 2 new endpoints

* /api/v1/summits/{id}/external-orders/{external_order_id}
  to read external orders ( from eventbrite api)
* /api/v1/summits/{id}/external-orders/{external_order_id}/external-attendees/{external_attendee_id}/confirm
  to confirm, and become an attendee

Change-Id: I1de5cf51fffdb45a9220190f412b3a121377b023
2016-03-23 13:08:15 -03:00
Sebastian Marcet b72a7aa35f Added log level configuration param
Change-Id: I19e7528460ea3600abdf7d54b2d91d1fa89f1e10
2016-02-23 16:07:21 -03:00
Sebastian Marcet 33526e903d Fixed SSL redirect filter
fixed ssl filter and added some config examples

Change-Id: I90ab6d108e13d495dc12fde4fe8a4433b93a0a1f
2016-02-22 12:14:50 -03:00
Sebastian Marcet a093fc5a01 Summit Application API
WIP - Added Summit API

Change-Id: I5494db9414809a3ca5e278919d084e895b2ed05a
2016-02-18 12:21:22 -03:00
Sebastian Marcet 4d7159e93f OpenstackId resource server
* 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
2015-08-18 13:48:13 -03:00