matrix-elixir-sdk icon indicating copy to clipboard operation
matrix-elixir-sdk copied to clipboard

Implement Matrix client-server API wrapper

Open niklaslong opened this issue 5 years ago • 1 comments

The goal is to implement a wrapper for the Matrix client-server API. This wrapper will consist of:

  • a Request module which returns a struct containing the data necessary for each HTTP request
  • an HTTPClient module which makes the requests using Tesla
  • ~~an Client module which ties the aforementioned modules together in order to make the HTTP requests to a Matrix homeserver.~~
  • a Client module which makes the request through the configured HTTP client and will in future include a parse response stack.

niklaslong avatar Jun 02 '20 12:06 niklaslong

Docs: https://matrix.org/docs/spec/client_server/r0.6.1

Edit: the list below is inaccurate as some have been partially implemented. Please refer to the SDK docs and the Matrix client-server API docs to determine which endpoints still need to be implemented. The admin endpoints also need to be implemented: https://github.com/matrix-org/synapse/tree/master/docs/admin_api

Progress:

  • [x] 2 API standards (#2)
  • [x] 4 server discovery (#3)
  • [ ] 5.4 user-interactive auth API (#13, #15, #17)
  • [x] 5.5 login (#4, #5)
  • [x] 5.6 account registration and management (#6, #8, #14)
  • [ ] 5.7 account administrative contact information (#6, #14)
  • [x] 5.8 current account information (#6, #13)
  • [x] 6 capabilities negotiation (#20, #21, #22)
  • [ ] 8 filtering
  • [ ] 9.3 room events (#23, #47)
  • [x] 9.4 syncing (#24, #27)
  • [x] 9.5 getting events for a room (#25, #32)
  • [x] 9.6 sending events to a room (#26, #46)
  • [x] 9.7 redactions (#55)
  • [x] 10.1 room creation (#33, #43)
  • [ ] 10.2 room aliases
  • [x] 10.4 room membership (#36)
  • [x] 10.5 listing rooms (#34, #35)
  • [x] 11.1 user directory (#53, #54)
  • [x] 11.2 profiles (#49)

niklaslong avatar Jun 15 '20 15:06 niklaslong