mattermost-community/mattermost-plugin-skype4business

Use SiteURL for all calls from the webapp

Closed this issue · 1 comments

If the server's SiteURL is configured with a subpath, the webapp's API calls do not work. The task here is to make this plugin's client to prefix its URLs with the SiteURL. This also includes any calls to /plugins/*

Only API calls to the Mattermost server should use the SiteURL. Any calls to Microsoft servers should not use the SiteURL.

Here's an example of how the SiteURL may be computed:
https://github.com/mattermost/mattermost-plugin-jira/blob/19a9c2442817132b4eee5c77e259b80a40188a6a/webapp/src/selectors/index.js#L13-L26

By default, requests from the frontend to the server are not prefixed with any host. For example, a fetch request like fetch('/api4/users') will be sent to /api4/users. One problem this has is if the server is being hosted on a subpath, or for some reason the server's SiteURL happens to be a different host than the domain that the frontend is connected to, we need to prefix the API calls with the SiteURL.

An example before the fix:

fetch('/api4/users');

But we want

const siteURL = getSiteURL(state);
fetch(siteURL + '/api4/users');

The link in this issue's description is to a different project, just to show how to get the SiteURL. This fix needs to be applied to other plugin projects as well, such as the skype4business plugin here. The SiteURL is currently not being used in the frontend portion of the skype4business plugin.