Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions build/config/clientURL.js

This file was deleted.

66 changes: 0 additions & 66 deletions build/controllers/webUpdatesController.js

This file was deleted.

93 changes: 0 additions & 93 deletions build/middleware/pdfCreator/webUpdates.js

This file was deleted.

File renamed without changes.
13 changes: 13 additions & 0 deletions config/clientURL.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const path_1 = __importDefault(require('path'));
require('dotenv').config({ path: path_1.default.join(__dirname, '.env') });
const express_1 = __importDefault(require('express'));
const app = (0, express_1.default)();
const CLIENT_URL = process.env.DEPLOYMENT === 'dev' ? 'http://localhost:3000' : 'https://hotshoot.tk';
exports.default = CLIENT_URL;
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
93 changes: 93 additions & 0 deletions controllers/webUpdatesController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
'use strict';
var __awaiter =
(this && this.__awaiter) ||
function (thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P
? value
: new P(function (resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator['throw'](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const WebUpdates_1 = __importDefault(require('../model/WebUpdates'));
const format_1 = __importDefault(require('date-fns/format'));
const errorHandlers_1 = require('../middleware/errorHandlers');
const webUpdates_1 = __importDefault(require('../middleware/pdfCreator/webUpdates'));
const addNewUpdate = (req, res) =>
__awaiter(void 0, void 0, void 0, function* () {
console.log(`${req.originalUrl}`);
const { version, changes } = req.body;
const newUpdate = new WebUpdates_1.default({
version,
date: (0, format_1.default)(new Date(), 'yyyy.MM.dd'),
changes,
});
try {
yield newUpdate.save();
console.log('Added new update register');
return res
.status(200)
.json({ message: 'Added new update register', date: (0, format_1.default)(new Date(), 'yyyy.MM.dd') });
} catch (err) {
(0, errorHandlers_1.apiErrorHandler)(req, res, err);
}
});
const getAllUpdates = (req, res) =>
__awaiter(void 0, void 0, void 0, function* () {
console.log(`${req.originalUrl}`);
try {
const response = yield WebUpdates_1.default.find({}).lean();
console.log('List of updates returned successfully');
return res.status(200).json(response);
} catch (err) {
console.log(err);
(0, errorHandlers_1.apiErrorHandler)(req, res, err);
}
});
const getPDF = (req, res, next) =>
__awaiter(void 0, void 0, void 0, function* () {
console.log(`${req.originalUrl}`);
try {
const response = yield WebUpdates_1.default.find({}).lean();
const stream = res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': `attachment;filename=UpdatesLogs.pdf`,
});
webUpdates_1.default.buildPDF(
(chunk) => stream.write(chunk),
() => stream.end(),
response
);
console.log('Send update list (PDF) successfully');
} catch (err) {
(0, errorHandlers_1.apiErrorHandler)(req, res, err); //send products as a response
}
});
exports.default = { addNewUpdate, getAllUpdates, getPDF };
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
import PDFDocument from 'pdfkit';
import { WebUpdatesDocument } from '../../model/WebUpdates';

function countBreakLines(list: string[], doc: { widthOfString: (arg0: string) => number }) {
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const pdfkit_1 = __importDefault(require('pdfkit'));
function countBreakLines(list, doc) {
let lineBreaksCount = 0;
for (let i = 0; i < list.length; i++) {
if (doc.widthOfString(list[i]) > 200) lineBreaksCount += 1;
}
return lineBreaksCount;
}

function endPosition(data: WebUpdatesDocument[], doc: PDFKit.PDFDocument) {
function endPosition(data, doc) {
let listPositions = [80];
const maximalPositionBeforeNextPage = 640;
for (let i = 0; i < data.length; i++) {
const lists = data[i].changes;
const numberOfAdded = lists.added.length;
const numberOfFixes = lists.fixes.length;

if (i === 0) {
if (
lists.added.length + countBreakLines(lists.added, doc) >
Expand Down Expand Up @@ -55,36 +58,23 @@ function endPosition(data: WebUpdatesDocument[], doc: PDFKit.PDFDocument) {
}
return listPositions;
}

function buildPDF(
dataCallback: (...args: any[]) => void,
endCallback: (...args: any[]) => void,
data: WebUpdatesDocument[]
) {
function buildPDF(dataCallback, endCallback, data) {
data = data.reverse();
const doc = new PDFDocument({ size: 'A4' }); //A4 (595.28 x 841.89)
const doc = new pdfkit_1.default({ size: 'A4' }); //A4 (595.28 x 841.89)
doc.on('data', dataCallback);
doc.on('end', endCallback);

doc.fontSize(15).text('List of updates', 50, 50);
doc.moveTo(40, 70).lineTo(555, 70).stroke();

const listPositions = endPosition(data, doc);

for (let i = 0; i < data.length; i++) {
if (listPositions[i] === 80 && i !== 0) {
doc.addPage({ size: 'A4' });
doc.fontSize(15).text('List of updates', 50, 50);
doc.moveTo(40, 70).lineTo(555, 70).stroke();
}

// doc.fontSize(10).text(`Pozycja: ${listPositions[i]}`, 50, listPositions[i] - 10);
doc.font('Helvetica-Bold').fontSize(10).text(`Date: ${data[i].date}`, 50, listPositions[i]);
doc.fontSize(10).text(
`Version: ${(data[i as unknown as keyof typeof data]! as WebUpdatesDocument).version}`,
50,
listPositions[i] + 10
);
doc.fontSize(10).text(`Version: ${data[i].version}`, 50, listPositions[i] + 10);
doc.font('Helvetica')
.fontSize(10)
.text('Added:', 50, listPositions[i] + 30);
Expand All @@ -104,5 +94,4 @@ function buildPDF(
}
doc.end();
}

export default buildPDF;
exports.default = { buildPDF };
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
10 changes: 0 additions & 10 deletions src/config/allowedOrigins.ts

This file was deleted.

8 changes: 0 additions & 8 deletions src/config/clientURL.ts

This file was deleted.

16 changes: 0 additions & 16 deletions src/config/corsOptions.ts

This file was deleted.

Loading