Commit Graph

340 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 954e445fda Activities CSV
Fix performance issue

Change-Id: I4e10c9cb6244975b58316ef58b71d9e5e889e329
Signed-off-by: smarcet <smarcet@gmail.com>
2021-07-23 16:51:20 -03:00
smarcet 91ffe46586 GetCurrentUser
Fix possible race condition ( user creation )

Change-Id: Icd0e63a14c602b02c4f351b9459ca009103dc316
Signed-off-by: smarcet <smarcet@gmail.com>
2021-07-13 14:06:47 -03:00
smarcet 21469e60a6 Update getEventsCSV format
added columns

* moderator_id
* moderator_fullname
* moderator_email
* speaker_ids
* speaker_fullnames
* speaker_emails

Change-Id: I2522c3760e283ead815d1185e7b403485891e940
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-29 14:18:07 -03:00
smarcet 1fd901ae2f Added Image to BadgeFeature
Change-Id: I0ea27dea92535c0cdbfeb5aa264f36159e2f4034
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-28 17:21:00 -03:00
smarcet 41385d5579 Order Ordering
* Added CASE WHEN and COALESCE
* Added Order Test Seeds

Change-Id: Ia3f33c3d746ac6f64dfebe95b4e5d27fa63d67e7
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-23 10:24:09 -03:00
smarcet 4432a5f2b9 Import assets from MUX
Added new endpoints
POST api/v1/summits/{id}/presentations/all/import/mux

payload
* mux_token_id ( string|required)
* mux_token_secret ( string|required)
* email_to (optional|email)

required scopes

REALM_URL/summits/write
REALM_URL/summits/write-event
REALM_URL/summits/write-presentation

Change-Id: If3af7466f5c2fd1a38e1129fecd7e0b86312590e
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-04 16:28:20 -03:00
smarcet 4086002ba3 Selection Plan extra questions
Added extra questions by selection plan

Change-Id: Ia4ca535f16826c30cc66ce642f4ad667d352aa2b
Signed-off-by: smarcet <smarcet@gmail.com>
2021-05-24 18:42:12 -03:00
smarcet 4eaf8dd7a7 Fix on show_always_parsing
Change-Id: I338704bd1aed4a1d0faa693eba554d69656c8d90
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-19 21:11:26 -03:00
smarcet 2dd658c778 Multiform parsing
Fixed on parsing array

Change-Id: If9cbc8561dabaf4836fe5bb0ea7b9449269e7269
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-19 15:02:26 -03:00
smarcet fbc98ca24a Fixes on sponsored projects
Change-Id: I9c600ffbf718ea854b1ec21635ae9c25b47f14d3
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-09 15:20:30 -03:00
smarcet 51153b726f Fixed track chairs filter condition on get presentations
Change-Id: I53537a4a3e42665e6592d97c3d5d28646e6810ac
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-08 20:55:06 -03:00
smarcet 263840990a Added missed track chairs authz for get all presentations by track id
Change-Id: Iddf6e22e83707f77402c6321a2b64308b4657ab7
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-08 20:32:48 -03:00
smarcet b375702c67 Added new Collection Filter Method
user ( when repository allows it ) now could query by subfields
on a child collection
like ie for presentation.actions :

?filter=actions==type_id==1&&is_completed==0

that will return all presentation with action type id = 1 incompleted

Change-Id: I2dadb59bf5ed4243d9b9247707744af213b666b5
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-02 12:35:53 -03:00
smarcet bb304273fd Presentation Action Endpoints
* changes on presentation serializer

added presentation.actions collection

Mark action as completed by current user

PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/actions/{action_id}

required scopes

%s/summits/write

authz_groups

SuperAdmins,
Administrators,
TrackChairs,
TrackChairsAdmins,

Mark action as uncompleted by current user

DELETE /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/actions/{action_id}

required scopes

%s/summits/write

authz_groups

SuperAdmins,
Administrators,
TrackChairs,
TrackChairsAdmins,

Change-Id: I09a0443190a7ea713d76f9b79906fa6554fe2eff
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-01 15:56:23 -03:00
smarcet 0d836a1b90 Summit Presentation Actions Types
Updates to Summit Serializer

* added new collection presentation_action_types

Presentation Action Types

GET /api/v1/summits/{id}/presentation-action-types

filtering

'label' => ['=@', '=='],

ordering

'id',
'order',
'label',

required scopes

%s/summits/read
%s/summits/read/all

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

GET /api/v1/summits/{id}/presentation-action-types/csv

filtering

'name' => ['=@', '=='],
'label' => ['=@', '=='],
'is_enabled' => ['=='],

