order service

PHOTO EMBED

Mon Oct 28 2024 08:37:20 GMT+0000 (Coordinated Universal Time)

Saved by @saurabhp643

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);
    }
  }
}
content_copyCOPY