import { Injectable, HttpException, HttpStatus } from '@nestjs/common'; import axios from 'axios'; import { ConfigService } from '@nestjs/config'; import { CreateOrderDto } from 'src/dto/create-order.dto'; import { IOrder } from 'src/services/Interfaces/IOrder.interface'; @Injectable() export class OrderService { private readonly xanoApiUrl: string; constructor(private readonly configService: ConfigService) { this.xanoApiUrl = `${this.configService.get<string>('XANO_API_URL')}`; } async createOrUpdateOrder(createOrderDto: CreateOrderDto): Promise<IOrder> { console.log('Sending to Xano:', createOrderDto); // Log data before sending try { const response = await axios.post(this.xanoApiUrl, createOrderDto, { headers: { Authorization: `Bearer ${this.configService.get<string>('XANO_API_TOKEN')}`, }, }); console.log('Xano Response:', response.data); // Log Xano response return response.data; } catch (error) { console.error('Xano Error:', error.response?.data || error.message); throw new HttpException( `Failed to create or update order in Xano: ${error.message}`, HttpStatus.INTERNAL_SERVER_ERROR, ); } } async getAllOrders(): Promise<IOrder[]> { try { const response = await axios.get(this.xanoApiUrl); return response.data; } catch (error) { throw new HttpException('Failed to retrieve orders from Xano', HttpStatus.INTERNAL_SERVER_ERROR); } } }