ordering

'id',
'order',
'label',

required scopes

%s/summits/read
%s/summits/read/all

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

POST /api/v1/summits/{id}/presentation-action-types

payload

'label'       => 'required|string|max:255',

required scopes

%s/summits/write

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

PUT /api/v1/summits/{id}/presentation-action-types/{action_id}

payload

'label'       => 'sometimes|string|max:255',
'order'       => 'sometimes|integer|min:1',

required scopes

%s/summits/write

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

GET /api/v1/summits/{id}/presentation-action-types/{action_id}

required scopes

%s/summits/read
%s/summits/read/all

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

DELETE /api/v1/summits/{id}/presentation-action-types/{action_id}

required scopes

%s/summits/write

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

Change-Id: Ibec7591b88470b59d9f942a553a8335a57e9db9e
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-01 12:36:17 -03:00
smarcet 07d8884d2f Fixed bugs on reorder endpoint
Change-Id: I2682421901518c4454a8078e70511dc205cb3770
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-22 14:08:23 -03:00
smarcet 40fe0d4e6a Added missing endpoint to track chairs api
export presentations to CSV

Change-Id: I53db367a30a9cda24830aea6af422e46ecb14d7a
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-11 13:37:33 -03:00
smarcet 384e6a3c52 Updated
GET api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/all/category-change-requests
filtering

added

presentation_title

ordering

added

* presentation_title
* new_category_title
* old_category_title
* requester_fullname

Change-Id: I8b85aefcfaeeb17281471999dd5b5d421bb6022b
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-09 13:39:12 -03:00
smarcet d4b4a05eef Fixes on track chairs
Change-Id: Ib85359ca0b50c708629669195f96a559cc2e58f0
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-09 11:10:32 -03:00
smarcet b76542f7c2 Fixes on track chairs filters
Change-Id: Iac273f90df83f590a9c3a1382ca3c5d7f36ff7f6
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-09 09:53:07 -03:00
smarcet 40e5e8e9c6 Added missing filter required for track chairs
added to method

GET api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations

following filters

'track_chairs_status' => 'sometimes|string|in:voted,untouched,team_selected,selected,maybe,pass',
'viewed_status' => 'sometimes|string|in:seen,unseen,moved',

Change-Id: I03924e6ae5eba683ae020693197113b160ae940c
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-05 10:35:34 -03:00
smarcet 434da847b5 Updated member serializer
Added track_chairs collection

Change-Id: I4c1c1abc15bdf4909525acdcea205af1f2fa4632
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-01 14:25:20 -03:00
smarcet 20e20a4c42 fix on get category
Change-Id: I6627ca2a0b7c39eba9b7e504fecec8c23581b469
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-23 17:41:34 -03:00
smarcet f1a3dde05c Added crud endpoints for track chairs categories
POST /api/v1/summits/{id}/track-chairs/{track_chair_id}/categories/{track_id}
DELETE /api/v1/summits/{id}/track-chairs/{track_chair_id}/categories/{track_id}

Change-Id: Icbd82c9d5ac66a9dc2c35d132a582a8e71d23a23
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-23 14:27:25 -03:00
smarcet a86a6c576f Fixed track chairs bugs
Change-Id: I22f9b1fcad456c01ec3d151b03873a83a7a2afb4
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-22 17:54:03 -03:00
smarcet dc6cfc296a Track chairs endpoints
** Get all presentations from selection Plan

GET /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations

filtering

'title'            => ['=@', '=='],
'abstract'         => ['=@', '=='],
'social_summary'   => ['=@', '=='],
'tags'             => ['=@', '=='],
'level'            => ['=@', '=='],
'summit_type_id'   => ['=='],
'event_type_id'    => ['=='],
'track_id'         => ['=='],
'speaker_id'       => ['=='],
'speaker'          => ['=@', '=='],
'speaker_email'    => ['=@', '=='],
'selection_status' => ['=='],
'id'               => ['=='],
'selection_plan_id' => ['=='],
'status'     => ['=='],
'is_chair_visible' => ['=='],
'is_voting_visible' => ['=='],

** for track chairs app use   'filter' => 'status==Received,is_chair_visible==1',

ordering

track

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get individual Selection List

GET /api/v1/summits/{id}/tracks/{track_id}/selection-lists/individual/owner/{owner_id}

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add to my individual Selection List

POST /api/v1/summits/{id}/tracks/{track_id}/selection-lists/individual/presentation-selections/{collection}/presentations/{presentation_id}

where {collection} should be one of following:
* selected
* maybe
* pass

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Remove From my individual selection list

