Create a service to interface between controller and api, so as to centralize model-related business logic and to decouple UI from API.
This allows our interface to present changes in the model even if they're different from what's on the server; we can't do this now because, for example, the UI reloads the whole list of "enabled" vs "new" extensions with each extension status change. So this approach would allow us to keep state in the browser (e.g., show extensions that were "just now disabled" as greyed-out in the "enabled" list) that may differ from the live state.
General ideas:
This allows our interface to present changes in the model even if they're different from what's on the server; we can't do this now because, for example, the UI reloads the whole list of "enabled" vs "new" extensions with each extension status change. So this approach would allow us to keep state in the browser (e.g., show extensions that were "just now disabled" as greyed-out in the "enabled" list) that may differ from the live state.
Blocks: #25