@receeco/pos-agent
Version:
Receeco POS Integration Middleware Agent
74 lines • 2.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReceiptService = void 0;
const axios_1 = __importDefault(require("axios"));
const logger_1 = require("../utils/logger");
const logger = (0, logger_1.createLogger)();
class ReceiptService {
constructor() {
this.apiUrl = process.env.RECEECO_API_URL || "https://receeco.com/api";
this.apiKey = process.env.RECEECO_API_KEY || "";
}
async createReceipt(payload) {
try {
if (process.env.NODE_ENV === "development") {
logger.info("Creating receipt in backend:", { token: payload.token });
}
const response = await axios_1.default.post(`${this.apiUrl}/trpc/createReceiptFromPOS`, payload, {
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${this.apiKey}`,
},
timeout: 10000,
});
if (response.data?.result?.data) {
return response.data.result.data.id || payload.token;
}
return payload.token;
}
catch (error) {
logger.error("Failed to create receipt in backend:", error);
throw new Error("Backend receipt creation failed");
}
}
async getReceiptStatus(receiptId) {
try {
const response = await axios_1.default.get(`${this.apiUrl}/trpc/getReceipt?input=${encodeURIComponent(JSON.stringify({ token: receiptId }))}`, {
headers: {
Authorization: `Bearer ${this.apiKey}`,
},
timeout: 5000,
});
return response.data?.result?.data || null;
}
catch (error) {
logger.error("Failed to get receipt status:", error);
throw new Error("Receipt status check failed");
}
}
async updateReceiptStatus(receiptId, status) {
try {
const response = await axios_1.default.post(`${this.apiUrl}/trpc/updateReceiptStatus`, {
receiptId,
status,
timestamp: new Date().toISOString(),
}, {
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${this.apiKey}`,
},
timeout: 5000,
});
return response.status === 200;
}
catch (error) {
logger.error("Failed to update receipt status:", error);
return false;
}
}
}
exports.ReceiptService = ReceiptService;
//# sourceMappingURL=receipt-service.js.map