-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathQcFlagAdapter.js
More file actions
77 lines (72 loc) · 2.31 KB
/
QcFlagAdapter.js
File metadata and controls
77 lines (72 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/**
* @license
* Copyright CERN and copyright holders of ALICE O2. This software is
* distributed under the terms of the GNU General Public License v3 (GPL
* Version 3), copied verbatim in the file "COPYING".
*
* See http://alice-o2.web.cern.ch/license for full licensing information.
*
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/
/**
* QualityControlFlagAdapter
*/
class QcFlagAdapter {
/**
* Constructor
*/
constructor() {
this.toEntity = this.toEntity.bind(this);
this.qcFlagTypeAdapter = null;
this.qcFlagVerificationAdapter = null;
this.qcFlagEffectivePeriodAdapter = null;
this.userAdapter = null;
}
/**
* Converts the given database object to an entity object.
*
* @param {SequelizeQcFlag} databaseObject Object to convert.
* @returns {QcFlag} Converted entity object.
*/
toEntity(databaseObject) {
const {
id,
deleted,
from,
to,
comment,
origin,
createdAt,
updatedAt,
runNumber,
detectorId,
createdById,
createdBy,
flagTypeId,
flagType,
verifications,
effectivePeriods,
} = databaseObject;
return {
id,
deleted,
from: from ? new Date(from).getTime() : null,
to: to ? new Date(to).getTime() : null,
comment: comment ?? null,
origin,
runNumber,
detectorId,
flagTypeId,
flagType: flagType ? this.qcFlagTypeAdapter.toMinifiedEntity(flagType) : null,
createdById,
createdBy: createdBy ? this.userAdapter.toEntity(createdBy) : null,
createdAt: createdAt ? new Date(createdAt).getTime() : null,
updatedAt: createdAt ? new Date(updatedAt).getTime() : null,
verifications: (verifications ?? []).map(this.qcFlagVerificationAdapter.toEntity),
effectivePeriods: (effectivePeriods ?? []).map(this.qcFlagEffectivePeriodAdapter.toEntity),
};
}
}
module.exports = { QcFlagAdapter };