Age | Commit message (Collapse) | Author |
|
Use this instead of `Box`es. Hoping this, along with using the library
in my main crate also, will help me get some more context on my runtime
error.
Hey, it did! Turns out the error is coming from 'serde_json'. Cool.
|
|
|
|
|
|
* Clone the token so we can use it without a borrow error
* Get the response text from our request to the API and try to parse it
This gives me the following panic:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err`
value: ErrorImpl { code: Message("invalid type: null, expected a
sequence"), line: 0, column: 0 }', libcore/result.rs:945:5
Still trying to figure out where my problem is.
|
|
|
|
We'll call `find_upcoming_events` on `Client` to give us access to the
token it holds.
|
|
This will hold our API token and provide methods to make API requests.
|
|
Set up the code to make a request to the Meetup API. Still needs an API
key, and we need to call the function correctly in `write_feed`.
|
|
I didn't pay attention when I wrote this, but that method actually
returns a `Result`, so we need to use it.
|
|
I had copied this from an example in the docs, but the compiler tells me
the `mut` isn't needed. Cool.
|
|
|
|
* Add a new module that contains a "main" library function that does the
integration for generating the feed and outputting it to STDOUT.
* Call this function from `main()` and have it output a real feed.
|
|
Eventually, I want this function to make a request to the Meetup API and
return a `Vec` of `Event`s.
For now, though, so we can test things out, use our test JSON file
instead of a real web request.
|
|
|
|
* Take a `Vec` reference instead of an object. This is the result of
messing around with calling the function in the test.
* Update the test to actually make assertions on the result of the
function.
|
|
This uses the RSS crate to build a new channel with items corresponding
to the given `Event`s. It needs to be fleshed out a little, but this is
the basic idea.
|
|
|
|
* Add an additional `Event` to the list of expected events to give us
more than one to test with.
* Remove all but the first two events from the JSON test data so we
don't have to reproduce all of those events in our test code.
|
|
* Derive `Deserialize` on our `Event` type
* Use Serde to parse a `Vec` of `Event`s that we can return from the
function
* Return a `Result` from the function to handle Serde errors
|
|
So we can derive `Deserialize` on our `Event` type.
|
|
A bunch of the descriptions had double quotes in them (`"`) that weren't
escaped. Escape these to make the JSON valid.
|
|
Add a couple function skeletons. Write the beginning of a test for the
function that parses a JSON string to a list of `Event`s.
In order to do the test, needed to derive `Debug` and `PartialEq` on
`Event`.
|
|
Include some fields that seem interesting. Also leave a note that we'll
want to create a new struct for `Venue` because this is a sub hash in
the JSON response.
|
|
For deserialising JSON from the API to a struct.
|
|
This comes from:
https://api.meetup.com/find/upcoming_events?&sign=true&photo-host=public&page=20
Grabbed from the browser API console.
We'll use this for writing unit tests.
|
|
Use `reqopt` since this is a required option. Since the `opts.parse`
call will catch it if it isn't present earlier in the `main` function,
just unwrap it when extracting it.
|
|
|
|
Include an option to pass a Meetup.com API token (not saved yet).
|
|
For command line argument parsing.
|
|
|
|
Generated with:
$ cargo new --bin meetup-find-events-rss
|