DELETE /api/v1/summits/{id}/tracks/{track_id}/selection-lists/individual/presentation-selections/{collection}/presentations/{presentation_id}

where {collection} should be one of following:
* selected
* maybe
* pass

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get Team Selection List

GET /api/v1/summits/{id}/tracks/{track_id}/selection-lists/team

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Create team selection list

POST /api/v1/summits/{id}/tracks/{track_id}/selection-lists/team

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Reorder list

PUT /api/v1/summits/{id}/tracks/{track_id}/selection-lists/{list_id}/reorder

payload

hash => 'required|string'
collection => 'required|string|in:selected,maybe'
presentations => 'required|int_array' ( presentations ids)

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get track chairs per Summit

GET /api/v1/summits/{id}/track-chairs

fitering

'member_first_name' => ['=@', '=='],
'member_last_name' => ['=@', '=='],
'member_full_name' => ['=@', '=='],
'member_email' => ['=@', '=='],
'member_id' => ['=='],
'track_id' => ['=='],
'summit_id' => ['==']

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Mark Presentation as viewed

PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/view

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add Presentation Comment

POST /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/comments

Payload

'body' => 'required|string',
'is_public' => 'required|boolean',

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get all Presention Category Change Request

GET /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/all/category-change-requests

filtering

'selection_plan_id' => ['=='],
'summit_id' => ['=='],
'new_category_id' => ['=='],
'old_category_id' => ['=='],
'new_category_title' => ['=@', '=='],
'old_category_title' => ['=@', '=='],
'requester_fullname' => ['=@', '=='],
'requester_email' => ['=@', '=='],
'aprover_fullname' => ['=@', '=='],
'aprover_email' => ['=@', '==']

ordering

'id',
'approval_date',
'status'

Scopes

REALM_BASE_URL/summits/read
REALM_BASE_URL/summits/read/all

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add Presentation Category change Request

POST /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/category-change-requests

payload

'new_category_id' => 'required|integer',

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Resolve Presentation Category change Request

PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/category-change-requests/{category_change_request_id}

payload

'approved' => 'required|bool',
'reason' => 'sometimes|string',

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add track chair

POST /api/v1/summits/{id}/track-chairs

Payload

'member_id'   => 'required|int',
'categories' => 'required|int_array',

scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs-admins

** Update track chair

PUT /api/v1/summits/{id}/track-chairs/{track_chair_id}

Payload

'categories' => 'required|int_array',

scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs-admins

** Delete track chairs

DELETE /api/v1/summits/{id}/track-chairs/{track_chair_id}

scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs-admins

** Get Track Chair by Id

GET /api/v1/summits/{id}/track-chairs/{track_chair_id}

scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs-admins

Change-Id: Iab0d77a6337a0db27c649dcafb1d90f09923df8a
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-19 13:54:28 -03:00
smarcet bd94b62c12 Added Membership endpoints for my member
sign foundation

scopes

REAL_URL/members/write/me

PUT /api/v1/members/me/membership/foundation

resign foundation membetship

PUT /api/v1/members/me/membership/community

scopes

REAL_URL/members/write/me

Change-Id: Ib636cf5149cb8b0f633243726c58d3e9329c7234
Signed-off-by: smarcet <smarcet@gmail.com>
2021-01-12 18:41:26 -03: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 fcabc3114d added has_tickets filter
Change-Id: Ibb58de03e73033828bec1cb57ccd9742be209bf1
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-30 16:55:19 -03:00
smarcet 7eee98f9af Added tickets_count filter to attendes
Change-Id: I9e54f43f9029bdf32ac8f5b6e309b526113694f5
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-30 15:38:38 -03:00
smarcet 4a80c42350 Fixed speaker filter
Change-Id: I73b60f99578edcf7d23fe593abf651b85545c7b2
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-30 15:06:36 -03:00
smarcet 655256f9cd Added featured speakers filter
Change-Id: Ib2beba7846da780529ac13f13da851e254582f58
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-30 12:58:47 -03:00
smarcet ff52e8047e File Upload - Chunk Support
new endpoints for uploads

POST api/public/v1/files/upload

Change-Id: If35c616eb243bf5ec66205fb630fe30ce4dad647
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-23 15:25:50 -03:00
smarcet 4addbe0c94 Added Track Icon endpoints
POST /api/v1/summits/{id}/tracks/{track_id}/icon

param

file

Scopes
%s/summits/write

DELETE /api/v1/summits/{id}/tracks/{track_id}/icon

Scopes

%s/summits/write

Change-Id: Iefc9570a7b2f3b06174445b2f661c080c0e91699
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-22 16:24:52 -03:00
smarcet f7801849f8 Summit Metrics
added new endpoints

