first commit
This commit is contained in:
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=address.routes.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"address.routes.d.ts","sourceRoot":"","sources":["../../src/routes/address.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAKxB,eAAe,MAAM,CAAC"}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const customerController = __importStar(require("../controllers/customer.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updateAddress);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), customerController.deleteAddress);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=address.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"address.routes.js","sourceRoot":"","sources":["../../src/routes/address.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAE7G,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=appSetting.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"appSetting.routes.d.ts","sourceRoot":"","sources":["../../src/routes/appSetting.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAwBxB,eAAe,MAAM,CAAC"}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const appSettingController = __importStar(require("../controllers/appSetting.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Öffentliche Einstellungen (für alle authentifizierten Benutzer, inkl. Kunden)
|
||||
router.get('/public', auth_js_1.authenticate, appSettingController.getPublicSettings);
|
||||
// Alle Einstellungen (nur Admin)
|
||||
router.get('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:read'), appSettingController.getAllSettings);
|
||||
// Einzelne Einstellung aktualisieren (nur Admin)
|
||||
router.put('/:key', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:update'), appSettingController.updateSetting);
|
||||
// Mehrere Einstellungen aktualisieren (nur Admin)
|
||||
router.put('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:update'), appSettingController.updateSettings);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=appSetting.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"appSetting.routes.js","sourceRoot":"","sources":["../../src/routes/appSetting.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,8FAAgF;AAChF,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,gFAAgF;AAChF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAE5E,iCAAiC;AACjC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAEvG,iDAAiD;AACjD,MAAM,CAAC,GAAG,CACR,OAAO,EACP,sBAAY,EACZ,IAAA,2BAAiB,EAAC,iBAAiB,CAAC,EACpC,oBAAoB,CAAC,aAAa,CACnC,CAAC;AAEF,kDAAkD;AAClD,MAAM,CAAC,GAAG,CACR,GAAG,EACH,sBAAY,EACZ,IAAA,2BAAiB,EAAC,iBAAiB,CAAC,EACpC,oBAAoB,CAAC,cAAc,CACpC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=auth.routes.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.routes.d.ts","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAOxB,eAAe,MAAM,CAAC"}
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const authController = __importStar(require("../controllers/auth.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.post('/login', authController.login);
|
||||
router.post('/customer-login', authController.customerLogin); // Kundenportal-Login
|
||||
router.get('/me', auth_js_1.authenticate, authController.me);
|
||||
router.post('/register', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:create'), authController.register);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=auth.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.routes.js","sourceRoot":"","sources":["../../src/routes/auth.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,kFAAoE;AACpE,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,CAAE,qBAAqB;AACpF,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAY,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;AACnD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEnG,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=bankcard.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bankcard.routes.d.ts","sourceRoot":"","sources":["../../src/routes/bankcard.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAKxB,eAAe,MAAM,CAAC"}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const customerController = __importStar(require("../controllers/customer.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updateBankCard);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), customerController.deleteBankCard);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=bankcard.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bankcard.routes.js","sourceRoot":"","sources":["../../src/routes/bankcard.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9G,kBAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=cancellation-period.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cancellation-period.routes.d.ts","sourceRoot":"","sources":["../../src/routes/cancellation-period.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAQxB,eAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const cancellationPeriodController = __importStar(require("../controllers/cancellation-period.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.get('/', auth_js_1.authenticate, cancellationPeriodController.getCancellationPeriods);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:create'), cancellationPeriodController.createCancellationPeriod);
|
||||
router.get('/:id', auth_js_1.authenticate, cancellationPeriodController.getCancellationPeriod);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:update'), cancellationPeriodController.updateCancellationPeriod);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:delete'), cancellationPeriodController.deleteCancellationPeriod);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=cancellation-period.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cancellation-period.routes.js","sourceRoot":"","sources":["../../src/routes/cancellation-period.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,+GAAiG;AACjG,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;AACnF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,4BAA4B,CAAC,wBAAwB,CAAC,CAAC;AAC7H,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAC;AACrF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,4BAA4B,CAAC,wBAAwB,CAAC,CAAC;AAC/H,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,4BAA4B,CAAC,wBAAwB,CAAC,CAAC;AAElI,kBAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=contract-duration.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contract-duration.routes.d.ts","sourceRoot":"","sources":["../../src/routes/contract-duration.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAQxB,eAAe,MAAM,CAAC"}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const contractDurationController = __importStar(require("../controllers/contract-duration.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.get('/', auth_js_1.authenticate, contractDurationController.getContractDurations);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:create'), contractDurationController.createContractDuration);
|
||||
router.get('/:id', auth_js_1.authenticate, contractDurationController.getContractDuration);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:update'), contractDurationController.updateContractDuration);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:delete'), contractDurationController.deleteContractDuration);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=contract-duration.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contract-duration.routes.js","sourceRoot":"","sources":["../../src/routes/contract-duration.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,2GAA6F;AAC7F,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,0BAA0B,CAAC,oBAAoB,CAAC,CAAC;AAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AACzH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;AACjF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AAC3H,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AAE9H,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=contract.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contract.routes.d.ts","sourceRoot":"","sources":["../../src/routes/contract.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA2BxB,eAAe,MAAM,CAAC"}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const contractController = __importStar(require("../controllers/contract.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.get('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getContracts);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:create'), contractController.createContract);
|
||||
// Vertrags-Cockpit (muss VOR /:id stehen!)
|
||||
router.get('/cockpit', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getCockpit);
|
||||
router.get('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getContract);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractController.updateContract);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:delete'), contractController.deleteContract);
|
||||
// Follow-up contract
|
||||
router.post('/:id/follow-up', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:create'), contractController.createFollowUp);
|
||||
// Get decrypted password
|
||||
router.get('/:id/password', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getContractPassword);
|
||||
// Get decrypted SimCard PIN/PUK
|
||||
router.get('/simcard/:simCardId/credentials', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getSimCardCredentials);
|
||||
// Get decrypted Internet password
|
||||
router.get('/:id/internet-credentials', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getInternetCredentials);
|
||||
// Get decrypted SIP password
|
||||
router.get('/phonenumber/:phoneNumberId/sip-credentials', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractController.getSipCredentials);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=contract.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contract.routes.js","sourceRoot":"","sources":["../../src/routes/contract.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACpG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAEzG,2CAA2C;AAC3C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAEzG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACtG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9G,qBAAqB;AACrB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAEtH,yBAAyB;AACzB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AAEvH,gCAAgC;AAChC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAE3I,kCAAkC;AAClC,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;AAEtI,6BAA6B;AAC7B,MAAM,CAAC,GAAG,CAAC,6CAA6C,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAEnJ,kBAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=contractCategory.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contractCategory.routes.d.ts","sourceRoot":"","sources":["../../src/routes/contractCategory.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAQxB,eAAe,MAAM,CAAC"}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const contractCategoryController = __importStar(require("../controllers/contractCategory.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.get('/', auth_js_1.authenticate, contractCategoryController.getContractCategories);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:create'), contractCategoryController.createContractCategory);
|
||||
router.get('/:id', auth_js_1.authenticate, contractCategoryController.getContractCategory);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:update'), contractCategoryController.updateContractCategory);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:delete'), contractCategoryController.deleteContractCategory);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=contractCategory.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contractCategory.routes.js","sourceRoot":"","sources":["../../src/routes/contractCategory.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0GAA4F;AAC5F,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,CAAC;AAChF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AACzH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;AACjF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AAC3H,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AAE9H,kBAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=contractTask.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contractTask.routes.d.ts","sourceRoot":"","sources":["../../src/routes/contractTask.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAgIxB,eAAe,MAAM,CAAC"}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const contractTaskController = __importStar(require("../controllers/contractTask.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// ==================== ALL TASKS (vertragsübergreifend) ====================
|
||||
// Alle Aufgaben über alle Verträge (für Dashboard & Task-Liste)
|
||||
router.get('/tasks', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractTaskController.getAllTasks);
|
||||
// Task-Statistik (offene Aufgaben)
|
||||
router.get('/tasks/stats', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractTaskController.getTaskStats);
|
||||
// ==================== TASKS BY CONTRACT ====================
|
||||
// Alle Aufgaben eines Vertrags abrufen (auch für Kundenportal, aber nur sichtbare)
|
||||
router.get('/contracts/:contractId/tasks', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractTaskController.getTasks);
|
||||
// Neue Aufgabe erstellen (nur für Mitarbeiter mit contracts:update)
|
||||
router.post('/contracts/:contractId/tasks', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.createTask);
|
||||
// Support-Anfrage erstellen (für Kundenportal-Benutzer, nur contracts:read erforderlich)
|
||||
router.post('/contracts/:contractId/support-ticket', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractTaskController.createSupportTicket);
|
||||
// Aufgabe aktualisieren
|
||||
router.put('/tasks/:taskId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.updateTask);
|
||||
// Aufgabe als erledigt markieren
|
||||
router.post('/tasks/:taskId/complete', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.completeTask);
|
||||
// Aufgabe wieder öffnen
|
||||
router.post('/tasks/:taskId/reopen', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.reopenTask);
|
||||
// Aufgabe löschen
|
||||
router.delete('/tasks/:taskId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:delete'), contractTaskController.deleteTask);
|
||||
// ==================== SUBTASKS ====================
|
||||
// Neue Unteraufgabe erstellen (Mitarbeiter)
|
||||
router.post('/tasks/:taskId/subtasks', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.createSubtask);
|
||||
// Antwort auf eigenes Ticket erstellen (Kundenportal)
|
||||
router.post('/tasks/:taskId/reply', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:read'), contractTaskController.createCustomerReply);
|
||||
// Unteraufgabe als erledigt markieren
|
||||
router.post('/subtasks/:subtaskId/complete', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.completeSubtask);
|
||||
// Unteraufgabe wieder öffnen
|
||||
router.post('/subtasks/:subtaskId/reopen', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.reopenSubtask);
|
||||
// Unteraufgabe aktualisieren
|
||||
router.put('/subtasks/:subtaskId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), contractTaskController.updateSubtask);
|
||||
// Unteraufgabe löschen
|
||||
router.delete('/subtasks/:subtaskId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:delete'), contractTaskController.deleteSubtask);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=contractTask.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contractTask.routes.js","sourceRoot":"","sources":["../../src/routes/contractTask.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,kGAAoF;AACpF,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,6EAA6E;AAE7E,gEAAgE;AAChE,MAAM,CAAC,GAAG,CACR,QAAQ,EACR,sBAAY,EACZ,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EACnC,sBAAsB,CAAC,WAAW,CACnC,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,GAAG,CACR,cAAc,EACd,sBAAY,EACZ,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EACnC,sBAAsB,CAAC,YAAY,CACpC,CAAC;AAEF,8DAA8D;AAE9D,mFAAmF;AACnF,MAAM,CAAC,GAAG,CACR,8BAA8B,EAC9B,sBAAY,EACZ,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EACnC,sBAAsB,CAAC,QAAQ,CAChC,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,UAAU,CAClC,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,IAAI,CACT,uCAAuC,EACvC,sBAAY,EACZ,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EACnC,sBAAsB,CAAC,mBAAmB,CAC3C,CAAC;AAEF,wBAAwB;AACxB,MAAM,CAAC,GAAG,CACR,gBAAgB,EAChB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,UAAU,CAClC,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,YAAY,CACpC,CAAC;AAEF,wBAAwB;AACxB,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,UAAU,CAClC,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,UAAU,CAClC,CAAC;AAEF,qDAAqD;AAErD,4CAA4C;AAC5C,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,aAAa,CACrC,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EACnC,sBAAsB,CAAC,mBAAmB,CAC3C,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,eAAe,CACvC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,aAAa,CACrC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,GAAG,CACR,sBAAsB,EACtB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,aAAa,CACrC,CAAC;AAEF,uBAAuB;AACvB,MAAM,CAAC,MAAM,CACX,sBAAsB,EACtB,sBAAY,EACZ,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EACrC,sBAAsB,CAAC,aAAa,CACrC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=customer.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"customer.routes.d.ts","sourceRoot":"","sources":["../../src/routes/customer.routes.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAyCxB,eAAe,MAAM,CAAC"}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const customerController = __importStar(require("../controllers/customer.controller.js"));
|
||||
const stressfreiEmailController = __importStar(require("../controllers/stressfreiEmail.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Customers
|
||||
router.get('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:read'), customerController.getCustomers);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:create'), customerController.createCustomer);
|
||||
router.get('/:id', auth_js_1.authenticate, auth_js_1.requireCustomerAccess, customerController.getCustomer);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updateCustomer);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), customerController.deleteCustomer);
|
||||
// Addresses
|
||||
router.get('/:customerId/addresses', auth_js_1.authenticate, auth_js_1.requireCustomerAccess, customerController.getAddresses);
|
||||
router.post('/:customerId/addresses', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.createAddress);
|
||||
// Bank Cards
|
||||
router.get('/:customerId/bank-cards', auth_js_1.authenticate, auth_js_1.requireCustomerAccess, customerController.getBankCards);
|
||||
router.post('/:customerId/bank-cards', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.createBankCard);
|
||||
// Identity Documents
|
||||
router.get('/:customerId/documents', auth_js_1.authenticate, auth_js_1.requireCustomerAccess, customerController.getDocuments);
|
||||
router.post('/:customerId/documents', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.createDocument);
|
||||
// Meters
|
||||
router.get('/:customerId/meters', auth_js_1.authenticate, auth_js_1.requireCustomerAccess, customerController.getMeters);
|
||||
router.post('/:customerId/meters', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.createMeter);
|
||||
// Stressfrei-Wechseln E-Mail-Adressen
|
||||
router.get('/:customerId/stressfrei-emails', auth_js_1.authenticate, auth_js_1.requireCustomerAccess, stressfreiEmailController.getEmailsByCustomer);
|
||||
router.post('/:customerId/stressfrei-emails', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), stressfreiEmailController.createEmail);
|
||||
// Portal Settings
|
||||
router.get('/:customerId/portal', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.getPortalSettings);
|
||||
router.put('/:customerId/portal', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updatePortalSettings);
|
||||
router.post('/:customerId/portal/password', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.setPortalPassword);
|
||||
router.get('/:customerId/portal/password', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.getPortalPassword);
|
||||
// Representatives (Vertreter)
|
||||
router.get('/:customerId/representatives', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:read'), customerController.getRepresentatives);
|
||||
router.post('/:customerId/representatives', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.addRepresentative);
|
||||
router.delete('/:customerId/representatives/:representativeId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.removeRepresentative);
|
||||
router.get('/:customerId/representatives/search', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:read'), customerController.searchForRepresentative);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=customer.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"customer.routes.js","sourceRoot":"","sources":["../../src/routes/customer.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,wGAA0F;AAC1F,mDAA+F;AAE/F,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,YAAY;AACZ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACpG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AACzG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,+BAAqB,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACxF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9G,YAAY;AACZ,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,sBAAY,EAAE,+BAAqB,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC3G,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAE7H,aAAa;AACb,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAY,EAAE,+BAAqB,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC5G,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE/H,qBAAqB;AACrB,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,sBAAY,EAAE,+BAAqB,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC3G,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9H,SAAS;AACT,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,sBAAY,EAAE,+BAAqB,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrG,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAExH,sCAAsC;AACtC,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,sBAAY,EAAE,+BAAqB,EAAE,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;AACjI,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAC;AAE1I,kBAAkB;AAClB,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC7H,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAChI,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACvI,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAEtI,8BAA8B;AAC9B,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AACrI,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACvI,MAAM,CAAC,MAAM,CAAC,gDAAgD,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAC9J,MAAM,CAAC,GAAG,CAAC,qCAAqC,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AAEjJ,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=developer.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"developer.routes.d.ts","sourceRoot":"","sources":["../../src/routes/developer.routes.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA0fxB,eAAe,MAAM,CAAC"}
|
||||
+454
@@ -0,0 +1,454 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const client_1 = require("@prisma/client");
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
const prisma = new client_1.PrismaClient();
|
||||
// Setup-Endpunkt: Erstellt die developer:access Permission und fügt sie der Admin-Rolle hinzu
|
||||
// Dieser Endpunkt erfordert keine Authentifizierung, da er nur einmalig zum Setup verwendet wird
|
||||
router.post('/setup', async (req, res) => {
|
||||
try {
|
||||
// Create or get the developer:access permission
|
||||
const developerPerm = await prisma.permission.upsert({
|
||||
where: { resource_action: { resource: 'developer', action: 'access' } },
|
||||
update: {},
|
||||
create: { resource: 'developer', action: 'access' },
|
||||
});
|
||||
// Get the Admin role
|
||||
const adminRole = await prisma.role.findUnique({
|
||||
where: { name: 'Admin' },
|
||||
include: { permissions: true },
|
||||
});
|
||||
if (!adminRole) {
|
||||
res.status(404).json({ success: false, error: 'Admin-Rolle nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
// Check if Admin already has this permission
|
||||
const hasPermission = adminRole.permissions.some((rp) => rp.permissionId === developerPerm.id);
|
||||
if (!hasPermission) {
|
||||
await prisma.rolePermission.create({
|
||||
data: {
|
||||
roleId: adminRole.id,
|
||||
permissionId: developerPerm.id,
|
||||
},
|
||||
});
|
||||
res.json({ success: true, message: 'developer:access Permission wurde zur Admin-Rolle hinzugefügt. Bitte neu einloggen!' });
|
||||
}
|
||||
else {
|
||||
res.json({ success: true, message: 'Admin-Rolle hat bereits die developer:access Permission' });
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Setup error:', error);
|
||||
res.status(500).json({ success: false, error: 'Fehler beim Setup' });
|
||||
}
|
||||
});
|
||||
// Tabellen-Metadaten mit Beziehungen
|
||||
const tableMetadata = {
|
||||
User: {
|
||||
model: 'user',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt', 'password'],
|
||||
requiredFields: ['email', 'firstName', 'lastName'],
|
||||
relations: [
|
||||
{ field: 'customer', targetTable: 'Customer', type: 'one' },
|
||||
{ field: 'roles', targetTable: 'UserRole', type: 'many' },
|
||||
],
|
||||
foreignKeys: [{ field: 'customerId', targetTable: 'Customer' }],
|
||||
},
|
||||
Role: {
|
||||
model: 'role',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt'],
|
||||
requiredFields: ['name'],
|
||||
relations: [
|
||||
{ field: 'permissions', targetTable: 'RolePermission', type: 'many' },
|
||||
{ field: 'users', targetTable: 'UserRole', type: 'many' },
|
||||
],
|
||||
foreignKeys: [],
|
||||
},
|
||||
Permission: {
|
||||
model: 'permission',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['resource', 'action'],
|
||||
relations: [{ field: 'roles', targetTable: 'RolePermission', type: 'many' }],
|
||||
foreignKeys: [],
|
||||
},
|
||||
RolePermission: {
|
||||
model: 'rolePermission',
|
||||
primaryKey: 'roleId,permissionId',
|
||||
readonlyFields: [],
|
||||
requiredFields: ['roleId', 'permissionId'],
|
||||
relations: [],
|
||||
foreignKeys: [
|
||||
{ field: 'roleId', targetTable: 'Role' },
|
||||
{ field: 'permissionId', targetTable: 'Permission' },
|
||||
],
|
||||
},
|
||||
UserRole: {
|
||||
model: 'userRole',
|
||||
primaryKey: 'userId,roleId',
|
||||
readonlyFields: [],
|
||||
requiredFields: ['userId', 'roleId'],
|
||||
relations: [],
|
||||
foreignKeys: [
|
||||
{ field: 'userId', targetTable: 'User' },
|
||||
{ field: 'roleId', targetTable: 'Role' },
|
||||
],
|
||||
},
|
||||
Customer: {
|
||||
model: 'customer',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt', 'customerNumber'],
|
||||
requiredFields: ['firstName', 'lastName'],
|
||||
relations: [
|
||||
{ field: 'user', targetTable: 'User', type: 'one' },
|
||||
{ field: 'addresses', targetTable: 'Address', type: 'many' },
|
||||
{ field: 'bankCards', targetTable: 'BankCard', type: 'many' },
|
||||
{ field: 'identityDocuments', targetTable: 'IdentityDocument', type: 'many' },
|
||||
{ field: 'meters', targetTable: 'Meter', type: 'many' },
|
||||
{ field: 'contracts', targetTable: 'Contract', type: 'many' },
|
||||
],
|
||||
foreignKeys: [],
|
||||
},
|
||||
Address: {
|
||||
model: 'address',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt'],
|
||||
requiredFields: ['customerId', 'street', 'houseNumber', 'postalCode', 'city'],
|
||||
relations: [
|
||||
{ field: 'customer', targetTable: 'Customer', type: 'one' },
|
||||
{ field: 'contracts', targetTable: 'Contract', type: 'many' },
|
||||
],
|
||||
foreignKeys: [{ field: 'customerId', targetTable: 'Customer' }],
|
||||
},
|
||||
BankCard: {
|
||||
model: 'bankCard',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt'],
|
||||
requiredFields: ['customerId', 'accountHolder', 'iban'],
|
||||
relations: [
|
||||
{ field: 'customer', targetTable: 'Customer', type: 'one' },
|
||||
{ field: 'contracts', targetTable: 'Contract', type: 'many' },
|
||||
],
|
||||
foreignKeys: [{ field: 'customerId', targetTable: 'Customer' }],
|
||||
},
|
||||
IdentityDocument: {
|
||||
model: 'identityDocument',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt'],
|
||||
requiredFields: ['customerId', 'documentNumber'],
|
||||
relations: [
|
||||
{ field: 'customer', targetTable: 'Customer', type: 'one' },
|
||||
{ field: 'contracts', targetTable: 'Contract', type: 'many' },
|
||||
],
|
||||
foreignKeys: [{ field: 'customerId', targetTable: 'Customer' }],
|
||||
},
|
||||
Meter: {
|
||||
model: 'meter',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt'],
|
||||
requiredFields: ['customerId', 'meterNumber', 'type'],
|
||||
relations: [
|
||||
{ field: 'customer', targetTable: 'Customer', type: 'one' },
|
||||
{ field: 'readings', targetTable: 'MeterReading', type: 'many' },
|
||||
{ field: 'energyDetails', targetTable: 'EnergyContractDetails', type: 'many' },
|
||||
],
|
||||
foreignKeys: [{ field: 'customerId', targetTable: 'Customer' }],
|
||||
},
|
||||
MeterReading: {
|
||||
model: 'meterReading',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt'],
|
||||
requiredFields: ['meterId', 'readingDate', 'value'],
|
||||
relations: [{ field: 'meter', targetTable: 'Meter', type: 'one' }],
|
||||
foreignKeys: [{ field: 'meterId', targetTable: 'Meter' }],
|
||||
},
|
||||
SalesPlatform: {
|
||||
model: 'salesPlatform',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt'],
|
||||
requiredFields: ['name'],
|
||||
relations: [{ field: 'contracts', targetTable: 'Contract', type: 'many' }],
|
||||
foreignKeys: [],
|
||||
},
|
||||
Contract: {
|
||||
model: 'contract',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id', 'createdAt', 'updatedAt', 'contractNumber'],
|
||||
requiredFields: ['customerId', 'type'],
|
||||
relations: [
|
||||
{ field: 'customer', targetTable: 'Customer', type: 'one' },
|
||||
{ field: 'address', targetTable: 'Address', type: 'one' },
|
||||
{ field: 'bankCard', targetTable: 'BankCard', type: 'one' },
|
||||
{ field: 'identityDocument', targetTable: 'IdentityDocument', type: 'one' },
|
||||
{ field: 'salesPlatform', targetTable: 'SalesPlatform', type: 'one' },
|
||||
{ field: 'previousContract', targetTable: 'Contract', type: 'one' },
|
||||
{ field: 'followUpContract', targetTable: 'Contract', type: 'one' },
|
||||
{ field: 'energyDetails', targetTable: 'EnergyContractDetails', type: 'one' },
|
||||
{ field: 'internetDetails', targetTable: 'InternetContractDetails', type: 'one' },
|
||||
{ field: 'mobileDetails', targetTable: 'MobileContractDetails', type: 'one' },
|
||||
{ field: 'tvDetails', targetTable: 'TvContractDetails', type: 'one' },
|
||||
{ field: 'carInsuranceDetails', targetTable: 'CarInsuranceDetails', type: 'one' },
|
||||
],
|
||||
foreignKeys: [
|
||||
{ field: 'customerId', targetTable: 'Customer' },
|
||||
{ field: 'addressId', targetTable: 'Address' },
|
||||
{ field: 'bankCardId', targetTable: 'BankCard' },
|
||||
{ field: 'identityDocumentId', targetTable: 'IdentityDocument' },
|
||||
{ field: 'salesPlatformId', targetTable: 'SalesPlatform' },
|
||||
{ field: 'previousContractId', targetTable: 'Contract' },
|
||||
],
|
||||
},
|
||||
EnergyContractDetails: {
|
||||
model: 'energyContractDetails',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['contractId'],
|
||||
relations: [
|
||||
{ field: 'contract', targetTable: 'Contract', type: 'one' },
|
||||
{ field: 'meter', targetTable: 'Meter', type: 'one' },
|
||||
],
|
||||
foreignKeys: [
|
||||
{ field: 'contractId', targetTable: 'Contract' },
|
||||
{ field: 'meterId', targetTable: 'Meter' },
|
||||
],
|
||||
},
|
||||
InternetContractDetails: {
|
||||
model: 'internetContractDetails',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['contractId'],
|
||||
relations: [
|
||||
{ field: 'contract', targetTable: 'Contract', type: 'one' },
|
||||
{ field: 'phoneNumbers', targetTable: 'PhoneNumber', type: 'many' },
|
||||
],
|
||||
foreignKeys: [{ field: 'contractId', targetTable: 'Contract' }],
|
||||
},
|
||||
PhoneNumber: {
|
||||
model: 'phoneNumber',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['internetContractDetailsId', 'phoneNumber'],
|
||||
relations: [{ field: 'internetDetails', targetTable: 'InternetContractDetails', type: 'one' }],
|
||||
foreignKeys: [{ field: 'internetContractDetailsId', targetTable: 'InternetContractDetails' }],
|
||||
},
|
||||
MobileContractDetails: {
|
||||
model: 'mobileContractDetails',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['contractId'],
|
||||
relations: [{ field: 'contract', targetTable: 'Contract', type: 'one' }],
|
||||
foreignKeys: [{ field: 'contractId', targetTable: 'Contract' }],
|
||||
},
|
||||
TvContractDetails: {
|
||||
model: 'tvContractDetails',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['contractId'],
|
||||
relations: [{ field: 'contract', targetTable: 'Contract', type: 'one' }],
|
||||
foreignKeys: [{ field: 'contractId', targetTable: 'Contract' }],
|
||||
},
|
||||
CarInsuranceDetails: {
|
||||
model: 'carInsuranceDetails',
|
||||
primaryKey: 'id',
|
||||
readonlyFields: ['id'],
|
||||
requiredFields: ['contractId'],
|
||||
relations: [{ field: 'contract', targetTable: 'Contract', type: 'one' }],
|
||||
foreignKeys: [{ field: 'contractId', targetTable: 'Contract' }],
|
||||
},
|
||||
};
|
||||
// Schema-Informationen abrufen
|
||||
router.get('/schema', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('developer:access'), async (req, res) => {
|
||||
try {
|
||||
const tables = Object.entries(tableMetadata).map(([name, meta]) => ({
|
||||
name,
|
||||
...meta,
|
||||
}));
|
||||
res.json({ success: true, data: tables });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Schema error:', error);
|
||||
res.status(500).json({ success: false, error: 'Fehler beim Laden des Schemas' });
|
||||
}
|
||||
});
|
||||
// Tabellen-Daten abrufen
|
||||
router.get('/table/:tableName', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('developer:access'), async (req, res) => {
|
||||
try {
|
||||
const { tableName } = req.params;
|
||||
const { page = '1', limit = '50' } = req.query;
|
||||
const meta = tableMetadata[tableName];
|
||||
if (!meta) {
|
||||
res.status(404).json({ success: false, error: 'Tabelle nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
const skip = (parseInt(page) - 1) * parseInt(limit);
|
||||
const take = parseInt(limit);
|
||||
const model = prisma[meta.model];
|
||||
const [data, total] = await Promise.all([
|
||||
model.findMany({
|
||||
skip,
|
||||
take,
|
||||
orderBy: meta.primaryKey.includes(',') ? undefined : { [meta.primaryKey.split(',')[0]]: 'desc' },
|
||||
}),
|
||||
model.count(),
|
||||
]);
|
||||
res.json({
|
||||
success: true,
|
||||
data,
|
||||
meta: {
|
||||
...meta,
|
||||
tableName,
|
||||
},
|
||||
pagination: {
|
||||
page: parseInt(page),
|
||||
limit: parseInt(limit),
|
||||
total,
|
||||
totalPages: Math.ceil(total / parseInt(limit)),
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Table data error:', error);
|
||||
res.status(500).json({ success: false, error: 'Fehler beim Laden der Daten' });
|
||||
}
|
||||
});
|
||||
// Einzelne Zeile aktualisieren
|
||||
router.put('/table/:tableName/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('developer:access'), async (req, res) => {
|
||||
try {
|
||||
const { tableName, id } = req.params;
|
||||
const updates = req.body;
|
||||
const meta = tableMetadata[tableName];
|
||||
if (!meta) {
|
||||
res.status(404).json({ success: false, error: 'Tabelle nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
// Readonly-Felder aus Updates entfernen
|
||||
const filteredUpdates = {};
|
||||
for (const [key, value] of Object.entries(updates)) {
|
||||
if (!meta.readonlyFields.includes(key)) {
|
||||
filteredUpdates[key] = value;
|
||||
}
|
||||
}
|
||||
// Prüfen ob required-Felder nicht auf null/leer gesetzt werden
|
||||
for (const field of meta.requiredFields) {
|
||||
if (field in filteredUpdates && (filteredUpdates[field] === null || filteredUpdates[field] === '')) {
|
||||
res.status(400).json({ success: false, error: `Feld '${field}' ist erforderlich` });
|
||||
return;
|
||||
}
|
||||
}
|
||||
const model = prisma[meta.model];
|
||||
// Composite Primary Key Handling
|
||||
let where;
|
||||
if (meta.primaryKey.includes(',')) {
|
||||
const keys = meta.primaryKey.split(',');
|
||||
const idParts = id.split('-');
|
||||
where = {};
|
||||
keys.forEach((key, idx) => {
|
||||
where[key] = parseInt(idParts[idx]);
|
||||
});
|
||||
}
|
||||
else {
|
||||
where = { [meta.primaryKey]: parseInt(id) };
|
||||
}
|
||||
const updated = await model.update({
|
||||
where,
|
||||
data: filteredUpdates,
|
||||
});
|
||||
res.json({ success: true, data: updated });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Update error:', error);
|
||||
if (error.code === 'P2003') {
|
||||
res.status(400).json({ success: false, error: 'Fremdschlüssel-Verletzung: Referenzierter Datensatz existiert nicht' });
|
||||
}
|
||||
else if (error.code === 'P2002') {
|
||||
res.status(400).json({ success: false, error: 'Unique-Constraint-Verletzung: Wert existiert bereits' });
|
||||
}
|
||||
else {
|
||||
res.status(500).json({ success: false, error: 'Fehler beim Aktualisieren' });
|
||||
}
|
||||
}
|
||||
});
|
||||
// Zeile löschen (nur wenn keine abhängigen Daten)
|
||||
router.delete('/table/:tableName/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('developer:access'), async (req, res) => {
|
||||
try {
|
||||
const { tableName, id } = req.params;
|
||||
const meta = tableMetadata[tableName];
|
||||
if (!meta) {
|
||||
res.status(404).json({ success: false, error: 'Tabelle nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
const model = prisma[meta.model];
|
||||
// Composite Primary Key Handling
|
||||
let where;
|
||||
if (meta.primaryKey.includes(',')) {
|
||||
const keys = meta.primaryKey.split(',');
|
||||
const idParts = id.split('-');
|
||||
where = {};
|
||||
keys.forEach((key, idx) => {
|
||||
where[key] = parseInt(idParts[idx]);
|
||||
});
|
||||
}
|
||||
else {
|
||||
where = { [meta.primaryKey]: parseInt(id) };
|
||||
}
|
||||
// Prüfen ob abhängige Daten existieren (nur "many"-Relations)
|
||||
const record = await model.findUnique({
|
||||
where,
|
||||
include: meta.relations
|
||||
.filter((r) => r.type === 'many')
|
||||
.reduce((acc, r) => ({ ...acc, [r.field]: { take: 1 } }), {}),
|
||||
});
|
||||
if (!record) {
|
||||
res.status(404).json({ success: false, error: 'Datensatz nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
// Prüfen auf abhängige Daten
|
||||
for (const rel of meta.relations.filter((r) => r.type === 'many')) {
|
||||
if (record[rel.field] && record[rel.field].length > 0) {
|
||||
res.status(400).json({
|
||||
success: false,
|
||||
error: `Kann nicht gelöscht werden: Es existieren abhängige Daten in '${rel.targetTable}'`,
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
await model.delete({ where });
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
if (error.code === 'P2003') {
|
||||
res.status(400).json({ success: false, error: 'Kann nicht gelöscht werden: Fremdschlüssel-Abhängigkeit' });
|
||||
}
|
||||
else {
|
||||
res.status(500).json({ success: false, error: 'Fehler beim Löschen' });
|
||||
}
|
||||
}
|
||||
});
|
||||
// Referenzierte Daten für Dropdowns abrufen
|
||||
router.get('/reference/:tableName', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('developer:access'), async (req, res) => {
|
||||
try {
|
||||
const { tableName } = req.params;
|
||||
const { search = '', limit = '50' } = req.query;
|
||||
const meta = tableMetadata[tableName];
|
||||
if (!meta) {
|
||||
res.status(404).json({ success: false, error: 'Tabelle nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
const model = prisma[meta.model];
|
||||
const data = await model.findMany({
|
||||
take: parseInt(limit),
|
||||
});
|
||||
res.json({ success: true, data });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Reference error:', error);
|
||||
res.status(500).json({ success: false, error: 'Fehler beim Laden der Referenzdaten' });
|
||||
}
|
||||
});
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=developer.routes.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=document.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"document.routes.d.ts","sourceRoot":"","sources":["../../src/routes/document.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAKxB,eAAe,MAAM,CAAC"}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const customerController = __importStar(require("../controllers/customer.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updateDocument);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), customerController.deleteDocument);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=document.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"document.routes.js","sourceRoot":"","sources":["../../src/routes/document.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9G,kBAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=emailProvider.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"emailProvider.routes.d.ts","sourceRoot":"","sources":["../../src/routes/emailProvider.routes.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAgBxB,eAAe,MAAM,CAAC"}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
// ==================== EMAIL PROVIDER ROUTES ====================
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const emailProviderController = __importStar(require("../controllers/emailProvider.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Provider Config CRUD (Admin-only)
|
||||
router.get('/configs', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:read'), emailProviderController.getProviderConfigs);
|
||||
router.get('/configs/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:read'), emailProviderController.getProviderConfig);
|
||||
router.post('/configs', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:update'), emailProviderController.createProviderConfig);
|
||||
router.put('/configs/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:update'), emailProviderController.updateProviderConfig);
|
||||
router.delete('/configs/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:update'), emailProviderController.deleteProviderConfig);
|
||||
// Email Operations
|
||||
router.post('/test-connection', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('settings:update'), emailProviderController.testConnection);
|
||||
router.get('/domain', auth_js_1.authenticate, emailProviderController.getProviderDomain);
|
||||
router.get('/check/:localPart', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:read'), emailProviderController.checkEmailExists);
|
||||
router.post('/provision', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), emailProviderController.provisionEmail);
|
||||
router.delete('/deprovision/:localPart', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), emailProviderController.deprovisionEmail);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=emailProvider.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"emailProvider.routes.js","sourceRoot":"","sources":["../../src/routes/emailProvider.routes.ts"],"names":[],"mappings":";AAAA,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElE,qCAAiC;AACjC,oGAAsF;AACtF,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,oCAAoC;AACpC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;AACrH,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;AACxH,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAC1H,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAC7H,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAEhI,mBAAmB;AACnB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;AAC5H,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAY,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;AAC/E,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;AAC7H,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC;AACvH,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;AAExI,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=meter.routes.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"meter.routes.d.ts","sourceRoot":"","sources":["../../src/routes/meter.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAWxB,eAAe,MAAM,CAAC"}
|
||||
Vendored
+48
@@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const customerController = __importStar(require("../controllers/customer.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updateMeter);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), customerController.deleteMeter);
|
||||
// Meter readings
|
||||
router.get('/:meterId/readings', auth_js_1.authenticate, customerController.getMeterReadings);
|
||||
router.post('/:meterId/readings', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.addMeterReading);
|
||||
router.put('/:meterId/readings/:readingId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), customerController.updateMeterReading);
|
||||
router.delete('/:meterId/readings/:readingId', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), customerController.deleteMeterReading);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=meter.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"meter.routes.js","sourceRoot":"","sources":["../../src/routes/meter.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,mDAA+F;AAE/F,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACxG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAE3G,iBAAiB;AACjB,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,sBAAY,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AACpF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC3H,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AACxI,MAAM,CAAC,MAAM,CAAC,+BAA+B,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAE3I,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=platform.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"platform.routes.d.ts","sourceRoot":"","sources":["../../src/routes/platform.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAQxB,eAAe,MAAM,CAAC"}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const platformController = __importStar(require("../controllers/platform.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
router.get('/', auth_js_1.authenticate, platformController.getPlatforms);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:create'), platformController.createPlatform);
|
||||
router.get('/:id', auth_js_1.authenticate, platformController.getPlatform);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:update'), platformController.updatePlatform);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('platforms:delete'), platformController.deletePlatform);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=platform.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"platform.routes.js","sourceRoot":"","sources":["../../src/routes/platform.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AACzG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACjE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9G,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=provider.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"provider.routes.d.ts","sourceRoot":"","sources":["../../src/routes/provider.routes.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAaxB,eAAe,MAAM,CAAC"}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const providerController = __importStar(require("../controllers/provider.controller.js"));
|
||||
const tariffController = __importStar(require("../controllers/tariff.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Provider routes
|
||||
router.get('/', auth_js_1.authenticate, providerController.getProviders);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('providers:create'), providerController.createProvider);
|
||||
router.get('/:id', auth_js_1.authenticate, providerController.getProvider);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('providers:update'), providerController.updateProvider);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('providers:delete'), providerController.deleteProvider);
|
||||
// Nested tariff routes
|
||||
router.get('/:providerId/tariffs', auth_js_1.authenticate, tariffController.getTariffs);
|
||||
router.post('/:providerId/tariffs', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('providers:create'), tariffController.createTariff);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=provider.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"provider.routes.js","sourceRoot":"","sources":["../../src/routes/provider.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,0FAA4E;AAC5E,sFAAwE;AACxE,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,kBAAkB;AAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AACzG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACjE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE9G,uBAAuB;AACvB,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,sBAAY,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC9E,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAExH,kBAAe,MAAM,CAAC"}
|
||||
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=stressfreiEmail.routes.d.ts.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"stressfreiEmail.routes.d.ts","sourceRoot":"","sources":["../../src/routes/stressfreiEmail.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAOxB,eAAe,MAAM,CAAC"}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const stressfreiEmailController = __importStar(require("../controllers/stressfreiEmail.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Einzelne Stressfrei-Email verwalten
|
||||
router.get('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:read'), stressfreiEmailController.getEmail);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), stressfreiEmailController.updateEmail);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:delete'), stressfreiEmailController.deleteEmail);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=stressfreiEmail.routes.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"stressfreiEmail.routes.js","sourceRoot":"","sources":["../../src/routes/stressfreiEmail.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,wGAA0F;AAC1F,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,sCAAsC;AACtC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC1G,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAC;AAC/G,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAC;AAElH,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=tariff.routes.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"tariff.routes.d.ts","sourceRoot":"","sources":["../../src/routes/tariff.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAOxB,eAAe,MAAM,CAAC"}
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const tariffController = __importStar(require("../controllers/tariff.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Standalone tariff routes (for update/delete by tariff id)
|
||||
router.get('/:id', auth_js_1.authenticate, tariffController.getTariff);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('providers:update'), tariffController.updateTariff);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('providers:delete'), tariffController.deleteTariff);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=tariff.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"tariff.routes.js","sourceRoot":"","sources":["../../src/routes/tariff.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,sFAAwE;AACxE,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,4DAA4D;AAC5D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAE1G,kBAAe,MAAM,CAAC"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=upload.routes.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"upload.routes.d.ts","sourceRoot":"","sources":["../../src/routes/upload.routes.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA4oBxB,eAAe,MAAM,CAAC"}
|
||||
Vendored
+473
@@ -0,0 +1,473 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const multer_1 = __importDefault(require("multer"));
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const fs_1 = __importDefault(require("fs"));
|
||||
const client_1 = require("@prisma/client");
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
const prisma = new client_1.PrismaClient();
|
||||
// Uploads-Verzeichnis erstellen falls nicht vorhanden
|
||||
const uploadsDir = path_1.default.join(process.cwd(), 'uploads');
|
||||
if (!fs_1.default.existsSync(uploadsDir)) {
|
||||
fs_1.default.mkdirSync(uploadsDir, { recursive: true });
|
||||
}
|
||||
// Multer-Konfiguration
|
||||
const storage = multer_1.default.diskStorage({
|
||||
destination: (req, file, cb) => {
|
||||
const subDir = req.uploadSubDir || 'misc';
|
||||
const targetDir = path_1.default.join(uploadsDir, subDir);
|
||||
if (!fs_1.default.existsSync(targetDir)) {
|
||||
fs_1.default.mkdirSync(targetDir, { recursive: true });
|
||||
}
|
||||
cb(null, targetDir);
|
||||
},
|
||||
filename: (req, file, cb) => {
|
||||
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
|
||||
const ext = path_1.default.extname(file.originalname);
|
||||
cb(null, `${uniqueSuffix}${ext}`);
|
||||
},
|
||||
});
|
||||
const fileFilter = (req, file, cb) => {
|
||||
// Nur PDFs und Bilder erlauben
|
||||
const allowedTypes = ['application/pdf', 'image/jpeg', 'image/png', 'image/jpg'];
|
||||
if (allowedTypes.includes(file.mimetype)) {
|
||||
cb(null, true);
|
||||
}
|
||||
else {
|
||||
cb(new Error('Nur PDF, JPG und PNG Dateien sind erlaubt'));
|
||||
}
|
||||
};
|
||||
const upload = (0, multer_1.default)({
|
||||
storage,
|
||||
fileFilter,
|
||||
limits: {
|
||||
fileSize: 10 * 1024 * 1024, // 10MB max
|
||||
},
|
||||
});
|
||||
// Middleware um Subdirectory zu setzen
|
||||
function setUploadDir(subDir) {
|
||||
return (req, res, next) => {
|
||||
req.uploadSubDir = subDir;
|
||||
next();
|
||||
};
|
||||
}
|
||||
// Upload für Bankkarten-Dokumente
|
||||
router.post('/bank-cards/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), setUploadDir('bank-cards'), upload.single('document'), async (req, res) => {
|
||||
try {
|
||||
if (!req.file) {
|
||||
res.status(400).json({ success: false, error: 'Keine Datei hochgeladen' });
|
||||
return;
|
||||
}
|
||||
const bankCardId = parseInt(req.params.id);
|
||||
const relativePath = `/uploads/bank-cards/${req.file.filename}`;
|
||||
// Bankkarte in der DB aktualisieren
|
||||
await prisma.bankCard.update({
|
||||
where: { id: bankCardId },
|
||||
data: { documentPath: relativePath },
|
||||
});
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
path: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname,
|
||||
size: req.file.size,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
res.status(500).json({ success: false, error: 'Upload fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Upload für Ausweis-Dokumente
|
||||
router.post('/documents/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), setUploadDir('documents'), upload.single('document'), async (req, res) => {
|
||||
try {
|
||||
if (!req.file) {
|
||||
res.status(400).json({ success: false, error: 'Keine Datei hochgeladen' });
|
||||
return;
|
||||
}
|
||||
const documentId = parseInt(req.params.id);
|
||||
const relativePath = `/uploads/documents/${req.file.filename}`;
|
||||
// Ausweis in der DB aktualisieren
|
||||
await prisma.identityDocument.update({
|
||||
where: { id: documentId },
|
||||
data: { documentPath: relativePath },
|
||||
});
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
path: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname,
|
||||
size: req.file.size,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
res.status(500).json({ success: false, error: 'Upload fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Löschen von Bankkarten-Dokumenten
|
||||
router.delete('/bank-cards/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), async (req, res) => {
|
||||
try {
|
||||
const bankCardId = parseInt(req.params.id);
|
||||
// Bankkarte aus DB holen um Dateipfad zu bekommen
|
||||
const bankCard = await prisma.bankCard.findUnique({
|
||||
where: { id: bankCardId },
|
||||
});
|
||||
if (!bankCard) {
|
||||
res.status(404).json({ success: false, error: 'Bankkarte nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
if (!bankCard.documentPath) {
|
||||
res.status(400).json({ success: false, error: 'Kein Dokument vorhanden' });
|
||||
return;
|
||||
}
|
||||
// Datei von Festplatte löschen
|
||||
const filePath = path_1.default.join(process.cwd(), bankCard.documentPath);
|
||||
if (fs_1.default.existsSync(filePath)) {
|
||||
fs_1.default.unlinkSync(filePath);
|
||||
}
|
||||
// documentPath in DB auf null setzen
|
||||
await prisma.bankCard.update({
|
||||
where: { id: bankCardId },
|
||||
data: { documentPath: null },
|
||||
});
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
res.status(500).json({ success: false, error: 'Löschen fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Löschen von Ausweis-Dokumenten
|
||||
router.delete('/documents/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), async (req, res) => {
|
||||
try {
|
||||
const documentId = parseInt(req.params.id);
|
||||
// Ausweis aus DB holen um Dateipfad zu bekommen
|
||||
const document = await prisma.identityDocument.findUnique({
|
||||
where: { id: documentId },
|
||||
});
|
||||
if (!document) {
|
||||
res.status(404).json({ success: false, error: 'Ausweis nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
if (!document.documentPath) {
|
||||
res.status(400).json({ success: false, error: 'Kein Dokument vorhanden' });
|
||||
return;
|
||||
}
|
||||
// Datei von Festplatte löschen
|
||||
const filePath = path_1.default.join(process.cwd(), document.documentPath);
|
||||
if (fs_1.default.existsSync(filePath)) {
|
||||
fs_1.default.unlinkSync(filePath);
|
||||
}
|
||||
// documentPath in DB auf null setzen
|
||||
await prisma.identityDocument.update({
|
||||
where: { id: documentId },
|
||||
data: { documentPath: null },
|
||||
});
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
res.status(500).json({ success: false, error: 'Löschen fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// ==================== FIRMEN-DOKUMENTE ====================
|
||||
// Upload für Gewerbeanmeldung
|
||||
router.post('/customers/:id/business-registration', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), setUploadDir('business-registrations'), upload.single('document'), async (req, res) => {
|
||||
try {
|
||||
if (!req.file) {
|
||||
res.status(400).json({ success: false, error: 'Keine Datei hochgeladen' });
|
||||
return;
|
||||
}
|
||||
const customerId = parseInt(req.params.id);
|
||||
const relativePath = `/uploads/business-registrations/${req.file.filename}`;
|
||||
// Alte Datei löschen falls vorhanden
|
||||
const customer = await prisma.customer.findUnique({ where: { id: customerId } });
|
||||
if (customer?.businessRegistrationPath) {
|
||||
const oldPath = path_1.default.join(process.cwd(), customer.businessRegistrationPath);
|
||||
if (fs_1.default.existsSync(oldPath)) {
|
||||
fs_1.default.unlinkSync(oldPath);
|
||||
}
|
||||
}
|
||||
// Kunde in der DB aktualisieren
|
||||
await prisma.customer.update({
|
||||
where: { id: customerId },
|
||||
data: { businessRegistrationPath: relativePath },
|
||||
});
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
path: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname,
|
||||
size: req.file.size,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
res.status(500).json({ success: false, error: 'Upload fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Upload für Handelsregisterauszug
|
||||
router.post('/customers/:id/commercial-register', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), setUploadDir('commercial-registers'), upload.single('document'), async (req, res) => {
|
||||
try {
|
||||
if (!req.file) {
|
||||
res.status(400).json({ success: false, error: 'Keine Datei hochgeladen' });
|
||||
return;
|
||||
}
|
||||
const customerId = parseInt(req.params.id);
|
||||
const relativePath = `/uploads/commercial-registers/${req.file.filename}`;
|
||||
// Alte Datei löschen falls vorhanden
|
||||
const customer = await prisma.customer.findUnique({ where: { id: customerId } });
|
||||
if (customer?.commercialRegisterPath) {
|
||||
const oldPath = path_1.default.join(process.cwd(), customer.commercialRegisterPath);
|
||||
if (fs_1.default.existsSync(oldPath)) {
|
||||
fs_1.default.unlinkSync(oldPath);
|
||||
}
|
||||
}
|
||||
// Kunde in der DB aktualisieren
|
||||
await prisma.customer.update({
|
||||
where: { id: customerId },
|
||||
data: { commercialRegisterPath: relativePath },
|
||||
});
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
path: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname,
|
||||
size: req.file.size,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
res.status(500).json({ success: false, error: 'Upload fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Löschen der Gewerbeanmeldung
|
||||
router.delete('/customers/:id/business-registration', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), async (req, res) => {
|
||||
try {
|
||||
const customerId = parseInt(req.params.id);
|
||||
const customer = await prisma.customer.findUnique({ where: { id: customerId } });
|
||||
if (!customer) {
|
||||
res.status(404).json({ success: false, error: 'Kunde nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
if (!customer.businessRegistrationPath) {
|
||||
res.status(400).json({ success: false, error: 'Kein Dokument vorhanden' });
|
||||
return;
|
||||
}
|
||||
// Datei löschen
|
||||
const filePath = path_1.default.join(process.cwd(), customer.businessRegistrationPath);
|
||||
if (fs_1.default.existsSync(filePath)) {
|
||||
fs_1.default.unlinkSync(filePath);
|
||||
}
|
||||
// Pfad in DB auf null setzen
|
||||
await prisma.customer.update({
|
||||
where: { id: customerId },
|
||||
data: { businessRegistrationPath: null },
|
||||
});
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
res.status(500).json({ success: false, error: 'Löschen fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Löschen des Handelsregisterauszugs
|
||||
router.delete('/customers/:id/commercial-register', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), async (req, res) => {
|
||||
try {
|
||||
const customerId = parseInt(req.params.id);
|
||||
const customer = await prisma.customer.findUnique({ where: { id: customerId } });
|
||||
if (!customer) {
|
||||
res.status(404).json({ success: false, error: 'Kunde nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
if (!customer.commercialRegisterPath) {
|
||||
res.status(400).json({ success: false, error: 'Kein Dokument vorhanden' });
|
||||
return;
|
||||
}
|
||||
// Datei löschen
|
||||
const filePath = path_1.default.join(process.cwd(), customer.commercialRegisterPath);
|
||||
if (fs_1.default.existsSync(filePath)) {
|
||||
fs_1.default.unlinkSync(filePath);
|
||||
}
|
||||
// Pfad in DB auf null setzen
|
||||
await prisma.customer.update({
|
||||
where: { id: customerId },
|
||||
data: { commercialRegisterPath: null },
|
||||
});
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
res.status(500).json({ success: false, error: 'Löschen fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// ==================== DATENSCHUTZERKLÄRUNG (für alle Kunden) ====================
|
||||
// Upload für Datenschutzerklärung
|
||||
router.post('/customers/:id/privacy-policy', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), setUploadDir('privacy-policies'), upload.single('document'), async (req, res) => {
|
||||
try {
|
||||
if (!req.file) {
|
||||
res.status(400).json({ success: false, error: 'Keine Datei hochgeladen' });
|
||||
return;
|
||||
}
|
||||
const customerId = parseInt(req.params.id);
|
||||
const relativePath = `/uploads/privacy-policies/${req.file.filename}`;
|
||||
// Alte Datei löschen falls vorhanden
|
||||
const customer = await prisma.customer.findUnique({ where: { id: customerId } });
|
||||
if (customer?.privacyPolicyPath) {
|
||||
const oldPath = path_1.default.join(process.cwd(), customer.privacyPolicyPath);
|
||||
if (fs_1.default.existsSync(oldPath)) {
|
||||
fs_1.default.unlinkSync(oldPath);
|
||||
}
|
||||
}
|
||||
// Kunde in der DB aktualisieren
|
||||
await prisma.customer.update({
|
||||
where: { id: customerId },
|
||||
data: { privacyPolicyPath: relativePath },
|
||||
});
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
path: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname,
|
||||
size: req.file.size,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
res.status(500).json({ success: false, error: 'Upload fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// Löschen der Datenschutzerklärung
|
||||
router.delete('/customers/:id/privacy-policy', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('customers:update'), async (req, res) => {
|
||||
try {
|
||||
const customerId = parseInt(req.params.id);
|
||||
const customer = await prisma.customer.findUnique({ where: { id: customerId } });
|
||||
if (!customer) {
|
||||
res.status(404).json({ success: false, error: 'Kunde nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
if (!customer.privacyPolicyPath) {
|
||||
res.status(400).json({ success: false, error: 'Kein Dokument vorhanden' });
|
||||
return;
|
||||
}
|
||||
// Datei löschen
|
||||
const filePath = path_1.default.join(process.cwd(), customer.privacyPolicyPath);
|
||||
if (fs_1.default.existsSync(filePath)) {
|
||||
fs_1.default.unlinkSync(filePath);
|
||||
}
|
||||
// Pfad in DB auf null setzen
|
||||
await prisma.customer.update({
|
||||
where: { id: customerId },
|
||||
data: { privacyPolicyPath: null },
|
||||
});
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
res.status(500).json({ success: false, error: 'Löschen fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
// ==================== VERTRAGS-DOKUMENTE ====================
|
||||
// Generische Funktion für Vertrags-Dokument Upload
|
||||
async function handleContractDocumentUpload(req, res, fieldName, subDir) {
|
||||
try {
|
||||
if (!req.file) {
|
||||
res.status(400).json({ success: false, error: 'Keine Datei hochgeladen' });
|
||||
return;
|
||||
}
|
||||
const contractId = parseInt(req.params.id);
|
||||
const relativePath = `/uploads/${subDir}/${req.file.filename}`;
|
||||
// Alte Datei löschen falls vorhanden
|
||||
const contract = await prisma.contract.findUnique({ where: { id: contractId } });
|
||||
if (!contract) {
|
||||
res.status(404).json({ success: false, error: 'Vertrag nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
const oldPath = contract[fieldName];
|
||||
if (oldPath) {
|
||||
const fullPath = path_1.default.join(process.cwd(), oldPath);
|
||||
if (fs_1.default.existsSync(fullPath)) {
|
||||
fs_1.default.unlinkSync(fullPath);
|
||||
}
|
||||
}
|
||||
// Vertrag in der DB aktualisieren
|
||||
await prisma.contract.update({
|
||||
where: { id: contractId },
|
||||
data: { [fieldName]: relativePath },
|
||||
});
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
path: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname,
|
||||
size: req.file.size,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
res.status(500).json({ success: false, error: 'Upload fehlgeschlagen' });
|
||||
}
|
||||
}
|
||||
// Generische Funktion für Vertrags-Dokument Löschen
|
||||
async function handleContractDocumentDelete(req, res, fieldName) {
|
||||
try {
|
||||
const contractId = parseInt(req.params.id);
|
||||
const contract = await prisma.contract.findUnique({ where: { id: contractId } });
|
||||
if (!contract) {
|
||||
res.status(404).json({ success: false, error: 'Vertrag nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
const documentPath = contract[fieldName];
|
||||
if (!documentPath) {
|
||||
res.status(400).json({ success: false, error: 'Kein Dokument vorhanden' });
|
||||
return;
|
||||
}
|
||||
// Datei löschen
|
||||
const filePath = path_1.default.join(process.cwd(), documentPath);
|
||||
if (fs_1.default.existsSync(filePath)) {
|
||||
fs_1.default.unlinkSync(filePath);
|
||||
}
|
||||
// Pfad in DB auf null setzen
|
||||
await prisma.contract.update({
|
||||
where: { id: contractId },
|
||||
data: { [fieldName]: null },
|
||||
});
|
||||
res.json({ success: true });
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Delete error:', error);
|
||||
res.status(500).json({ success: false, error: 'Löschen fehlgeschlagen' });
|
||||
}
|
||||
}
|
||||
// Kündigungsschreiben
|
||||
router.post('/contracts/:id/cancellation-letter', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), setUploadDir('cancellation-letters'), upload.single('document'), (req, res) => handleContractDocumentUpload(req, res, 'cancellationLetterPath', 'cancellation-letters'));
|
||||
router.delete('/contracts/:id/cancellation-letter', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), (req, res) => handleContractDocumentDelete(req, res, 'cancellationLetterPath'));
|
||||
// Kündigungsbestätigung
|
||||
router.post('/contracts/:id/cancellation-confirmation', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), setUploadDir('cancellation-confirmations'), upload.single('document'), (req, res) => handleContractDocumentUpload(req, res, 'cancellationConfirmationPath', 'cancellation-confirmations'));
|
||||
router.delete('/contracts/:id/cancellation-confirmation', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), (req, res) => handleContractDocumentDelete(req, res, 'cancellationConfirmationPath'));
|
||||
// Kündigungsschreiben Optionen
|
||||
router.post('/contracts/:id/cancellation-letter-options', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), setUploadDir('cancellation-letters-options'), upload.single('document'), (req, res) => handleContractDocumentUpload(req, res, 'cancellationLetterOptionsPath', 'cancellation-letters-options'));
|
||||
router.delete('/contracts/:id/cancellation-letter-options', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), (req, res) => handleContractDocumentDelete(req, res, 'cancellationLetterOptionsPath'));
|
||||
// Kündigungsbestätigung Optionen
|
||||
router.post('/contracts/:id/cancellation-confirmation-options', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), setUploadDir('cancellation-confirmations-options'), upload.single('document'), (req, res) => handleContractDocumentUpload(req, res, 'cancellationConfirmationOptionsPath', 'cancellation-confirmations-options'));
|
||||
router.delete('/contracts/:id/cancellation-confirmation-options', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('contracts:update'), (req, res) => handleContractDocumentDelete(req, res, 'cancellationConfirmationOptionsPath'));
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=upload.routes.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
declare const router: import("express-serve-static-core").Router;
|
||||
export default router;
|
||||
//# sourceMappingURL=user.routes.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.routes.d.ts","sourceRoot":"","sources":["../../src/routes/user.routes.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAmBxB,eAAe,MAAM,CAAC"}
|
||||
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const express_1 = require("express");
|
||||
const userController = __importStar(require("../controllers/user.controller.js"));
|
||||
const auth_js_1 = require("../middleware/auth.js");
|
||||
const router = (0, express_1.Router)();
|
||||
// Users (Admin only)
|
||||
router.get('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:read'), userController.getUsers);
|
||||
router.post('/', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:create'), userController.createUser);
|
||||
router.get('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:read'), userController.getUser);
|
||||
router.put('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:update'), userController.updateUser);
|
||||
router.delete('/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:delete'), userController.deleteUser);
|
||||
// Roles
|
||||
router.get('/roles/list', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:read'), userController.getRoles);
|
||||
router.post('/roles', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:create'), userController.createRole);
|
||||
router.get('/roles/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:read'), userController.getRole);
|
||||
router.put('/roles/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:update'), userController.updateRole);
|
||||
router.delete('/roles/:id', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:delete'), userController.deleteRole);
|
||||
// Permissions
|
||||
router.get('/permissions/list', auth_js_1.authenticate, (0, auth_js_1.requirePermission)('users:read'), userController.getPermissions);
|
||||
exports.default = router;
|
||||
//# sourceMappingURL=user.routes.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.routes.js","sourceRoot":"","sources":["../../src/routes/user.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AACjC,kFAAoE;AACpE,mDAAwE;AAExE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,qBAAqB;AACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,YAAY,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;AACxF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;AAC7F,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAC1F,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;AAElG,QAAQ;AACR,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,YAAY,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;AAClG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAChG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;AACrG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;AAExG,cAAc;AACd,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,sBAAY,EAAE,IAAA,2BAAiB,EAAC,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;AAE9G,kBAAe,MAAM,CAAC"}
|
||||
Reference in New Issue
Block a user