45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { FormData } from "zulip-js/lib/helper";
|
|
import axios from "axios";
|
|
import fs from "fs";
|
|
|
|
export const uploadFileToZulip = async () => {
|
|
// try {
|
|
const ZULIP_API_URL = "https://zulip.ipsupply.com.au/api/v1";
|
|
const ZULIP_API_KEY = "0jMAmOuhfLvBqKJikv5oAkyNM4RIEoAM";
|
|
const BOT_EMAIL = "networktool-bot@zulip.ipsupply.com.au";
|
|
// const ZULIP_API_URL = "https://zulip.ipsupply.com.au/api/v1";
|
|
// const ZULIP_API_KEY = "7XGrpwzFtQyUVDQzdwL3hjdVSbLx55yt";
|
|
// const BOT_EMAIL = "joseph.le@apactech.io";
|
|
try {
|
|
|
|
|
|
const fileStream = fs.createReadStream("app/utils/screenshot.png");
|
|
const formData = new FormData();
|
|
formData.append("file", fileStream);
|
|
|
|
const response = await axios.post(
|
|
`${ZULIP_API_URL}/user_uploads`,
|
|
formData,
|
|
{
|
|
headers: {
|
|
"Content-Type": "application/octet-stream",
|
|
Authorization: `Basic ${Buffer.from(
|
|
`${BOT_EMAIL}:${ZULIP_API_KEY}`
|
|
).toString("base64")}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
if (response.status === 200) {
|
|
const uploadedFile = response.data.uri;
|
|
return uploadedFile;
|
|
} else {
|
|
console.error("Failed to upload file:", response.statusText);
|
|
return null;
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error("Error uploading file:", error.message);
|
|
}
|
|
};
|