about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2018-04-12 feat(handler): Perform basic input validation on new thread viewVincent Ambo4-11/+39
2018-04-12 chore(cargo): Remove unused dependencyVincent Ambo2-15/+0
2018-04-12 fix(handlers): Fix chained error handling in actorsVincent Ambo1-14/+15
This took me some time to figure out so it's useful to document in the commit message. When chaining messages from actors, the result type of a message (i.e. the actual `<M as Message>::Result`) is sometimes itself a `Result<T, E>`. In many cases this leads to a situation where the return type of a message sending process is something like (simplified): Future<Item=Result<Foo, ConverseError>, Error=actix::MailboxError> Due to the implementation of `From<actix::MailboxError> for ConverseError` it is possible to use `.from_err()` on these futures to convert the future's `Error` to `ConverseError`. The type `Result` apparently implements `IntoFuture`, which means that due to some trait magic that's been applied somewhere in the futures API a call to `flatten()` can "lift" the contained error if the error types match and give us a "simple" Future<Item=Foo, Error=ConverseError> From that point on chaining becomes easy.
2018-04-11 chore(handlers): Remove unused codeVincent Ambo1-8/+0
2018-04-11 chore(cargo): Use stable release of actix-webVincent Ambo2-20/+20
The git version previously tracked by Converse has been released.
2018-04-11 fix(templates/handlers): Fix post anchorsVincent Ambo2-3/+5
- ensure users are correctly linked to a post actor after replying - ensure timestamps are clickable to get post IDs
2018-04-11 chore: Clean up unused importsVincent Ambo2-3/+1
2018-04-11 feat(render): Use a more human-readable format for datesVincent Ambo1-5/+15
2018-04-11 fix(render): Escape thread titles in indexVincent Ambo1-1/+19
2018-04-11 feat(render): Implement Markdown thread rendering & GravatarVincent Ambo3-35/+85
Implements a new thread rendering pipeline which all posts and the main thread body are first converted to a `RenderablePost` structure. During the conversion to this structure, the post body is rendered as Markdown and the author's email address is converted into the format required by Gravatar.
2018-04-11 chore(cargo): Add md5 crate dependencyVincent Ambo3-0/+10
Required for Gravatar.
2018-04-11 fix(main): Correctly set up rendering actorVincent Ambo1-3/+7
2018-04-11 refactor(handlers): Use rendering actor for page rendersVincent Ambo2-46/+31
This currently breaks error handling in page render flows. To fix it properly, the database actor should return failable futures instead of `Result<T>` wrapped in a future.
2018-04-11 feat(render): Add rendering actorVincent Ambo2-1/+72
Adds a separate actor that handles page rendering, templating engine state and other related topics.
2018-04-10 fix(main): Update cookie session setup for new actix-webVincent Ambo1-4/+3
2018-04-10 chore(cargo): Dependency bump & pin versionsVincent Ambo2-8/+105
2018-04-09 fix(templates): Fix author name & avatar displayVincent Ambo1-4/+12
2018-04-09 fix(db): Order index threads in descending post timeVincent Ambo1-1/+3
Technically the last post date should matter more here, but we'll get there.
2018-04-09 feat(handlers/templates): Add "New Thread" handler and templateVincent Ambo3-1/+62
2018-04-09 feat(templates): Slightly less barebones index & thread templatesVincent Ambo2-39/+115
2018-04-09 feat(handlers): Extract & add author to thread and post informationVincent Ambo3-6/+46
2018-04-09 feat(main): Initialise RequireLogin middleware on launchVincent Ambo1-4/+11
2018-04-09 feat(handlers): Add RequireLogin middlewareVincent Ambo2-4/+27
Adds a middleware that automatically redirects users to the login page if they don't have an active session (i.e. 'author' set).
2018-04-09 fix(main): Generate random session keyVincent Ambo3-1/+12
2018-04-08 docs(todo): Add TODO listVincent Ambo1-0/+4
2018-04-08 feat(handlers): Use cookie session backend to store author infoVincent Ambo3-12/+34
2018-04-08 feat(templates): Display author information in templatesVincent Ambo2-3/+3
2018-04-08 feat(main): Configure & start OIDC actor when Converse launchesVincent Ambo1-5/+33
2018-04-08 feat(handler): Implement OIDC login & callback handlersVincent Ambo1-0/+23
2018-04-08 chore(models/schema): Update with author fieldsVincent Ambo2-0/+8
2018-04-08 feat(oidc): Implement initial OIDC actorVincent Ambo5-2/+489
Implements an actor that can perform OAuth2 logins (not really OIDC-compliant yet because Rust doesn't have an easy to use JWT library that supports JWKS, and I don't have time for that right now). Currently this hardcodes some Office365-specific stuff.
2018-04-08 feat(migrations): Add author columns to tablesVincent Ambo2-0/+15
Adds columns for author names and emails to both threads and posts. "Users" don't (yet? who knows!) exist as independent entity in Converse, they are simply "inferred" via OIDC providers.
2018-04-08 feat(templates): Add shitty little response form in thread viewVincent Ambo2-2/+14
2018-04-08 feat(handlers): Add reply_thread handler for postsVincent Ambo2-2/+18
2018-04-08 feat(db/models): Add handling of CreatePost messageVincent Ambo2-2/+30
2018-04-08 feat(templates): Add a shitty thread submission formVincent Ambo1-0/+14
2018-04-08 feat(handlers): Add thread submission handlerVincent Ambo3-1/+17
2018-04-08 feat(db): Support CreateThread messageVincent Ambo2-0/+29
2018-04-08 feat(migrations): Default 'posted' columns to NOW()Vincent Ambo2-0/+4
2018-04-08 refactor(db): Use ConverseError instead of unwrapping/expectingVincent Ambo1-10/+8
2018-04-08 feat(errors): Introduce error module with custom error typeVincent Ambo4-2/+83
Introduces an error type using the failure crate. This type has foreign error links established to various errors that can occur within Converse.
2018-04-08 refactor(main): Move handlers into separate handler moduleVincent Ambo2-61/+79
2018-04-08 feat(main): Support CONVERSE_BIND_HOST environment variableVincent Ambo1-2/+5
2018-04-08 refactor(main): Use actix-web extractor patternVincent Ambo1-10/+12
2018-04-08 refactor(db): Establish Post->Thread associationVincent Ambo5-7/+15
This makes it possible to query posts by thread via Diesel.
2018-04-08 feat(main/templates): Add barebones single-thread viewVincent Ambo4-3/+43
2018-04-08 feat(db): Add initial GetThread messageVincent Ambo1-0/+22
Adds a GetThread message that returns a thread by ID. This does not yet load posts.
2018-04-08 feat(main): Add support for Tera templatesVincent Ambo5-16/+44
Sets up the structure required to carry Tera templates in the actix-web state. The (still very barebones) index renderer has been updated to render a Tera template.
2018-04-08 chore(cargo): Add dependency on teraVincent Ambo2-0/+60
Adds tera as the templating engine.
2018-04-08 feat(main): Add barebares thread listingVincent Ambo3-16/+68
This ties together the first components here (actix, diesel etc.) to provide a _very_ simple thread overview.