import { XMLParser } from "fast-xml-parser";
import { Book } from "../../../types/Book";

export const tryDeutscheNationalBibliothekApi = async (
  isbn: string
): Promise<Pick<Book, "published" | "title"> | undefined> => {
  const parser = new XMLParser();

  const foundBooks = parser.parse(
    await (
      await fetch(
        "https://services.dnb.de/sru/dnb?version=1.1&operation=searchRetrieve&query=" +
          isbn
      )
    ).text()
  );
  const foundBook =
    foundBooks.searchRetrieveResponse?.records?.record?.recordData?.[
      "rdf:RDF"
    ]?.["rdf:Description"];

  if (!!foundBook) {
    return {
      published: foundBook["dcterms:issued"],
      title: foundBook["dc:title"],
    };
  }
  return undefined;
};