# gitter-rs
[](#license)
[](https://github.com/shmutalov/gitter-rs)
[](https://travis-ci.org/shmutalov/gitter-rs)
[](https://crates.io/crates/gitter)
[](https://gitter.im/gitter-rs/general?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Gitter API in Rust
[**`WIP`**](#roadmap)
https://developer.gitter.im
# Building
```sh
cargo build
```
# Install
### Current version
```toml
[dependencies]
gitter = "0.1.1"
```
### Development version
```toml
[dependencies]
gitter = { git = "https://github.com/shmutalov/gitter-rs" }
```
- [Initialize](#initialize)
- [Users](#users)
- [Rooms](#rooms)
- [Messages](#messages)
- [Documentation](http://docs.rs/gitter)
- [Roadmap](#roadmap)
- [License](#license)
# Initialize
```rust
extern crate gitter;
use gitter::Gitter;
...
let api = Gitter::new("YOUR_ACCESS_TOKEN");
```
_Following code snippets did not updated yet_
# Users
- Get current user
```rust
let user = api.get_user().unwrap();
```
# Rooms
```rust
// Get all rooms
let rooms = api.get_rooms().unwrap();
// Get room by id
let room = api.get_room("roomID").unwrap();
// Get rooms of some user
let rooms = api.get_rooms("userID").unwrap();
// Join room
let room = api.join_room("roomID", "userID").unwrap();
// Leave room
let room = api.leave_room("roomID", "userID").unwrap();
// Get room id
let room_id = api.get_room_id("room/uri").unwrap();
// Search gitter rooms
let rooms = api.search_rooms("search/string").unwrap();
```
# Messages
```rust
// Get messages of room
let messages = api.get_messages("roomID", None).unwrap();
// Get one message
let message = api.get_message("roomID", "messageID").unwrap();
// Send message
api.send_message("roomID", "free chat text").unwrap();
```
# Roadmap
This project is a work in progress.
- [x] Implement base Rest API's and add some tests
- [x] Test `send_message` method
- [x] Implement all Rest API methods
- [ ] Add support for Streaming API
- [ ] Add support for Faye [_Optional_]
- [ ] Add support for automated access token retreive via Github authentification
- [ ] Cover with tests
- [ ] Add examples
# License
`gitter-rs` is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See [`LICENSE-APACHE`](LICENSE-APACHE) and [`LICENSE-MIT`](LICENSE-APACHE) for details.