<div dir="ltr"><div>Hi,</div><div><br></div><div>Pedro and I have been working on improving the way we request the Koha REST API from Vue components.</div><div>We ended up with the implementation that is available on the following remote branch:</div><div><a href="https://gitlab.com/joubu/Koha/-/commits/bug_32925">https://gitlab.com/joubu/Koha/-/commits/bug_32925</a></div><div><br></div><div>It contains the patches from the following bug reports:<br><div class="gmail-knob-buttons">
      </div>
     <a href="https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=32898"><b>Bug 32898</b></a> <span id="gmail-summary_container">
      - <span id="gmail-short_desc_nonedit_display">Cypress tests are failing</span></span></div><div><span id="gmail-summary_container"><small></small></span></div><div><div class="gmail-knob-buttons">
      </div>
     <a href="https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=32923"><b>Bug 32923</b></a> <span id="gmail-summary_container">
      - <span id="gmail-short_desc_nonedit_display">x-koha-embed must a header of collectionFormat csv</span> </span><br></div><div></div><div><div class="gmail-knob-buttons">
      </div>
     <a href="https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=32806"><b>Bug 32806</b></a> <span id="gmail-summary_container">
      - <span id="gmail-short_desc_nonedit_display">Some Vue files need to be moved for better reusability</span> </span><br></div><div><div class="gmail-knob-buttons">
      </div></div><div><div class="gmail-knob-buttons">
      </div>
     <a href="https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=32939"><b>Bug 32939</b></a> <span id="gmail-summary_container">
      - <span id="gmail-short_desc_nonedit_display">Have generic fetch functions in vue modules</span></span></div><div><span id="gmail-summary_container"><small></small></span></div><div><div class="gmail-knob-buttons">
      </div>
     <a href="https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=32925"><b>Bug 32925</b></a> <span id="gmail-summary_container">
      - <span id="gmail-short_desc_nonedit_display">Display loading info when a form is submitted</span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display"><br></span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display">First, make the tests pass (32898)! We forgot to include the cypress test in the jenkins pipeline and we missed regressions! There have been regressions on the REST API specs, that are fixed on 32923.<br></span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display">We noticed that the code we provided for the ERM module was not flexible enough and too ERM oriented. Some directories have been moved and code split a bit to make it more reusable for other modules (32806).</span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display">Finally there are 32939 that introduce generic fetch functions, to have all the error handling (catch exceptions and display the error on the UI) in a single place. On top of that we added a "loading" message when a form (POST/PUT/DELETE) is submitted and, thanks to the previous moves, it's only a couple of lines of code!</span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display"><br></span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display">All this must be considered a base for future Vue enhancements, and I would like people interested in the Vue work to have a look at it.</span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display"><br></span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display">Cheers,</span></span></div><div><span id="gmail-summary_container"><span id="gmail-short_desc_nonedit_display">Jonathan<br></span></span></div><div><span id="gmail-summary_container">
     </span>

    
  <span id="gmail-summary_container">
     </span>

    
  </div></div>