PUT /api/v1/summits/{id}/metrics/enter

required scopes

%s/me/summits/metrics/write
s/me/summits/events/enter

POST /api/v1/summits/{id}/metrics/leave

payload

type (string:in[GENERAL,LOBBY,EVENT,SPONSOR])
source_id (int[event id or sponsor id])

required scopes

%s/me/summits/events/leave
%s/me/summits/metrics/write

Change-Id: I46babe9d92832da02fe175f0d6cbcfd26bb037ad
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-14 19:03:25 -03:00
smarcet 2dddc60fca Added to summit payload
collection dates_with_events

Change-Id: I51cff8d9156e840bd7afe4ee90025fddaf752d62
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-13 19:16:00 -03:00
smarcet a30e62fa05 Reduce lock contention
Change-Id: I029ed7bfb75a3a3fce1245790ae9362685e09897
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-07 00:57:38 -03:00
smarcet f0c49c8f83 Added video column ( media upload) to
CSV events export

Change-Id: I680b09cadc5b9fa5242d82b82837ad1e11297c74
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-06 13:49:37 -03:00
smarcet f59e5ba5dd Fixed registration request orphan
Change-Id: I1c8664d6a175ef4c58145798fe7699466bcbaab7
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-02 11:22:43 -03:00
smarcet 600b417929 Company CRUDS
get all

GET api/v1/companies

add

POST api/v1/companies

payload

'name' => 'required|string',
'url' => 'nullable|url',
'display_on_site' => 'nullable|boolean',
'featured' => 'nullable|boolean',
'city' => 'nullable|string',
'state' => 'nullable|string',
'country' => 'nullable|string',
'description' => 'nullable|string',
'industry' => 'nullable|string',
'products' => 'nullable|string',
'contributions' => 'nullable|string',
'contact_email' => 'nullable|email',
'member_level' => 'nullable|string',
'admin_email' => 'nullable|email',
'color' => 'nullable|hex_color',
'overview' => 'nullable|string',
'commitment' => 'nullable|string',
'commitment_author' => 'nullable|string',

update

PUT api/v1/companies/{id}

'name' => 'sometimes|string',
'url' => 'nullable|url',
'display_on_site' => 'nullable|boolean',
'featured' => 'nullable|boolean',
'city' => 'nullable|string',
'state' => 'nullable|string',
'country' => 'nullable|string',
'description' => 'nullable|string',
'industry' => 'nullable|string',
'products' => 'nullable|string',
'contributions' => 'nullable|string',
'contact_email' => 'nullable|email',
'member_level' => 'nullable|string',
'admin_email' => 'nullable|email',
'color' => 'nullable|hex_color',
'overview' => 'nullable|string',
'commitment' => 'nullable|string',
'commitment_author' => 'nullable|string',

delete

DELETE api/v1/companies/{id}

get

GET api/v1/companies/{id}

add logo

POST api/v1/companies/{id}/logo

payload

file

delete logo

DELETE api/v1/companies/{id}/logo

add big logo

api/v1/companies/{id}/logo/big

payload

file

delete big logo

DELETE api/v1/companies/{id}/logo/big

Change-Id: Idac203571b31af6141f06d35bf1d3131a4636182
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-01 11:05:55 -03:00
smarcet 3cd4efefba Import Session data through CSV file
Minimal data required

title ( text )
abstract (text )
type_id (int) or type (string type name)
track_id (int) or track ( string track name)

Optional fields

social_summary ( text )
attendees_expected_learnt ( text ) * provided only if event is presentation type
location (id or name)
level (text possible values [N/A, Beginner, Intermediate, Advanced]) * provided only if event is presentation type
allow_feedback (int possible values [0,1])
to_record (int possible values [0,1])
tags ( repetitive group: values | delimited)
sponsors ( repetitive group : names | delimited )
speakers ( repetitive group:  emails | delimited )
start_date (mandatory if is_published is 1) Y-m-d H:i:s format ( summit time zone )
end_date (mandatory if is_published is 1)  Y-m-d H:i:s format ( summit time zone )
is_published (int possible values [0,1]) , if this field is set 1 start_date and end_date are mandatories
selection_plan (string  selection plan name)  * provided only if event is presentation type
attendees_expected_learnt ( text , only presentations)
problem_addressed ( text , only presentations)

added endpoint

POST /api/v1/summits/{summit_id}/events/csv

multipart/form-data

* Expected params

file
send_speaker_email

