public List<BookDto> getAllBooks() {
        List<BookDto> books = Collections.emptyList();
        try {
            AuditDto audit = null;
            Call<List<BookDto>> callBookResponse = libraryClient.getAllBooks("all");
            Response<List<BookDto>> allBooksResponse = callBookResponse.execute();
            if (allBooksResponse.isSuccessful()) {
                books = allBooksResponse.body();
                log.info("Get All Books : {}", books);
                audit = auditMapper.populateAuditLogForGet(books);
            } else {
                log.error("Error calling library client: {}", allBooksResponse.errorBody());
                if (Objects.nonNull(allBooksResponse.errorBody())) {
                    audit = auditMapper.populateAuditLogForException(
                            null, HttpMethod.GET, allBooksResponse.errorBody().string());
                }

            }

            if (Objects.nonNull(audit)) {
                AuditLog savedObj = auditRepository.save(libraryMapper.auditDtoToAuditLog(audit));
                log.info("Saved into audit successfully: {}", savedObj);
            }
            return books;
        } catch (Exception ex) {
            log.error("Error handling retrofit call for getAllBooks", ex);
            return books;
        }

    }
@Test
    @DisplayName("Successful getAllBooks call")
    public void getAllBooksTest() throws Exception {
        String booksResponse = getBooksResponse("/response/getAllBooks.json");
        List<BookDto> bookDtoList =
                new ObjectMapper().readValue(booksResponse, new TypeReference<>() {
                });
        when(libraryClient.getAllBooks("all")).thenReturn(Calls.response(bookDtoList));
        doReturn(null).when(auditRepository).save(any());
        List<BookDto> allBooks = libraryAuditService.getAllBooks();
        assertAll(
                () -> assertNotNull(allBooks),
                () -> assertTrue(allBooks.size()>0)
        );

    }