Challenge Overview
Challenge Overview
Welcome to the EWS middleware API challenge. Our goal here is to implement apps, files and search related EWS (Exchange Web Services) API endpoints that would read and write the resources from a custom data source instead of Exchange data sources like an outlook email inbox.
Project Overview
The project goal is to create EWS and MAPI middlewares and use them to provide access from Outlook to data from non-Microsoft apps/data sources. Integrating with those data sources is out of scope for this challenge - we will use static/demo data for verification only. This challenge will only implement schedule related endpoints. MAPI support would be added in a future challenge.
Technology Stack
-
Typescript
-
Loopback 4
-
EWS
Assets
See forums for access to the project repository.
Individual requirements
NOTE: Outlook integration only works on OSX - you will need Outlook client on OSX to work on this challenge
The goal here is to implement EWS API that reads some static data, point Outlook client to that API and get the communication working between them. Here is a system diagram of what we’re trying to do
See the EWS Managed API reference for API details.
In the previous challenge we have implemented account related endpoints. In this challenge we’re targeting apps, files and search related endpoints, a Postman collection to verify the implementation (see below for the list of required endpoints) and a demo video to show the app working with Outlook. Since there is no business logic to implement (we’re not integrating with external services yet), most of the endpoints should be straightforward to implement. Use the existing in-memory data store to read/write data to - this is to showcase that Outlook works with the implemented apis (for example receiving an email and then searching the mailbox should work).
Try using auto-generated EWS generated models to implement the API proxy/middleware. Note that these are .NET managed model classes (so can't be used directly in NodeJS land), but should still be helpful to resolve any endpoint model mappings.
Latest WSDL for EWS APIs are available here - you need to log in with a Microsoft account to access it (wsdl and xsd files available in the project repo too). The endpoints that need to be implemented are
-
GetAppManifests
-
InstallApp
-
UninstallApp
-
DisableApp
-
GetAppMarketplaceUrl
-
GetServiceConfiguration
-
GetSharingMetadata
-
RefreshSharingFolder
-
GetSharingFolder
-
FindItem
-
FindConversation
-
ApplyConversationAction
-
GetConversationItems
-
FindTags
-
AddTag
-
HideTag
-
GetSearchableMailboxes
-
SearchMailboxes
-
GetDiscoverySearchConfiguration
-
GetSearchSuggestions
-
DeleteSearchSuggestion
-
ExecuteSearch
-
EndSearchSession
What to submit
-
Submit the API implementation
-
README document with deployment and verification steps (and demo video for outlook verification)
-
Postman collection to verify the endpoints