https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=33036
--- Comment #32 from Thomas Klausner <d...@plix.at> --- Created attachment 159103 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=159103&action=edit Bug 33036: REST API: Merge biblio records implements merging of records + attached items, subscriptions etc via the API as an alternative to the web interface: cgi-bin/koha/cataloguing/merge.pl This is a slightly improved version of Zenos patch: I (domm) have converted the code in Koha::Biblio to a more DBICy style and packed it into a transaction (as requested in Comment 23) The QA script complains about files being less tidy, but if we add the perltidy changes to this commit I'm afraid the actual change will be much less clear to review. So I did not run perltidy on the changed files. To test: 1) you need an API user with the permissions "editcatalogue" 2) two records: one to be merged into (with biblio_id, eg 262) and another one from which to merge (with biblio_id_to_merge, eg 9) which will be deleted! both records may/should have items, subscription, subscriptionhistory, serial, suggestions orders and holds 3) check both records via the web 4) Apply patch 5) Write a JSON file with inside the field 'biblio_id_to_merge' and the biblionumber from wihich to merge. As example: { "biblio_id_to_merge" : 9 } 6) Execute an API call with correct headers and location. For example: curl -s -u koha:koha --header "Content-Type: application/json" --header "Accept: application/marc-in-json" --request POST "http://127.0.0.1:8080/api/v1/biblios/262/merge" -d @file.json You must to setup the headers and to use a json file with parameters 7) The record with the id 9 is deleted now, the record with 262 has all items, etc attached, the return is: return code 200 and the changed record 262 in marc-in-json format 8) It is possible to override biblio data with an external bib record. You need to put external bib record into the json file in marc-in-json format. To write use the json file uploaded as example You need to fill the fields 'rules' and 'datarecord'. The field 'rules' must contains 'override_ext' To do the call: curl -s -u koha:koha --header "Content-Type: application/json" --header "Accept: application/marc-in-json" --request POST "http://127.0.0.1:8080/api/v1/biblios/XXX/merge" -d @file_with_recod.json 9) The record in 'biblio_id_to_merge' is deleted now, in biblio XXX now there are the bibliographic data of field 'datarecord' of json file, the return is: return code 200 and the changed record XXX in marc-in-json format 10) Go into intranet and do a search. Select two or (better) more record. 11) Merge them; merge must be a success. 12) Test with prove -v t/db_dependent/Koha/Biblio.t 13) Test with prove -v t/db_dependent/api/v1/biblios.t To test with curl the step 8 you can customize the json file attached in bugzilla. The marc-in-json record inside follows the MAR21 standard Sponsored-by: Technische Hochschule Wildau Co-authored-by: Zeno Tajoli <ztaj...@gmail.com> Co-authored-by: Thomas Klausner <d...@plix.at> Co-authored-by: Mark Hofstetter <<m...@hofstetter.at>> Signed-off-by: Jan Kissig <jkis...@th-wildau.de> -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list Koha-bugs@lists.koha-community.org https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/