Skip to content

Adding campusgroup api integration#1755

Open
sheggen wants to merge 10 commits into
developmentfrom
add_campusgroups_api
Open

Adding campusgroup api integration#1755
sheggen wants to merge 10 commits into
developmentfrom
add_campusgroups_api

Conversation

@sheggen

@sheggen sheggen commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Issue Description

This PR does not tie to an issue yet. It is related to the integration of campusgroups API to our application so that we can push and/or pull data from CampusGroups.

Changes

  • Creates a new route for CELTS-Link which retrieves API data from CampusGroups and returns it to CELTS-Link as JSON data. Currently, it retrieves all event data in CampusGroups.
  • Creates a new route for CELTS-Link to push events to CampusGroups.
    • Creates new events
    • Updates existing events, including the ability to delete events
  • Added xmltodict to requirements.txt.
  • Added fields to default.yml for connecting to CampusGroups.
  • Created a new class in app/logic for handling all CampusGroup interaction.
  • Added UI elements to Event View page for CampusGroups pushing. Handles cases where there is no CampusGroup event, and when an update is required from changes in Celts-Link.

Testing

  • Prior to the route working the following must be set up:
    1. The public API key for campusGroups must be included in local-overrides.yml. An administrator for CampusGroups can share that key with you (currently, Brian and Scott have access to get you this).
    2. An API secret key must be generated from inside CampusGroups admin interface also. This must be done by an administrator for that application. Developers should use the sandbox site; production should use the production site.
    3. The IP address of your server where you are running CELTS-Link must be in the valid range inside the CampusGroups admin interface as well. This is configured on the same UI inside CampusGroups as step 2 above.
    4. The above three fields are in stored in default.yml config file, and local-override.yml should be used to keep the secrets secret by copying the fields from default.yml to local-overrides.yml.
    5. Run the CELTS-Link app and navigate to:
      a. /retrieveEvents: Retrieves a JSON representation of all events in CampusGroups. (currently not doing anything with this route)
      b. /event/<eventid>/view: Shows a particular event. Notice the section for CampusGroups. Try it on a new event (i.e., before an event has been synced to CampusGroups), a synced event, and an updated event (i.e., needs pushed again to CampusGroups).

Remaining Items

  1. We need to handle individual programs in CampusGroups. Currently, we are testing against the sandbox, and there is one group there for Celts. We will need to handle individual programs, especially if each program has it's own "group" in CampusGroups. The link between the two is Event.program in our system and cg_group_acronym in CampusGroups. We will need to store that acronym in our Program model, probably.
  2. We need to decide what to do about pulling data from CampusGroups, particularly RSVP information.
  3. RSS read RSVP data from CampusGroups to CELTS-Link (they do not need to push RSVPs to CampusGroups)

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

View Code Coverage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant