from odoo import http from odoo.http import request import json class LibraryAPI(http.Controller): @http.route('/library/books', type='http', auth='none', methods=['GET']) def get_books(self, **kwargs): token = kwargs.get('token') valid_token = 'token_123' if not token or token != valid_token: return { 'error': 'Unauthorized', "message": "Invalid API token" }, 401 books = request.env['library.book'].sudo().search([]) book_list = [] for book in books: book_list.append({ 'id': book.id, 'name': book.name, 'author': book.author, 'published_date': str(book.published_date) if book.published_date else None, 'isbn': book.isbn, 'price': book.price, 'state': book.state, }) return json.dumps({'books': book_list}, ensure_ascii=False)