Spaces:
Runtime error
Runtime error
Bansari Akhani
commited on
Commit
·
222dbfc
1
Parent(s):
a0126d8
#7629 -propertywaae api set up, #7635 - fetch glaccounts, #7636 - fetch vendors
Browse files- .env.example +8 -0
- package.json +1 -0
- src/app.ts +5 -0
- src/controllers/propertyware/glAccounts.controller.ts +20 -0
- src/controllers/propertyware/vendors.controller.ts +20 -0
- src/routes/index.ts +10 -0
- src/shared/services/api.service.ts +21 -0
- src/shared/services/propertyware.service.ts +10 -0
- yarn.lock +64 -1
.env.example
CHANGED
@@ -5,3 +5,11 @@ DB_NAME=
|
|
5 |
DB_HOST=
|
6 |
DB_PORT=
|
7 |
DB_DIALECT=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
DB_HOST=
|
6 |
DB_PORT=
|
7 |
DB_DIALECT=
|
8 |
+
|
9 |
+
|
10 |
+
AI_SERVICE_URL=
|
11 |
+
PW_API_URL=
|
12 |
+
|
13 |
+
PW_CLIENTID=
|
14 |
+
PW_CLIENTSECRET=
|
15 |
+
PW_ORG_ID=
|
package.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
"packageManager": "yarn@4.2.2",
|
5 |
"dependencies": {
|
6 |
"@types/sequelize": "^4.28.20",
|
|
|
7 |
"babel-register": "^6.26.0",
|
8 |
"dotenv": "^16.4.5",
|
9 |
"express": "^4.19.2",
|
|
|
4 |
"packageManager": "yarn@4.2.2",
|
5 |
"dependencies": {
|
6 |
"@types/sequelize": "^4.28.20",
|
7 |
+
"axios": "^1.7.2",
|
8 |
"babel-register": "^6.26.0",
|
9 |
"dotenv": "^16.4.5",
|
10 |
"express": "^4.19.2",
|
src/app.ts
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
import express from 'express';
|
2 |
|
|
|
|
|
3 |
const app = express();
|
4 |
const port = 3000;
|
5 |
|
@@ -7,6 +9,9 @@ app.get('/', (req, res) => {
|
|
7 |
res.send('Service is healthy!');
|
8 |
});
|
9 |
|
|
|
|
|
|
|
10 |
try {
|
11 |
app.listen(port, () => {
|
12 |
console.log(`Server running on http://localhost:${port}`)
|
|
|
1 |
import express from 'express';
|
2 |
|
3 |
+
import router from './routes';
|
4 |
+
|
5 |
const app = express();
|
6 |
const port = 3000;
|
7 |
|
|
|
9 |
res.send('Service is healthy!');
|
10 |
});
|
11 |
|
12 |
+
|
13 |
+
app.use("/api/", router);
|
14 |
+
|
15 |
try {
|
16 |
app.listen(port, () => {
|
17 |
console.log(`Server running on http://localhost:${port}`)
|
src/controllers/propertyware/glAccounts.controller.ts
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { Request, Response } from 'express';
|
2 |
+
|
3 |
+
import { fetchGLAccounts } from '../../shared/services/propertyware.service';
|
4 |
+
|
5 |
+
export const fetchGLAccountsData = async (req: Request, res: Response) => {
|
6 |
+
try {
|
7 |
+
|
8 |
+
const glAccounts = await fetchGLAccounts();
|
9 |
+
|
10 |
+
const glAccountsResponseData = glAccounts.map((account: { id: any; name: any; }) => ({
|
11 |
+
id: account.id,
|
12 |
+
name: account.name,
|
13 |
+
}));
|
14 |
+
|
15 |
+
res.json(glAccountsResponseData);
|
16 |
+
} catch (error) {
|
17 |
+
console.error('Error fetching GL accounts:', error);
|
18 |
+
res.status(500).json({ error: 'Error fetching GL accounts' });
|
19 |
+
}
|
20 |
+
};
|
src/controllers/propertyware/vendors.controller.ts
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { Request, Response } from 'express';
|
2 |
+
|
3 |
+
import { fetchVendors } from '../../shared/services/propertyware.service';
|
4 |
+
|
5 |
+
export const fetchVendorsData = async (req: Request, res: Response) => {
|
6 |
+
try {
|
7 |
+
|
8 |
+
const vendors = await fetchVendors();
|
9 |
+
|
10 |
+
const VendorsResponseData = vendors.map((vendor: { id: any; name: any; }) => ({
|
11 |
+
id: vendor.id,
|
12 |
+
name: vendor.name,
|
13 |
+
}));
|
14 |
+
|
15 |
+
res.json(VendorsResponseData);
|
16 |
+
} catch (error) {
|
17 |
+
console.error('Error fetching Vendors:', error);
|
18 |
+
res.status(500).json({ error: 'Error fetching Vendors' });
|
19 |
+
}
|
20 |
+
};
|
src/routes/index.ts
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import express from "express";
|
2 |
+
import { fetchVendorsData } from "../controllers/propertyware/vendors.controller";
|
3 |
+
import { fetchGLAccountsData } from "../controllers/propertyware/glAccounts.controller";
|
4 |
+
|
5 |
+
const pwRouter = express.Router();
|
6 |
+
|
7 |
+
pwRouter.get("/pw/glAccounts", fetchGLAccountsData);
|
8 |
+
pwRouter.get("/pw/vendors", fetchVendorsData);
|
9 |
+
|
10 |
+
export default pwRouter;
|
src/shared/services/api.service.ts
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import axios from 'axios';
|
2 |
+
import dotenv from "dotenv";
|
3 |
+
|
4 |
+
dotenv.config();
|
5 |
+
|
6 |
+
export const apiClientPW = axios.create({
|
7 |
+
baseURL: process.env.PW_API_URL,
|
8 |
+
headers: {
|
9 |
+
'x-propertyware-client-id': process.env.PW_CLIENTID,
|
10 |
+
'x-propertyware-client-secret': process.env.PW_CLIENTSECRET,
|
11 |
+
'x-propertyware-system-id': process.env.PW_ORG_ID,
|
12 |
+
},
|
13 |
+
});
|
14 |
+
|
15 |
+
export const apiClientAiService = axios.create({
|
16 |
+
baseURL: process.env.AI_API_URL
|
17 |
+
});
|
18 |
+
|
19 |
+
|
20 |
+
|
21 |
+
|
src/shared/services/propertyware.service.ts
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { apiClientPW } from "./api.service";
|
2 |
+
|
3 |
+
export const fetchGLAccounts = async (params = []) => {
|
4 |
+
const response = await apiClientPW.get(`/accounting/glaccounts`, { params });
|
5 |
+
return response.data;
|
6 |
+
};
|
7 |
+
export const fetchVendors = async (params = []) => {
|
8 |
+
const response = await apiClientPW.get(`/vendors`, { params });
|
9 |
+
return response.data;
|
10 |
+
};
|
yarn.lock
CHANGED
@@ -667,6 +667,13 @@ __metadata:
|
|
667 |
languageName: node
|
668 |
linkType: hard
|
669 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
670 |
"at-least-node@npm:^1.0.0":
|
671 |
version: 1.0.0
|
672 |
resolution: "at-least-node@npm:1.0.0"
|
@@ -674,6 +681,17 @@ __metadata:
|
|
674 |
languageName: node
|
675 |
linkType: hard
|
676 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
677 |
"babel-code-frame@npm:^6.26.0":
|
678 |
version: 6.26.0
|
679 |
resolution: "babel-code-frame@npm:6.26.0"
|
@@ -1035,6 +1053,15 @@ __metadata:
|
|
1035 |
languageName: node
|
1036 |
linkType: hard
|
1037 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1038 |
"commander@npm:^10.0.0":
|
1039 |
version: 10.0.1
|
1040 |
resolution: "commander@npm:10.0.1"
|
@@ -1170,6 +1197,13 @@ __metadata:
|
|
1170 |
languageName: node
|
1171 |
linkType: hard
|
1172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1173 |
"denque@npm:^2.1.0":
|
1174 |
version: 2.1.0
|
1175 |
resolution: "denque@npm:2.1.0"
|
@@ -1677,6 +1711,7 @@ __metadata:
|
|
1677 |
"@types/sequelize": "npm:^4.28.20"
|
1678 |
"@typescript-eslint/eslint-plugin": "npm:^7.16.0"
|
1679 |
"@typescript-eslint/parser": "npm:^7.16.0"
|
|
|
1680 |
babel-register: "npm:^6.26.0"
|
1681 |
dotenv: "npm:^16.4.5"
|
1682 |
eslint: "npm:^9.6.0"
|
@@ -1754,6 +1789,16 @@ __metadata:
|
|
1754 |
languageName: node
|
1755 |
linkType: hard
|
1756 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1757 |
"foreground-child@npm:^3.1.0":
|
1758 |
version: 3.2.1
|
1759 |
resolution: "foreground-child@npm:3.2.1"
|
@@ -1764,6 +1809,17 @@ __metadata:
|
|
1764 |
languageName: node
|
1765 |
linkType: hard
|
1766 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1767 |
"forwarded@npm:0.2.0":
|
1768 |
version: 0.2.0
|
1769 |
resolution: "forwarded@npm:0.2.0"
|
@@ -2599,7 +2655,7 @@ __metadata:
|
|
2599 |
languageName: node
|
2600 |
linkType: hard
|
2601 |
|
2602 |
-
"mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
|
2603 |
version: 2.1.35
|
2604 |
resolution: "mime-types@npm:2.1.35"
|
2605 |
dependencies:
|
@@ -3138,6 +3194,13 @@ __metadata:
|
|
3138 |
languageName: node
|
3139 |
linkType: hard
|
3140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3141 |
"pstree.remy@npm:^1.1.8":
|
3142 |
version: 1.1.8
|
3143 |
resolution: "pstree.remy@npm:1.1.8"
|
|
|
667 |
languageName: node
|
668 |
linkType: hard
|
669 |
|
670 |
+
"asynckit@npm:^0.4.0":
|
671 |
+
version: 0.4.0
|
672 |
+
resolution: "asynckit@npm:0.4.0"
|
673 |
+
checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
|
674 |
+
languageName: node
|
675 |
+
linkType: hard
|
676 |
+
|
677 |
"at-least-node@npm:^1.0.0":
|
678 |
version: 1.0.0
|
679 |
resolution: "at-least-node@npm:1.0.0"
|
|
|
681 |
languageName: node
|
682 |
linkType: hard
|
683 |
|
684 |
+
"axios@npm:^1.7.2":
|
685 |
+
version: 1.7.2
|
686 |
+
resolution: "axios@npm:1.7.2"
|
687 |
+
dependencies:
|
688 |
+
follow-redirects: "npm:^1.15.6"
|
689 |
+
form-data: "npm:^4.0.0"
|
690 |
+
proxy-from-env: "npm:^1.1.0"
|
691 |
+
checksum: 10c0/cbd47ce380fe045313364e740bb03b936420b8b5558c7ea36a4563db1258c658f05e40feb5ddd41f6633fdd96d37ac2a76f884dad599c5b0224b4c451b3fa7ae
|
692 |
+
languageName: node
|
693 |
+
linkType: hard
|
694 |
+
|
695 |
"babel-code-frame@npm:^6.26.0":
|
696 |
version: 6.26.0
|
697 |
resolution: "babel-code-frame@npm:6.26.0"
|
|
|
1053 |
languageName: node
|
1054 |
linkType: hard
|
1055 |
|
1056 |
+
"combined-stream@npm:^1.0.8":
|
1057 |
+
version: 1.0.8
|
1058 |
+
resolution: "combined-stream@npm:1.0.8"
|
1059 |
+
dependencies:
|
1060 |
+
delayed-stream: "npm:~1.0.0"
|
1061 |
+
checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
|
1062 |
+
languageName: node
|
1063 |
+
linkType: hard
|
1064 |
+
|
1065 |
"commander@npm:^10.0.0":
|
1066 |
version: 10.0.1
|
1067 |
resolution: "commander@npm:10.0.1"
|
|
|
1197 |
languageName: node
|
1198 |
linkType: hard
|
1199 |
|
1200 |
+
"delayed-stream@npm:~1.0.0":
|
1201 |
+
version: 1.0.0
|
1202 |
+
resolution: "delayed-stream@npm:1.0.0"
|
1203 |
+
checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
|
1204 |
+
languageName: node
|
1205 |
+
linkType: hard
|
1206 |
+
|
1207 |
"denque@npm:^2.1.0":
|
1208 |
version: 2.1.0
|
1209 |
resolution: "denque@npm:2.1.0"
|
|
|
1711 |
"@types/sequelize": "npm:^4.28.20"
|
1712 |
"@typescript-eslint/eslint-plugin": "npm:^7.16.0"
|
1713 |
"@typescript-eslint/parser": "npm:^7.16.0"
|
1714 |
+
axios: "npm:^1.7.2"
|
1715 |
babel-register: "npm:^6.26.0"
|
1716 |
dotenv: "npm:^16.4.5"
|
1717 |
eslint: "npm:^9.6.0"
|
|
|
1789 |
languageName: node
|
1790 |
linkType: hard
|
1791 |
|
1792 |
+
"follow-redirects@npm:^1.15.6":
|
1793 |
+
version: 1.15.6
|
1794 |
+
resolution: "follow-redirects@npm:1.15.6"
|
1795 |
+
peerDependenciesMeta:
|
1796 |
+
debug:
|
1797 |
+
optional: true
|
1798 |
+
checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071
|
1799 |
+
languageName: node
|
1800 |
+
linkType: hard
|
1801 |
+
|
1802 |
"foreground-child@npm:^3.1.0":
|
1803 |
version: 3.2.1
|
1804 |
resolution: "foreground-child@npm:3.2.1"
|
|
|
1809 |
languageName: node
|
1810 |
linkType: hard
|
1811 |
|
1812 |
+
"form-data@npm:^4.0.0":
|
1813 |
+
version: 4.0.0
|
1814 |
+
resolution: "form-data@npm:4.0.0"
|
1815 |
+
dependencies:
|
1816 |
+
asynckit: "npm:^0.4.0"
|
1817 |
+
combined-stream: "npm:^1.0.8"
|
1818 |
+
mime-types: "npm:^2.1.12"
|
1819 |
+
checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e
|
1820 |
+
languageName: node
|
1821 |
+
linkType: hard
|
1822 |
+
|
1823 |
"forwarded@npm:0.2.0":
|
1824 |
version: 0.2.0
|
1825 |
resolution: "forwarded@npm:0.2.0"
|
|
|
2655 |
languageName: node
|
2656 |
linkType: hard
|
2657 |
|
2658 |
+
"mime-types@npm:^2.1.12, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
|
2659 |
version: 2.1.35
|
2660 |
resolution: "mime-types@npm:2.1.35"
|
2661 |
dependencies:
|
|
|
3194 |
languageName: node
|
3195 |
linkType: hard
|
3196 |
|
3197 |
+
"proxy-from-env@npm:^1.1.0":
|
3198 |
+
version: 1.1.0
|
3199 |
+
resolution: "proxy-from-env@npm:1.1.0"
|
3200 |
+
checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b
|
3201 |
+
languageName: node
|
3202 |
+
linkType: hard
|
3203 |
+
|
3204 |
"pstree.remy@npm:^1.1.8":
|
3205 |
version: 1.1.8
|
3206 |
resolution: "pstree.remy@npm:1.1.8"
|