Skip to content

Commit

Permalink
Airmeet Event Details connector with tests and documentation (#1077)
Browse files Browse the repository at this point in the history
* Airmeet Event Details connector with tests and documentation

* Handle when list of booths is null. Add tests for session and replay attendance exceptions.

* Fix naming and formatting

* Fix long lines.

* add airmeet docs to sidebar

* Added notes indicating untested methods related to booths and event tracks (features that are available only in certain Airmeet plans).

---------

Co-authored-by: Cody Gordon <[email protected]>
  • Loading branch information
strangeways and codygordon authored Dec 2, 2024
1 parent b8dccf5 commit b98ecf8
Show file tree
Hide file tree
Showing 6 changed files with 1,000 additions and 0 deletions.
63 changes: 63 additions & 0 deletions docs/airmeet.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
Airmeet
=======

********
Overview
********

`Airmeet <https://www.airmeet.com/>`_ is a webinar platform. This connector supports
fetching events ("Airmeets"), sessions, participants, and other event data via the
`Airmeet Public API for Event Details <https://help.airmeet.com/support/solutions/articles/82000909768-1-event-details-airmeet-public-api>`_.

.. note::
Authentication
You must create an Access Key and Secret Key via the Airmeet website. These are used by the ``Airmeet`` class to fetch
an access token which is used for subsequent interactions with the API. There are three region-based API endpoints; see
the `Airmeet API documentation <https://help.airmeet.com/support/solutions/articles/82000909768-1-event-details-airmeet-public-api#3.-Authentication%C2%A0>`_ for details.

***********
Quick Start
***********

To instantiate the ``Airmeet`` class, you can either store your API endpoint, access key, and secret key as environmental
variables (``AIRMEET_URI``, ``AIRMEET_ACCESS_KEY``, ``AIRMEET_SECRET_KEY``) or pass them in as arguments.

.. code-block:: python
from parsons import Airmeet
# First approach: Use API credentials via environmental variables
airmeet = Airmeet()
# Second approach: Pass API credentials as arguments (airmeet_uri is optional)
airmeet = Airmeet(
airmeet_uri='https://api-gateway.airmeet.com/prod',
airmeet_access_key="my_access_key",
airmeet_secret_key="my_secret_key
)
You can then call various endpoints:

.. code-block:: python
# Fetch the list of Airmeets.
events_tbl = airmeet.list_airmeets()
# Fetch the list of sessions in an Airmeet.
sessions_tbl = airmeet.fetch_airmeet_sessions("my_airmeet_id")
# Fetch the list of registrations for an Airmeet, sorted in order
# of registration date.
participants_tbl = airmeet.fetch_airmeet_participants(
"my_airmeet_id", sorting_direction="ASC"
)
# Fetch the list of session attendees.
session_attendees_tbl = airmeet.fetch_session_attendance("my_session_id")
***
API
***

.. autoclass :: parsons.Airmeet
:inherited-members:
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ Indices and tables
action_kit
action_builder
action_network
airmeet
airtable
alchemer
auth0
Expand Down
1 change: 1 addition & 0 deletions parsons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
("parsons.action_kit.action_kit", "ActionKit"),
("parsons.action_builder.action_builder", "ActionBuilder"),
("parsons.action_network.action_network", "ActionNetwork"),
("parsons.airmeet.airmeet", "Airmeet"),
("parsons.airtable.airtable", "Airtable"),
("parsons.alchemer.alchemer", "Alchemer"),
("parsons.alchemer.alchemer", "SurveyGizmo"),
Expand Down
3 changes: 3 additions & 0 deletions parsons/airmeet/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from parsons.airmeet.airmeet import Airmeet

__all__ = ["Airmeet"]
Loading

0 comments on commit b98ecf8

Please sign in to comment.