Hello Awasum,

Thanks a million for your kindness.

I have created Pull Requests and sub-tasks to issue FINCN-6
<https://issues.apache.org/jira/browse/FINCN-6> and await your review.

Cheers,
Isaac Kamga.

On Mon, Sep 3, 2018 at 1:41 PM Awasum Yannick <[email protected]> wrote:

> Hello Isaac,
>
> I have merged the PR which documents Customer APIs.
> Follow the code style adjustment and send the rest of the PRs.
> I will be available today to review. From tomorrow, I will be unavailable.
>
> Thanks for your contributions and for being so patient over the pass few
> weeks as many of us were busy.
>
> Thanks.
> Awasum.
>
> On Sat, Aug 18, 2018 at 11:36 AM Awasum Yannick <[email protected]> wrote:
>
> > Hello Myrle, Isaac,
> >
> > What is the status of the API Doc? What is left for this code to be
> > reviewed and merged?
> >
> > This is weekend and I have some time today or tomorrow to help and review
> > if you all are busy. Let me know
> >
> > Thanks.
> > Awasum
> >
> > On Thu, Jul 5, 2018 at 4:26 PM Isaac Kamga <[email protected]>
> wrote:
> >
> >> Hello there,
> >>
> >> Trust that this email finds you in good health.
> >>
> >> I just hosted the Apache Fineract CN API documentation
> >> <http://smartfinance.tech/fineract-cn-api-docs/> which I've been
> working
> >> on
> >> so Fineracters can view and give some feedback. This will be quite
> helpful
> >> for GSoC students and developers working with Fineract CN as well as
> >> business persons who want a feel of the API Documentation. Note that
> this
> >> is just a temporary site for these docs, they'll eventually be hosted on
> >> Apache infrastructure.
> >>
> >> @Myrle Kindly take some time to review the aforementioned Pull Request
> so
> >> we make progress on that front.
> >>
> >> I hope this helps.
> >>
> >> At Your Service,
> >> Isaac Kamga.
> >>
> >> On Thu, Jun 28, 2018 at 11:21 AM Isaac Kamga <[email protected]>
> >> wrote:
> >>
> >> > Hi James,
> >> >
> >> > Thanks for your email.
> >> >
> >> > Yes, I think the API documentation can be an important part of the
> >> Apache
> >> > Fineract CN project.
> >> >
> >> > The document
> >> > <
> >>
> https://cwiki.apache.org/confluence/display/FINERACT/Apache+Fineract+CN+API+Documentation
> >> >
> >> > I wrote which you quoted above helps anyone generate the snippets and
> >> view
> >> > the api docs...developers would be okay with it.
> >> > When I'm done with another iteration of the project, I'll update the
> >> > community on how the documentation actually looks.
> >> >
> >> > At Your Service,
> >> > Isaac Kamga.
> >> >
> >> > On Fri, May 25, 2018 at 10:42 PM James Dailey <[email protected]
> >
> >> > wrote:
> >> >
> >> >> Isaac - This is a thread I am trying to follow.  Thank you for all
> the
> >> >> work
> >> >> you're putting in, and to Myrle for being a mentor on this work.
> Seems
> >> >> like it is leading to something really important for the project.
> >> >>
> >> >> I wonder if this <
> >> >>
> >> >>
> >>
> https://cwiki.apache.org/confluence/display/FINERACT/Apache+Fineract+CN+API+Documentation
> >> >> >
> >> >> should or could be expanded to explain and document the API or if we
> >> >> should
> >> >> have a separate API Documentation File.
> >> >>
> >> >> At a requirements level, I'm trying to figure out how Mojaloop APIs
> and
> >> >> Fineract-CN APIs would interact, perhaps as a model for how
> Fineract-CN
> >> >> and
> >> >> other outside API driven systems will function together.  On the
> >> Mojaloop
> >> >> project they have a 190 page documentation of the standard API
> starting
> >> >> with some statements that I think may also be relevant to how the
> >> >> Fineract-CN services architecture is set up.
> >> >>
> >> >>
> >>
> https://github.com/mojaloop/mojaloop-specification/blob/master/API%20Definition%20v1.0.pdf
> >> >>
> >> >>
> >> >> Specifically, I'm referring to section 3.1.1. .  Of those
> >> characteristics
> >> >> mentioned, which apply to Fineract-CN? :
> >> >>
> >> >>    - Fully Asychronous (esp for long running processes) :  my guess,
> >> seems
> >> >>    likely yes on Fineract-CN - yes?
> >> >>    - Decentralized (no central authority):  My current understanding
> is
> >> >>    that Fineract-CN has dependencies but not centralization?
> >> >>    - Service Oriented :  that seems like a given in Fineract-CN as it
> >> is
> >> >>    also a micro-services arch.
> >> >>    - Not fully stateless (some info required to be kept client and
> >> server
> >> >>    side to complete fin tranx):  Hmm...
> >> >>    - Client (side) decided common ID (complexity reduced by relying
> on
> >> >>    client to initiate tranx calls):  Maybe not yet in our thinking ?
> >> >> contrary?
> >> >>
> >> >> Similarly, there is a reference to how generic URI's are formed with
> a
> >> >> given example:
> >> >> scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
> >> >>
> >> >> and other things like max header size and so forth.
> >> >>
> >> >> As I lack the skills to actually work on this code, I'm hoping I can
> >> >> contribute at the level of conceptual understanding and requirements,
> >> and
> >> >> perhaps add to the Documentation if I can understand what is actually
> >> >> going
> >> >> on here.  If this is already documented, please send me there.
> >> >>
> >> >> ( Myrle - hope this is helpful, if not, let me know please.  )
> >> >>
> >> >> Thanks,
> >> >> - James
> >> >>
> >> >>
> >> >> On Thu, May 24, 2018 at 6:00 AM Isaac Kamga <[email protected]>
> >> >> wrote:
> >> >>
> >> >> > Hello Myrle,
> >> >> >
> >> >> > Trust that you're doing great.
> >> >> >
> >> >> > Following your recommendations, I intended solving the issue using
> a
> >> >> 3-step
> >> >> > approach;
> >> >> >
> >> >> > 1. Obtain token
> >> >> > 2. Validate token
> >> >> > 3. Add token to MockMvc call as a header.
> >> >> >
> >> >> > However, I've been unable to get status different from 404 (Not
> >> Found)
> >> >> and
> >> >> > 403 (Forbidden) in the MockMvc calls...so I think I'm getting at
> >> least
> >> >> one
> >> >> > of the 3 steps above wrong.
> >> >> >
> >> >> > Regarding 1.), I used TenantApplicationSecurityTestRule's
> >> >> > getPermissionToken() method to obtain some tokens based on Allowed
> >> >> > operations (Read, Change and Delete) and they were each of the form
> >> >> > "*Bearer
> >> >> > eyJhbGciOiJSU....*". Which service actually generates tokens ?
> >> >> > TenantAccessTokenSerializer
> >> >> > in anubis ?
> >> >> >
> >> >> > Concerning 2.), The tokens I obtained failed the
> >> >> > SystemSecurityEnvironment's isValidToken() method.  So how can we
> >> >> validate
> >> >> > the obtained tokens ?
> >> >> >
> >> >> > Regarding 3.), I noticed that Spring MVC Test provides an interface
> >> >> called
> >> >> > the RequestPostProcessor
> >> >> > <
> >> >> >
> >> >>
> >>
> https://github.com/spring-projects/spring-framework/blob/master/spring-test/src/main/java/org/springframework/test/web/servlet/request/RequestPostProcessor.java
> >> >> > >
> >> >> > which
> >> >> > can be used to modify a request. I intend to use this to add a
> valid
> >> >> token
> >> >> > to each MockMvc call. I wrote a method which modifies a request by
> >> >> > adding a *header(ApiConstants.AUTHORIZATON_HEADER,
> >> >> > myToken)* and then running each MockMvc call in the unit test with
> an
> >> >> > object of the class holding this method.
> >> >> >
> >> >> > Also, you mentioned a Spring Security filter which filters requests
> >> to
> >> >> > endpoints. Where exactly is this filter located ? I've been
> scouring
> >> >> anubis
> >> >> > for it to no avail. I'm considering mocking the filter to permit
> >> >> specific
> >> >> > tokens or calls go through.
> >> >> >
> >> >> > Your help will be greatly appreciated.
> >> >> >
> >> >> > At Your Service,
> >> >> > Isaac Kamga.
> >> >> >
> >> >> > On Tue, May 1, 2018 at 11:41 AM, Myrle Krantz <[email protected]>
> >> wrote:
> >> >> >
> >> >> > > Hey Isaac,
> >> >> > >
> >> >> > > On Tue, May 1, 2018 at 11:17 AM, Isaac Kamga <
> >> [email protected]>
> >> >> > > wrote:
> >> >> > > > Thanks for your very helpful feedback.
> >> >> > >
> >> >> > > You're very welcome.  Thank you for taking it so well.
> >> >> > >
> >> >> > > > Do we have to use a different approach ( possibly the
> >> documentation
> >> >> > > module
> >> >> > > > you earlier proposed ) for asynchronous calls (POST, PUT,
> DELETE
> >> )
> >> >> from
> >> >> > > > synchronous ones (GET) ? This can be done later but I wanted to
> >> know
> >> >> > your
> >> >> > > > thoughts on this.
> >> >> > >
> >> >> > > Fortunately we do not.  The asynchronous calls will return an
> >> >> > > ACCEPTED, and the synchronous calls will return OK.  From the
> >> point of
> >> >> > > view of the documentation, and of calling them, that's the only
> >> >> > > difference.  The asynchronous calls can also return BAD REQUEST
> for
> >> >> > > any invalid values which are fast to check (where the synchronous
> >> ones
> >> >> > > will return BAD REQUEST for invalid values regardless of how easy
> >> they
> >> >> > > are to check.)
> >> >> > >
> >> >> > > The documentation module is still an open question for me.  But
> not
> >> >> > > because of asynchronous vs synchronous calls.
> >> >> > >
> >> >> > > > Thanks for shedding more light on how this works. When I saw
> how
> >> >> "easy"
> >> >> > > it
> >> >> > > > was to do API calls, I asked myself how one could get to
> >> intercept
> >> >> > > > information such as the status of a response. Building a new
> test
> >> >> > harness
> >> >> > > > that works with mockmvc can be a daunting task. I hope I can
> >> count
> >> >> on
> >> >> > > your
> >> >> > > > help when I run into frustrations.
> >> >> > >
> >> >> > > I'll do what I can, but I don't know mockmvc.  I've never used
> it,
> >> >> > > partly because of this problem.
> >> >> > >
> >> >> > > > So far, I created this document
> >> >> > > > <https://cwiki.apache.org/confluence/display/FINERACT/Apache
> >> >> > > +Fineract+CN+API+Documentation>
> >> >> > > > to
> >> >> > > > help developers generate the asciidoc files themselves from the
> >> unit
> >> >> > > tests.
> >> >> > > > Would you prefer that we put this in the repository's README
> >> file or
> >> >> > > leave
> >> >> > > > it on confluence ?
> >> >> > >
> >> >> > > Let's start off with it where it is, and see whether it works by
> >> >> > > trying it out there.
> >> >> > >
> >> >> > > You're doing good,
> >> >> > >
> >> >> > > Best Regards,
> >> >> > > Myrle
> >> >> > >
> >> >> >
> >> >>
> >> >
> >>
> >
>

Reply via email to