diff --git a/site/gatsby-site/migrations/2024.10.01T23.20.28.remove-null-epoch_date_modified-values.js b/site/gatsby-site/migrations/2024.10.01T23.20.28.remove-null-epoch_date_modified-values.js new file mode 100644 index 0000000000..651d97faf3 --- /dev/null +++ b/site/gatsby-site/migrations/2024.10.01T23.20.28.remove-null-epoch_date_modified-values.js @@ -0,0 +1,30 @@ +const config = require('../config'); + +/** @type {import('umzug').MigrationFn} */ +exports.up = async ({ context: { client } }) => { + // If the incident has "epoch_date_modified" field and it is null, unset it + const incidents_collection = client + .db(config.realm.production_db.db_name) + .collection('incidents'); + + const incidents_epoch_date_modified_results = await incidents_collection.updateMany( + { epoch_date_modified: null }, + { $unset: { epoch_date_modified: '' } } + ); + + console.log( + `Updated ${incidents_epoch_date_modified_results.modifiedCount} incidents with null epoch_date_modified field` + ); + + // If the report has "epoch_date_modified" field and it is null, unset it + const reports_collection = client.db(config.realm.production_db.db_name).collection('reports'); + + const reports_epoch_date_modified_results = await reports_collection.updateMany( + { epoch_date_modified: null }, + { $unset: { epoch_date_modified: '' } } + ); + + console.log( + `Updated ${reports_epoch_date_modified_results.modifiedCount} reports with null epoch_date_modified field` + ); +}; diff --git a/site/gatsby-site/server/fields/submissions.ts b/site/gatsby-site/server/fields/submissions.ts index b2db5b2eee..19c32b6d8b 100644 --- a/site/gatsby-site/server/fields/submissions.ts +++ b/site/gatsby-site/server/fields/submissions.ts @@ -97,7 +97,6 @@ export const mutationFields: GraphQLFieldConfigMap = { reports: [], editors, date: submission.incident_date, - epoch_date_modified: submission.epoch_date_modified, "Alleged deployer of AI system": submission.deployers || [], "Alleged developer of AI system": submission.developers || [], "Alleged harmed or nearly harmed parties": submission.harmed_parties || [], @@ -113,6 +112,9 @@ export const mutationFields: GraphQLFieldConfigMap = { from_reports: [report_number] } } + if(submission.epoch_date_modified) { + newIncident.epoch_date_modified = submission.epoch_date_modified; + } await incidents.insertOne({ ...newIncident, incident_id: newIncident.incident_id }); @@ -214,7 +216,6 @@ export const mutationFields: GraphQLFieldConfigMap = { date_published: new Date(submission.date_published), date_submitted: new Date(submission.date_submitted), epoch_date_downloaded: getUnixTime(submission.date_downloaded), - epoch_date_modified: submission.epoch_date_modified, epoch_date_published: getUnixTime(submission.date_published), epoch_date_submitted: getUnixTime(submission.date_submitted), image_url: submission.image_url, @@ -237,6 +238,10 @@ export const mutationFields: GraphQLFieldConfigMap = { newReport.user = submission.user; } + if(submission.epoch_date_modified) { + newReport.epoch_date_modified = submission.epoch_date_modified; + } + await reports.insertOne({ ...newReport, report_number: newReport.report_number }); const incident_ids: number[] = parentIncidents.map(incident => incident.incident_id!);