Skip to content

Commit

Permalink
fix: [DHIS2-18278] remove completedAt and completedBy from the payloa…
Browse files Browse the repository at this point in the history
…d send to the API (#3873)
  • Loading branch information
simonadomnisoru authored Nov 5, 2024
1 parent 567f9eb commit 156369a
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const changeEnrollmentAndEventsStatus = () => (
const enrollment = body.enrollments && body.enrollments.find(e => e.enrollment === 'FZAa7j0muDj');
const eventToDelete = enrollment.events.find(e => e.programStage === 'eHvTba5ijAh');
const { events, ...rest } = enrollment;
const enrollmentToUpdate = { ...rest, status: 'ACTIVE' };
const enrollmentToUpdate = { ...rest, status: 'ACTIVE', completedAt: null, completedBy: null };

return cy
.buildApiUrl('tracker?async=false&importStrategy=UPDATE')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ const changeEnrollmentAndEventsStatus = () => (
const enrollmentToUpdate = {
...enrollment,
status: 'ACTIVE',
events: [{ ...eventToUpdate, status: 'ACTIVE' }],
completedAt: null,
completedBy: null,
events: [{ ...eventToUpdate, status: 'ACTIVE', completedAt: null, completedBy: null }],
};

return cy
Expand Down
15 changes: 13 additions & 2 deletions cypress/e2e/WidgetsForEnrollmentPages/WidgetEnrollment/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,19 @@ const changeEnrollmentAndEventsStatus = () => (
.then(url => cy.request(url))
.then(({ body }) => {
const enrollment = body.enrollments && body.enrollments.find(e => e.enrollment === 'qyx7tscVpVB');
const eventsToUpdate = enrollment.events.map(e => ({ ...e, status: 'ACTIVE' }));
const enrollmentToUpdate = { ...enrollment, status: 'ACTIVE', events: eventsToUpdate };
const eventsToUpdate = enrollment.events.map(e => ({
...e,
status: 'ACTIVE',
completedAt: null,
completedBy: null,
}));
const enrollmentToUpdate = {
...enrollment,
status: 'ACTIVE',
completedAt: null,
completedBy: null,
events: eventsToUpdate,
};

return cy
.buildApiUrl('tracker?async=false&importStrategy=UPDATE')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
// @flow
import moment from 'moment';
import { getFormattedStringFromMomentUsingEuropeanGlyphs } from 'capture-core-utils/date';
import { convertDataEntryToClientValues } from '../../../../../DataEntry/common/convertDataEntryToClientValues';
import { convertValue as convertToServerValue } from '../../../../../../converters/clientToServer';
import { convertMainEventClientToServer } from '../../../../../../events/mainConverters';
Expand All @@ -27,10 +25,6 @@ export const getNewEventServerData = (state: ReduxState, formFoundation: RenderF
const formServerValues = formFoundation.convertValues(formClientValues, convertToServerValue);
const mainDataServerValues: Object = convertMainEventClientToServer(mainDataClientValues, serverMinorVersion);

if (mainDataServerValues.status === 'COMPLETED') {
mainDataServerValues.completedAt = getFormattedStringFromMomentUsingEuropeanGlyphs(moment());
}

return {
events: [{
...mainDataServerValues,
Expand Down Expand Up @@ -64,9 +58,6 @@ export const getAddEventEnrollmentServerData = (state: ReduxState,
if (!mainDataServerValues.status) {
mainDataServerValues.status = completed ? 'ACTIVE' : 'COMPLETED';
}
if (mainDataServerValues.status === 'COMPLETED') {
mainDataServerValues.completedAt = getFormattedStringFromMomentUsingEuropeanGlyphs(moment());
}

return {
events: [
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// @flow
import moment from 'moment';
import { getFormattedStringFromMomentUsingEuropeanGlyphs } from 'capture-core-utils/date';
import { convertDataEntryToClientValues } from '../../DataEntry/common/convertDataEntryToClientValues';
import { convertValue as convertToServerValue } from '../../../converters/clientToServer';
import { convertMainEventClientToServer } from '../../../events/mainConverters';
Expand Down Expand Up @@ -44,9 +43,6 @@ export const getAddEventEnrollmentServerData = ({
if (!mainDataServerValues.status) {
mainDataServerValues.status = completed ? 'COMPLETED' : 'ACTIVE';
}
if (mainDataServerValues.status === 'COMPLETED') {
mainDataServerValues.completedAt = getFormattedStringFromMomentUsingEuropeanGlyphs(moment());
}

return {
...mainDataServerValues,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ import { ofType } from 'redux-observable';
import { map, filter, flatMap } from 'rxjs/operators';
import { batchActions } from 'redux-batched-actions';
import { dataEntryKeys, dataEntryIds } from 'capture-core/constants';
import moment from 'moment';
import { EMPTY } from 'rxjs';
import { getFormattedStringFromMomentUsingEuropeanGlyphs } from 'capture-core-utils/date';
import { convertCategoryOptionsToServer, convertValue as convertToServerValue } from '../../../converters/clientToServer';
import { getProgramAndStageFromEvent, scopeTypes, getScopeInfo } from '../../../metaData';
import { openEventForEditInDataEntry } from '../DataEntry/editEventDataEntry.actions';
Expand Down Expand Up @@ -106,9 +104,6 @@ export const saveEditedEventEpic = (action$: InputObservable, store: ReduxStore,
const formServerValues = formFoundation.convertValues(formClientValues, convertToServerValue);
const mainDataServerValues: Object = convertMainEventClientToServer(mainDataClientValues, minor);

if (mainDataServerValues.status === 'COMPLETED' && !prevEventMainData.completedAt) {
mainDataServerValues.completedAt = getFormattedStringFromMomentUsingEuropeanGlyphs(moment());
}

const { eventContainer: prevEventContainer } = state.viewEventPage.loadedValues;

Expand Down Expand Up @@ -270,10 +265,6 @@ export const saveEventAndCompleteEnrollmentEpic = (action$: InputObservable, sto
const formServerValues = formFoundation.convertValues(formClientValues, convertToServerValue);
const mainDataServerValues: Object = convertMainEventClientToServer(mainDataClientValues, minor);

if (!prevEventMainData.completedAt) {
mainDataServerValues.completedAt = getFormattedStringFromMomentUsingEuropeanGlyphs(moment());
}

const editEvent = {
...mainDataServerValues,
attributeOptionCombo: undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ import { convertMainEvent } from './mainEventConverter';
import { dataElementTypes } from '../../metaData';
import { convertEventAttributeOptions } from '../convertEventAttributeOptions';

const keysToSkip = {
completedAt: 'completedAt',
completedBy: 'completedBy',
};

export function convertMainEventClientToServer(event: Object, serverMinorVersion: number) {
const mapClientKeyToServerKey = {
eventId: 'event',
Expand All @@ -22,7 +27,6 @@ export function convertMainEventClientToServer(event: Object, serverMinorVersion
switch (key) {
case 'occurredAt':
case 'scheduledAt':
case 'completedAt':
convertedValue = convertClientToServer(value, dataElementTypes.DATE);
break;
case 'assignee':
Expand All @@ -34,5 +38,5 @@ export function convertMainEventClientToServer(event: Object, serverMinorVersion
}

return convertedValue;
});
}, keysToSkip);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@ export function convertMainEvent(
event: Object,
keyMap: Object = {},
onConvert: (key: string, value: any) => any,
keysToSkip?: {[keyId: string]: string},
) {
return Object
.keys(event)
.reduce((accConvertedEvent, key) => {
if (keysToSkip && keysToSkip[key]) {
return accConvertedEvent;
}
const convertedValue = onConvert(key, event[key]);
const outputKey = keyMap[key] || key;
accConvertedEvent[outputKey] = convertedValue;
Expand Down

0 comments on commit 156369a

Please sign in to comment.