Change-Id: I245d4e1a22e2c5e3c4120c559d0ecb4a5a021c78
Signed-off-by: smarcet <smarcet@gmail.com>
2020-09-25 16:06:42 -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 b935d2f481 Member Refactoring
Change-Id: I8853fac7d2738a3c21a1fa7ff00c71b82e850388
Signed-off-by: smarcet <smarcet@gmail.com>
2020-02-26 22:51:24 -03:00
smarcet 3d4a9f97b6 Updated Feedback Endpoints
GET api/v1/summits/{id}/members/me/schedule/{event_id}/feedback

Required Scopes

REALM_URL/me/read

POST api/v1/summits/{id}/members/me/schedule/{event_id}/feedback

Payload

'rate' => 'required|integer|digits_between:0,5',
'note' => 'max:500',

Required Scopes

REALM_URL/me/summits/events/feedback/add

PUT api/v1/summits/{id}/members/me/schedule/{event_id}/feedback

Payload

'rate' => 'required|integer|digits_between:0,5',
'note' => 'max:500',

Required Scopes

REALM_URL/me/summits/events/feedback/add

DELETE api/v1/summits/{id}/members/me/schedule/{event_id}/feedback

Required Scopes

REALM_URL/me/summits/events/feedback/delete

Change-Id: I754e8bfbc15554280fba436b1168dcfbb0299f88
Signed-off-by: smarcet <smarcet@gmail.com>
2020-02-18 10:26:07 -03:00
smarcet 7dfe201633 Added endpoint to share Event by email
POST /api/v1/summits/{id}/events/{event_id}/published/mail

Paylaod
from : required|email
to:required|email
event_uri: optional|url
if not set tries to referer or summit.default_event_detail_url

Required Scopes

$REALM_URL/me/summits/events/schedule/mai

Change-Id: If5d5cfee902f58d3517a79cf333df7174b247208
Signed-off-by: smarcet <smarcet@gmail.com>
2020-02-17 18:38:49 -03:00
smarcet f60602745c Added get shareable ICS my summit schedule
create shareable calendar ICS feed

POST api/v1/summits/{id}/members/{member_id}/schedule/shareable-link

revoke current calendar ICS feed

DELETE api/v1/summits/{id}/members/{member_id}/schedule/shareable-link

Get ICS public feed

GET  api/public/v1/summits/{id}/members/all/schedule/ics/{cid}

Change-Id: I46c42cbfd86896bbf8e23ba659b4d03abf74b90d
2020-02-14 15:43:57 -03:00
smarcet b4d9655025 Added new Summit fields
'schedule_default_page_url'          => 'nullable|string',
'schedule_default_event_detail_url'  => 'nullable|string',
'schedule_og_site_name'              => 'nullable|string',
'schedule_og_image_url'              => 'nullable|string',
'schedule_og_image_secure_url'       => 'nullable|string',
'schedule_og_image_width'            => 'nullable|integer',
'schedule_og_image_height'           => 'nullable|integer',
'schedule_facebook_app_id'           => 'nullable|string',
'schedule_ios_app_name'              => 'nullable|string',
'schedule_ios_app_store_id'          => 'nullable|string',
'schedule_ios_app_custom_schema'     => 'nullable|string',
'schedule_android_app_name'          => 'nullable|string',
'schedule_android_app_package'       => 'nullable|string',
'schedule_android_custom_schema'     => 'nullable|string',
'schedule_twitter_app_name'          => 'nullable|string',
'schedule_twitter_text'              => 'nullable|string',

Change-Id: I4d539031b2acd8b59bd46da7640a8f9ef25911c2
2020-02-13 15:57:23 -03:00
smarcet e33cf7ee44 RSVP endpoints
POST api/v1/summits/{id}/members/me/schedule/{event_id}/rsvp

Payload

anwers: array of answer DTO

answer DTO

question_id: int
value: string or string array ( depending on type of question multivalue or not)

Required Scopes

REALM_BASE_URL/summits/write

PUT api/v1/summits/{id}/members/me/schedule/{event_id}/rsvp

Payload

anwers: array of answer DTO

answer DTO

question_id: int
value: string or string array ( depending on type of question multivalue or not)

Required Scopes

REALM_BASE_URL/summits/write

DELETE api/v1/summits/{id}/members/me/schedule/{event_id}/rsvp

Required Scopes

REALM_BASE_URL/summits/write

Change-Id: I9ea4388effd44617e5122e1b1a23c9c74473d2e6
2020-02-12 12:19:26 -03:00
smarcet 28a96f33c1 Added filtering by message to push notifications
Change-Id: I785939bd07892ec74dd693f1e0a997f62b39cc65
2020-02-06 15:29:39 -03:00