@justair/justair-library 4.8.42 → 4.8.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README CHANGED
@@ -143,4 +143,4 @@ This project is licensed under the MIT License - see the LICENSE file for detail
143
143
 
144
144
  ## Contact
145
145
 
146
- For any inquiries or support, please contact the development team.
146
+ For any inquiries or support, please contact the development team.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justair/justair-library",
3
- "version": "4.8.42",
3
+ "version": "4.8.44",
4
4
  "description": "JustAir Internal Library",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -30,6 +30,8 @@ const samplesAuditSchema = mongoose.Schema(
30
30
  upperDetectionLimit: { type: Number },
31
31
  lowerDetectionLimit: { type: Number },
32
32
  deletedAt: { type: Date, default: Date.now }, // Only populated on delete
33
+ uploadedByName: { type: String }, // Name of the user who uploaded the sample
34
+ uploadDate: { type: Date }, // Date when the sample was uploaded
33
35
  },
34
36
  {
35
37
  timestamps: true,
@@ -53,6 +55,8 @@ const samplesSchema = mongoose.Schema(
53
55
  parameterUnit: { type: String },
54
56
  upperDetectionLimit: { type: Number },
55
57
  lowerDetectionLimit: { type: Number },
58
+ uploadedByName: { type: String }, // Name of the user who uploaded the sample
59
+ uploadDate: { type: Date }, // Date when the sample was uploaded
56
60
  },
57
61
  {
58
62
  timestamps: true,
@@ -63,6 +67,8 @@ const samplesSchema = mongoose.Schema(
63
67
  samplesSchema.index({ siteId: 1, periodStartDate: -1 });
64
68
  // Pollutant-based queries
65
69
  samplesSchema.index({ siteId: 1, parameterName: 1 });
70
+ // Upload history queries (show samples grouped by upload date)
71
+ samplesSchema.index({ siteId: 1, uploadDate: -1 });
66
72
 
67
73
  // Pre-hook to log single document deletions
68
74
  samplesSchema.pre("findOneAndDelete", async function () {
@@ -81,6 +87,8 @@ samplesSchema.pre("findOneAndDelete", async function () {
81
87
  upperDetectionLimit: docToDelete.upperDetectionLimit,
82
88
  lowerDetectionLimit: docToDelete.lowerDetectionLimit,
83
89
  deletedAt: new Date(),
90
+ uploadedByName: docToDelete.uploadedByName,
91
+ uploadDate: docToDelete.uploadDate,
84
92
  });
85
93
  await auditLog.save();
86
94
  }
@@ -104,6 +112,8 @@ samplesSchema.pre("deleteMany", async function () {
104
112
  upperDetectionLimit: doc.upperDetectionLimit,
105
113
  lowerDetectionLimit: doc.lowerDetectionLimit,
106
114
  deletedAt: new Date(),
115
+ uploadedByName: doc.uploadedByName,
116
+ uploadDate: doc.uploadDate,
107
117
  }));
108
118
  await SamplesAudit.insertMany(auditLogs);
109
119
  }
@@ -127,6 +137,8 @@ samplesSchema.pre("deleteOne", async function () {
127
137
  upperDetectionLimit: docToDelete.upperDetectionLimit,
128
138
  lowerDetectionLimit: docToDelete.lowerDetectionLimit,
129
139
  deletedAt: new Date(),
140
+ uploadedByName: docToDelete.uploadedByName,
141
+ uploadDate: docToDelete.uploadDate,
130
142
  });
131
143
  await auditLog.save();
132
144
  }
@@ -149,6 +161,8 @@ samplesSchema.pre("findOneAndUpdate", async function () {
149
161
  upperDetectionLimit: docToUpdate.upperDetectionLimit,
150
162
  lowerDetectionLimit: docToUpdate.lowerDetectionLimit,
151
163
  deletedAt: null,
164
+ uploadedByName: docToUpdate.uploadedByName,
165
+ uploadDate: docToUpdate.uploadDate,
152
166
  });
153
167
  await auditLog.save();
154
168
  }
@@ -171,6 +185,8 @@ samplesSchema.pre("updateMany", async function () {
171
185
  upperDetectionLimit: doc.upperDetectionLimit,
172
186
  lowerDetectionLimit: doc.lowerDetectionLimit,
173
187
  deletedAt: null,
188
+ uploadedByName: doc.uploadedByName,
189
+ uploadDate: doc.uploadDate,
174
190
  }));
175
191
  await SamplesAudit.insertMany(auditLogs);
176
192
  }
@@ -178,4 +194,4 @@ samplesSchema.pre("updateMany", async function () {
178
194
 
179
195
  // Create the SampleSites model
180
196
  const Samples = mongoose.model("Samples", samplesSchema);
181
- export { samplesSchema, Samples, SamplesAudit, samplesAuditSchema, sampleParameterReferenceConcentrations };
197
+ export { samplesSchema, Samples, SamplesAudit, samplesAuditSchema, sampleParameterReferenceConcentrations };