On Mon, 2019-12-02 at 17:24 +0700, Tellier Benoit wrote:
[...]
>
> > Are routes modular or each endpoint can declare some point of
> > extensions?
>
> Each endpoint will have to declare it's own extensions.
That sounds like a good choice
>
> Note that my proposal leverage the Task model we use on `POST`
> actions.
>
> > Cheers,
> >
>
> Taking `POST /users/BOB/mailboxes` endpoint
>
> UserMailboxes routes takes a Set<TaskRegistration> as a constructor
> parameter annotated with @Named("allMailboxesTasks")
>
> We write a task registration for user mailbox reIndexing (action
> reIndex) generating the task to reIndex one mailbox.
>
> We for user mailbox jmapView recomputation (action
> recomputeJMAPFastMessageViewProjection) generating the task to
> recompute
> JMAP fastMessageView projection.
>
> Binding to TaskRegistration action reIndex can be done in
> webadmin-guice-data.
>
> Binding for TaskRegistration action
> recomputeJMAPFastMessageViewProjection can be done in
> webadmin-guice-data-jmap.
>
> I can then be calling:
>
> - `POST /users/BOB/mailboxes?task=reIndex`
> - `POST
> /users/BOB/mailboxes?task=recomputeJMAPFastMessageViewProjection`
>
> We can reuse the same mechanism for other routes (we only need to
> write
> new bindings)
>
> (Not included in this explanation)
>
> Does it answers your questions?
Yes, very well. Thank you for the explanation.
> Does it look like a desirable solution?
Yes, I agree it's a good solution for this specific case and probably
for some other cases too.
--
Matthieu Baechler
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]