This commit is contained in:
2024-08-19 20:22:59 +05:00
parent f05047910b
commit b67d789e88
19 changed files with 628 additions and 58 deletions
+3 -6
View File
@@ -8,10 +8,8 @@ import connectDB from "./config/db.js";
import morgan from "morgan";
import apartmentRoute from "./routes/apartment.js";
import apartmentsRoute from "./routes/apartments.js";
import updateAccessToken from "./routes/zohoAccessToken.js";
import unitsRoute from "./routes/unitsRoute.js";
import updateApartments2Route from "./routes/updateApartments2Route.js";
// import updateApartmentsRoute from "./routes/updateApartmentsRoute.js";
import testRoute from "./routes/testRoute.js";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
@@ -33,10 +31,9 @@ app.use(morgan("combined", { stream: accessLogStream }));
app.use("/apartments", apartmentsRoute);
app.use("/apartment", apartmentRoute);
app.use("/updateAccessToken", updateAccessToken);
// app.use("/updateAccessToken", updateAccessToken);
app.use("/units", unitsRoute);
// app.use("/update-apartments", updateApartmentsRoute);
// app.use("/update-apartments-2", updateApartments2Route);
app.use("/test", testRoute);
app.listen(port, () => {
console.log(`Server is listening on port ${port}`);
+65
View File
@@ -0,0 +1,65 @@
import { Router } from "express";
import got from "got";
import getAccessToken from "../utils/getAccessToken.js";
const router = Router();
async function getData(accessToken: string, page: number) {
try {
const result: any = await got
.get(
`https://www.zohoapis.com/crm/v7/Products?fields=Product_Name,Project_Name,Property_Status,Purchse_Price,Unit_Type1,Floor,Unit_No,Unit_View,Total_Area_Sqft&page=${page}`,
{
headers: {
Authorization: `Zoho-oauthtoken ${accessToken}`,
},
}
)
.json();
return result;
} catch (error) {
return (error as Error).message;
}
}
router.get("/", async (req, res) => {
let accessToken;
try {
const result = await getAccessToken();
if (!("accessToken" in result)) {
return res.json(result.error);
}
accessToken = result.accessToken;
} catch (error) {
return res.json({ error: (error as Error).message });
}
console.log("accessToken", accessToken);
let page = 1;
const data: any[] = [];
if (!accessToken) {
return res.json({ error: "No accessToken" });
}
const get = async () => {
const result: any = await getData(accessToken, page);
data.push(...(result.data as any[]));
page++;
if (result.info.next_page_token) {
await get();
}
};
await get();
return res.json(data);
});
export default router;
+33
View File
@@ -0,0 +1,33 @@
import got from "got";
interface IResult {
access_token: string;
scope: string;
api_domain: string;
token_type: string;
expires_in: number;
}
async function getAccessToken() {
try {
const refreshToken =
"1000.3fe84b5d46a29eda6ea809f87f9bd763.41ed80716ca3cc53c149d0c2c238456b";
const grantType = "refresh_token";
const clientId = "1000.AXAHCN0E0GKQMDP4K8LM0XJ5KQQMCL";
const clientSecret = "59f54273e498401489bbf211e63c14a7c747a26afe";
const result: IResult = await got
.post(
`https://accounts.zoho.com/oauth/v2/token?refresh_token=${refreshToken}&grant_type=${grantType}&client_id=${clientId}&client_secret=${clientSecret}`
)
.json();
console.log("result", result);
return { accessToken: result.access_token };
} catch (error) {
return { error: (error as Error).message };
}
}
export default getAccessToken;