Skip to content

Instantly share code, notes, and snippets.

@Charge-Aep
Last active September 11, 2019 23:44
Show Gist options
  • Save Charge-Aep/6c868cdac615a64b8b1bb024f956cad4 to your computer and use it in GitHub Desktop.
Save Charge-Aep/6c868cdac615a64b8b1bb024f956cad4 to your computer and use it in GitHub Desktop.
Charge AEP Code Kata - Slack Integration

AEP Charge Code Kata

Scenario

You and a group of friends have determined the growing need for an application that consolidates Social Chat applications (Slack, Discord, Steam, etc.) and allows a single application to control communications on said platforms. Your application intends to interface with any current and future platforms that expose a public API for user management.

Problem Statement

You and your friends have broken up this project into appropriate tasks including project scaffolding, platform authentication & session management, and platform friend states among others. You have taken the task to define the object model for how your application will manage Users from different platforms with varying user attributes.

Task

For the purposes of this Code Kata you are tasked with defining an extensible object model using the guidelines defined above for the User model as well as provide a sample implementation for populating a specific user. The sample integration for this kata will have you interfacing with the [Slack](https://slack.com/) Workspaces API to retrieve the details for a specific user by Username.

The Slack integration will use the [Users.info](https://api.slack.com/methods/users.info) API to get the appropriate details for the Slack User.
Feel free to implement this solution using the language of your choice.

Goals

  • Extensible User Data Model
  • Extensible API Invocation Model
  • Slack Integration using the above model
  • Logical Integration Tests for your implementation

Note: For testing purposes you may want to spin up your own Slack Workspace and generate a web token. They are free and easy to setup, just go through Slack.com and create an account if you currently don't have one.
Creating a Slack Workspace
Generating a Slack Token

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