Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate API interface, add user mention support #155

Merged
merged 1 commit into from Feb 25, 2022

Conversation

atc0005
Copy link
Owner

@atc0005 atc0005 commented Feb 25, 2022

Summary

  • deprecate the current API interface
  • expose TeamsClient to take its place
  • create common interfaces and helper code to abstract any specific
    Microsoft Teams message format
  • create new botapi package (limited functionality)
  • extend existing MessageCard type (where needed) type to support
    new behavior
  • port existing goteamsnotify.MessageCard types/functions/methods to
    a new messagecard package and deprecate existing MessageCard
    functionality provided by the goteamsnotify "base" package
  • update examples to reflect changes
  • restore support for overriding default http.Client
  • restore default project-specific user agent, support for
    overriding the default from client code

Backwards compatibility

While making these changes I've refactored code and attempted to
clearly communicate which existing code/functionality is being
deprecated, all without introducing breaking changes for client code.

Limitations

The botapi package added in this collection of changes is a minimal
implementation. This package is intended to provide limited user
mention functionality for channel updates as a "bridge" until future
Adaptive Card support can be implemented.

Future

A future implementation of Adaptive Card support would provide a
more complete experience, presumably providing a superset of the
limited support in the botapi package and existing MessageCard
functionality.

References

Summary:

- deprecate the current `API` interface
- expose `TeamsClient` to take its place
- create common interfaces and helper code to abstract any specific
  Microsoft Teams message format
- create new `botapi` package (limited functionality)
- extend existing `MessageCard` type (where needed) type to support
  new behavior
- port existing `goteamsnotify.MessageCard` types/functions/methods to
  a new `messagecard` package and deprecate existing `MessageCard`
  functionality provided by the `goteamsnotify` "base" package
- update examples to reflect changes
- restore support for overriding default `http.Client`
- restore default project-specific user agent, support for
  overriding the default from client code

While making these changes I've refactored code and attempted to
clearly communicate which existing code/functionality is being
deprecated, all without introducing breaking changes for client code.

The `botapi` package added in this collection of changes is a minimal
implementation. This package is intended to provide limited user
mention functionality for channel updates as a "bridge" until future
`Adaptive Card` support can be implemented.

A future implementation of `Adaptive Card` support would provide a
more complete experience, presumably providing a superset of the
limited support in the `botapi` package and existing `MessageCard`
functionality.

refs GH-127
refs GH-134
refs GH-135
refs GH-154
@atc0005 atc0005 added documentation Improvements or additions to documentation enhancement New feature or request api labels Feb 25, 2022
@atc0005 atc0005 added this to the v2.7.0 milestone Feb 25, 2022
@atc0005 atc0005 self-assigned this Feb 25, 2022
@atc0005 atc0005 merged commit 2b9b721 into master Feb 25, 2022
@atc0005 atc0005 deleted the i127-prototype-mention-support branch February 25, 2022 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
1 participant