allow eggs to have a release date

This commit is contained in:
Phillip Thelen
2024-06-10 14:11:38 +02:00
parent c2b370f4d3
commit 6d13a257dd
11 changed files with 144 additions and 87 deletions

View File

@@ -0,0 +1,30 @@
import moment from 'moment';
import filter from 'lodash/filter';
import { pickBy } from 'lodash';
import nconf from 'nconf';
const SWITCHOVER_TIME = nconf.get('CONTENT_SWITCHOVER_TIME_OFFSET') || 0;
const releaseDateEndPart = `T${String(SWITCHOVER_TIME).padStart(2, '0')}:00-0000`;
export function buildReleaseDate (year, month, day = 1) {
return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}${releaseDateEndPart}`;
}
function isReleased (item, fieldName, releaseDateMap, releaseByDefault) {
if (releaseDateMap[item[fieldName]]) {
const release = releaseDateMap[item[fieldName]];
if (release.day) {
return moment().isAfter(moment(buildReleaseDate(release.year, release.month, release.day)));
}
return moment().isAfter(releaseDateMap[item[fieldName]]);
}
return releaseByDefault;
}
export function filterReleased (items, fieldName, releaseDateMap, releaseByDefault = true) {
if (typeof items === 'object') {
return pickBy(items, item => isReleased(item, fieldName, releaseDateMap, releaseByDefault));
}
return filter(items, item => isReleased(item, fieldName, releaseDateMap, releaseByDefault));
}