modifica a docker compose
This commit is contained in:
parent
3c2694d607
commit
33941a23dc
6 changed files with 71 additions and 5 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -7,7 +7,6 @@ dist/
|
|||
# Variabili d'ambiente (MAI in git)
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# Log
|
||||
logs/
|
||||
|
|
|
|||
14
dist/index.js
vendored
14
dist/index.js
vendored
|
|
@ -12,8 +12,20 @@ dotenv.config();
|
|||
const app = express();
|
||||
const port = Number(process.env.PORT) || 3003;
|
||||
app.set("trust proxy", 1);
|
||||
const allowedOrigins = [
|
||||
"http://localhost:5173",
|
||||
"http://127.0.0.1:5173",
|
||||
process.env.FRONTEND_URL,
|
||||
].filter(Boolean);
|
||||
app.use(cors({
|
||||
origin: process.env.FRONTEND_URL ?? "http://localhost:5173",
|
||||
origin(origin, callback) {
|
||||
if (!origin || allowedOrigins.includes(origin)) {
|
||||
callback(null, true);
|
||||
}
|
||||
else {
|
||||
callback(new Error("Origin non consentita"));
|
||||
}
|
||||
},
|
||||
credentials: true,
|
||||
}));
|
||||
app.use(express.json());
|
||||
|
|
|
|||
2
dist/index.js.map
vendored
2
dist/index.js.map
vendored
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAE9C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC1B,GAAG,CAAC,GAAG,CACL,IAAI,CAAC;IACH,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB;IAC3D,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AACF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACnC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AACjD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAE/C,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEtB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAE9C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC1B,MAAM,cAAc,GAAG;IACrB,uBAAuB;IACvB,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,YAAY;CACzB,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;AAE9B,GAAG,CAAC,GAAG,CACL,IAAI,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,QAAQ;QACrB,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AACF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACnC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AACjD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAE/C,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEtB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
|
||||
|
|
@ -8,7 +8,8 @@ services:
|
|||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
MYSQL_HOST: mysql
|
||||
DB_HOST: mysql
|
||||
DB_PORT: 3306
|
||||
PORT: 3003
|
||||
ports:
|
||||
- "127.0.0.1:3003:3003"
|
||||
|
|
|
|||
42
initdb/01_schema.sql
Normal file
42
initdb/01_schema.sql
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
USE provapratica;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS utenti (
|
||||
utente_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
nome VARCHAR(100) NOT NULL,
|
||||
cognome VARCHAR(100) NOT NULL,
|
||||
email VARCHAR(255) NOT NULL,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
ruolo ENUM('DIPENDENTE', 'RESPONSABILE_AMMINISTRATIVO') NOT NULL DEFAULT 'DIPENDENTE',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (utente_id),
|
||||
UNIQUE KEY uk_utenti_email (email)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS categorie_spesa (
|
||||
categoria_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
descrizione VARCHAR(150) NOT NULL,
|
||||
PRIMARY KEY (categoria_id),
|
||||
UNIQUE KEY uk_categorie_spesa_descrizione (descrizione)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS richieste_rimborso (
|
||||
richiesta_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
data_inserimento DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
data_spesa DATE NOT NULL,
|
||||
categoria_id INT UNSIGNED NOT NULL,
|
||||
importo DECIMAL(10, 2) NOT NULL,
|
||||
descrizione VARCHAR(500) NOT NULL,
|
||||
riferimento_giustificativo VARCHAR(255) NULL,
|
||||
stato ENUM('IN_ATTESA', 'APPROVATA', 'RIFIUTATA', 'LIQUIDATA') NOT NULL DEFAULT 'IN_ATTESA',
|
||||
dipendente_id INT UNSIGNED NOT NULL,
|
||||
data_valutazione DATETIME NULL,
|
||||
responsabile_valutazione_id INT UNSIGNED NULL,
|
||||
motivazione_rifiuto VARCHAR(500) NULL,
|
||||
data_liquidazione DATETIME NULL,
|
||||
PRIMARY KEY (richiesta_id),
|
||||
CONSTRAINT fk_richieste_categoria FOREIGN KEY (categoria_id) REFERENCES categorie_spesa (categoria_id),
|
||||
CONSTRAINT fk_richieste_dipendente FOREIGN KEY (dipendente_id) REFERENCES utenti (utente_id),
|
||||
CONSTRAINT fk_richieste_responsabile FOREIGN KEY (responsabile_valutazione_id) REFERENCES utenti (utente_id),
|
||||
CONSTRAINT chk_richieste_importo_positivo CHECK (importo > 0)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
14
src/index.ts
14
src/index.ts
|
|
@ -15,9 +15,21 @@ const app = express();
|
|||
const port = Number(process.env.PORT) || 3003;
|
||||
|
||||
app.set("trust proxy", 1);
|
||||
const allowedOrigins = [
|
||||
"http://localhost:5173",
|
||||
"http://127.0.0.1:5173",
|
||||
process.env.FRONTEND_URL,
|
||||
].filter(Boolean) as string[];
|
||||
|
||||
app.use(
|
||||
cors({
|
||||
origin: process.env.FRONTEND_URL ?? "http://localhost:5173",
|
||||
origin(origin, callback) {
|
||||
if (!origin || allowedOrigins.includes(origin)) {
|
||||
callback(null, true);
|
||||
} else {
|
||||
callback(new Error("Origin non consentita"));
|
||||
}
|
||||
},
|
||||
credentials: true,
|
||||
})
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue