Evergreen ILS Website

IRC log for #evergreen, 2026-05-13

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat

All times shown according to the server's local time.

Time Nick Message
06:54 collum joined #evergreen
08:39 cbrown joined #evergreen
09:20 mmorgan joined #evergreen
09:21 Dyrcona joined #evergreen
09:32 Dyrcona gmcharlt: Anything in particular that you'd like assistance with for the release today?
10:23 collum joined #evergreen
10:37 mmorgan1 joined #evergreen
10:53 Christineb joined #evergreen
11:17 csharp_ joined #evergreen
12:00 jihpringle joined #evergreen
12:08 goood Dyrcona: "osrfStringArrayAdd size is too large" means nothing. we should just remove that log message.
12:20 goood Dyrcona: and, re api setup, I'm liking the "_by_blah" suffix less and less. see: /patrons endpoint which provides a generic search via GET, and the specializations of /patrons/by_{barcode|usernam​e}/:{barcode|username}[/id] etc. ... those specializations could use the find_user controller method by supplying static values for field and comparison, but there are existing opensrf methods, so I didn't do that
12:20 * goood goes to look at the branch before blabbing futher
12:20 goood further, even
12:25 Dyrcona goood: I'll push a cleaned up branch that I made this morning. it drops some commits that are replaced in the WIP branch.
12:26 goood (note: see /patrons/verify for how to specify a static value (an empty string, in that endpoint's method_params definition, but anything in "s will work))
12:26 goood +1
12:26 goood Dyrcona++ # loving the api love
12:26 Dyrcona goood: See this branch for a cleaner look: user/dyrcona/lp2150148_rebase1
12:27 Dyrcona I'm OK with renaming any of the paths, etc. I plan to put this where the vendor can look at it next week, so if we can decided on paths this week, that would be great!
12:27 goood ah ha! first commit makin' me happy already :)
12:27 Dyrcona :)
12:28 goood well, let 'em know the API version is still 0.0, and subject to change until we nail it down
12:29 goood for the marc one, any objection to doing what the by-id method does and just checking the accept header for the desired format?
12:31 goood OpenILS::OpenAPI::Controller::bib::fetch_one_bib() is the code that checks the resovled requested content format
12:32 Dyrcona goood: I'll take a look. I'm also not happy that it returns a string with escaped double quotes. I mean to look at that. Might as well do it right now.
12:35 goood yeah, see how /bibs/:id is set up, for sure. it's the accept header that tells openapi how to render the final output, which is why we should use that to decide which to ship
12:36 goood which in turn means we need to specifically support different accept-driven formats. otherwise you need to say "response format for this endpoint is DEFINITELY xml" and then it won't escape the content
12:36 goood point being, let the infrastructure do the magic for you :)
12:39 Dyrcona OK.
12:40 Dyrcona I figured since we're definitely asking for XML, might as well say it's XML.
12:40 goood (GET /bibs/:id has 3 response types: default json with fm_type bre; application/xml for when they ask for that (no escaping, just the marc field from the bre); application/octet-stream for asking for binary marc)
12:41 goood no, they should ask for xml by setting the accept header to application/xml. that's a big part of openapi (and REST generally)
12:41 goood otherwise our /native/ "bib" format is the bre json blob
12:43 Dyrcona OK, but the API I created is only returning MARCXML, it's just calling open-ils.supercat..isbn.marcxml.retrieve. Can I still do that and have a different response type?
12:45 goood ah, I see... :( ... no, you'd need a wrapper. but if we're def just doing direct xml-only returns, the response type should be application/xml
12:48 goood (but, for a general purpose "return a bib" method, I think a controller helper/wrapper like find_one_bib would be a good thing. it can still use the supercat method(s) ... in fact, there may be methods that do the binary and bre versions already
12:48 goood sec... checking
12:53 goood well, there's a method for the bre (open-ils.supercat.isbn.object.retrieve) which could be used for all three formats, a la find_one_bib(), via a wrapper
12:54 goood fwiw, I find https://github.com/EquinoxOpenLi​braryInitiative/evg-api-explorer really handy when looking for methods to map
12:54 Dyrcona OK. would you rather I implement that? I implemented the retrieve MARCXML by ISBN because that's what the vendor asked about.
12:54 Dyrcona yeah, I saw the explorer but haven't set it up.
12:56 Dyrcona Also, those supercat methods are misnamed. They work for any standard 02x identifier filed, not just ISBN.
12:57 goood IMO, since it's basically a copy/paste of find_one_bib, but calling the supercat method instead cstore's retrieve, I think the effort is minimal for the benefit, so I would be in favor of that
12:57 Dyrcona OK. I'll do that. Should I delete the /search/ method?
12:58 goood and sure, you could pass an issn or upc, but I think that's not a bad thing per se
12:58 Dyrcona Also, I figured out my quoted string issue. I forgot to set the Accept header in my test script.
13:00 Bmagic I'm helping a library print spine labels and there's a strange thing going on here. When a call number meets some sort of a pattern, Evergreen will introduce a new line in the middle of a value. Here's the example: "PZ 7 .C76984 Mag 2014 YA"  Evergreen puts a new line between the "M" and the "a" in Mag
13:01 Bmagic But if I change the call number, and replace Mag with M67 (any number value), Evergreen doesn't introduce the new line
13:01 goood I don't have a STRONG preference on the api path, but on balance, this is closer to a retrieve than a search, and we have a bib-retrieve, so, I'd probably put it at /bibs/by_identifier/:isxn or similar, matching the /patron/by_barcode/:b and /patrons/by_username/:u
13:02 Dyrcona goood: All right. I'll put it under /bib(s) and delete the /search version.
13:02 goood Dyrcona++
13:03 Bmagic Dyrcona++
13:03 Dyrcona After this I can hopefully get started on multiclass search. :)
13:03 Dyrcona Bmagic: Do you think there might have been an invisible break character in the label?
13:03 Bmagic I thought that too, nope
13:04 Bmagic I bet you can recreate the issue on your system if you put that call number on an item and try to print the spine label
13:04 Dyrcona Huh. That is weird.
13:05 Dyrcona Maybe. Don't have time right now.
13:05 goood heh... DEF going to need a wrapper for that :) ... and, we may want to think about the return value shape for that. like, return a list of unapi URIs for easy use in supercat? do we really need to return blobs of MARC? (maybe separate endpoints for those two, with one wrapper underneith, and a static param to say "return this type of crap" in the method_params definition
13:06 goood (and by supercat, I just mean the unapi location that takes a uri)
13:06 goood anyway, I must go eat something now
13:07 Dyrcona goood++
13:13 Dyrcona Ah, the API explorer /is/ cool.
13:45 jeff Bmagic: unable to reproduce here with browser printing on demo. barcode G880400001542 seemed to not break when printing spine labels using your specified call number label. also unable to reproduce on 3.15. can you reproduce on demo?
13:45 Bmagic I was able to figure out a clue: call number classification is "LoC" - causes the issue
13:47 Bmagic when the call number is switched to "Generic" the problem goes away
13:47 Bmagic so maybe it's a feature
13:59 Dyrcona Be back in half an hour.
14:42 Dyrcona joined #evergreen
14:49 goood Bmagic: it is a feature. it's implementing line breaks for cutter numbers, which are part of LC call numbers.
14:52 jihpringle joined #evergreen
15:02 Bmagic goood++ # thanks for confirming my suspicions
15:13 Dyrcona goood: I'm working on the new implementation for retrieval by ISBN, and I'm not sure what to do when nothing is found. Just returning undef leads to a different error: {"errors":[{"message":"Expected application\/json - got application\/xml.","path":"\/h​eader\/Accept"}],"status":400}
15:14 Dyrcona Oh. I think I see what I should do further down.
15:14 goood you may want to set the status and return an appropriate-format error?
15:15 goood like a 404, probably ... wasn't found :)
15:15 goood yeah, $c->res->code(404)
15:17 goood and now I see I should be doing that after trying to fetch the bre in fetch_one_bib()
15:17 Dyrcona probably, yeah.
15:17 Dyrcona :)
15:26 Dyrcona Oh. ISO 8869-1 in a MARC record.
15:26 Dyrcona Grr..... 8859-1...
15:26 Dyrcona I just happen to pick that record to play with. :)
15:29 Dyrcona Since this seems to work. I'll make a rebase2 branch and push it to working.
15:38 goood I love it when a plan comes together
15:38 Dyrcona :0
15:39 Dyrcona user/dyrcona/lp2150148_rebase2 clean version of what I've got so far.
15:44 goood I was just looking at it. very sweet
15:44 goood Dyrcona++
16:40 Dyrcona I wonder if we want /search/query or bibs/query? We might not need a /search schema after all.
16:41 Dyrcona I guess /bibs/query makes it seem like we're getting bibs back and /search could return something else, so I guess we do want /search/query.
16:59 csharp_ @quote get 258
16:59 pinesol csharp_: Quote #258: "<michael_scott> Don’t ever, for any reason, do any upgrading, for any reason, ever, no matter what. No matter… where. Or who, or who you are with, or, or where you are going, or… or where you’ve been… ever. For any reason, whatsoever." (added by csharp at 04:59 PM, May 13, 2026)
16:59 mmorgan1 left #evergreen
17:44 gmcharlt https://evergreen-ils.org/e​vergreen-3-17-0-available/
19:58 jihpringle joined #evergreen
22:02 csharp_ gmcharlt++
23:23 JBoyer joined #evergreen

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat