Skip to content
This repository has been archived by the owner on Jan 10, 2025. It is now read-only.

Commit

Permalink
Fixed wrong success messages when pushing of OCPI CDRs failed
Browse files Browse the repository at this point in the history
Added more error handling
  • Loading branch information
LucasBrazi06 committed May 11, 2022
1 parent 89970c8 commit 21b4037
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 46 deletions.
4 changes: 2 additions & 2 deletions src/client/ocpi/CpoOCPIClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { OCPIAllowed, OCPIAuthorizationInfo } from '../../types/ocpi/OCPIAuthori
import { OCPIAuthMethod, OCPISession, OCPISessionStatus } from '../../types/ocpi/OCPISession';
import { OCPICapability, OCPIEvse, OCPIEvseStatus } from '../../types/ocpi/OCPIEvse';
import { OCPILocation, OCPILocationOptions, OCPILocationReference, OCPILocationType } from '../../types/ocpi/OCPILocation';
import User, { UserRole, UserStatus } from '../../types/User';

import { AxiosResponse } from 'axios';
import BackendError from '../../exception/BackendError';
Expand Down Expand Up @@ -38,6 +37,7 @@ import TagStorage from '../../storage/mongodb/TagStorage';
import Tenant from '../../types/Tenant';
import Transaction from '../../types/Transaction';
import TransactionStorage from '../../storage/mongodb/TransactionStorage';
import User from '../../types/User';
import UserStorage from '../../storage/mongodb/UserStorage';
import Utils from '../../utils/Utils';
import _ from 'lodash';
Expand Down Expand Up @@ -370,7 +370,7 @@ export default class CpoOCPIClient extends OCPIClient {
module: MODULE_NAME, method: 'postCdr',
});
}
if (!transaction.ocpiData?.session) {
if (!transaction.ocpiData?.session?.id) {
throw new BackendError({
...LoggingHelper.getTransactionProperties(transaction),
action: ServerAction.OCPI_CPO_PUSH_CDRS,
Expand Down
8 changes: 4 additions & 4 deletions src/server/ocpi/OCPIFacade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,10 @@ export default class OCPIFacade {
}

public static async processEndTransaction(tenant: Tenant, transaction: Transaction, chargingStation: ChargingStation,
siteArea: SiteArea, user: User, action: ServerAction): Promise<void> {
siteArea: SiteArea, user: User, action: ServerAction): Promise<boolean> {
if (!Utils.isTenantComponentActive(tenant, TenantComponents.OCPI) ||
!chargingStation.issuer || !chargingStation.public || !siteArea.accessControl || user.issuer) {
return;
return false;
}
// Get OCPI CPO client
const ocpiClient = await OCPIFacade.checkAndGetOcpiCpoClient(
Expand All @@ -100,8 +100,8 @@ export default class OCPIFacade {
if (ocpiLock) {
try {
// Roaming
ocpiCdrSent = true;
await OCPIFacade.processEndTransaction(tenant, transaction, chargingStation, siteArea, transaction.user, action);
ocpiCdrSent = await OCPIFacade.processEndTransaction(
tenant, transaction, chargingStation, siteArea, transaction.user, action);
} finally {
// Release the lock
await LockingManager.release(ocpiLock);
Expand Down
12 changes: 6 additions & 6 deletions src/server/oicp/OICPFacade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,10 @@ export default class OICPFacade {
}

public static async processEndTransaction(tenant: Tenant, transaction: Transaction, chargingStation: ChargingStation,
siteArea: SiteArea, user: User, action: ServerAction): Promise<void> {
siteArea: SiteArea, user: User, action: ServerAction): Promise<boolean> {
if (!Utils.isTenantComponentActive(tenant, TenantComponents.OICP) ||
!chargingStation.issuer || !chargingStation.public || !siteArea.accessControl) {
return;
return false;
}
// Get OICP CPO client
const oicpClient = await OICPFacade.checkAndGetOICPCpoClient(
Expand All @@ -97,7 +97,7 @@ export default class OICPFacade {

public static async checkAndSendTransactionCdr(tenant: Tenant, transaction: Transaction,
chargingStation: ChargingStation, siteArea: SiteArea, action: ServerAction): Promise<boolean> {
let OICPCdrSent = false;
let oicpCdrSent = false;
// CDR not already pushed
if (Utils.isTenantComponentActive(tenant, TenantComponents.OICP) &&
transaction.oicpData?.session && !transaction.oicpData.cdr?.SessionID) {
Expand All @@ -106,15 +106,15 @@ export default class OICPFacade {
if (OICPLock) {
try {
// Roaming
OICPCdrSent = true;
await OICPFacade.processEndTransaction(tenant, transaction, chargingStation, siteArea, transaction.user, action);
oicpCdrSent = await OICPFacade.processEndTransaction(
tenant, transaction, chargingStation, siteArea, transaction.user, action);
} finally {
// Release the lock
await LockingManager.release(OICPLock);
}
}
}
return OICPCdrSent;
return oicpCdrSent;
}

public static async updateConnectorStatus(tenant: Tenant, chargingStation: ChargingStation, connector: Connector): Promise<void> {
Expand Down
Loading

0 comments on commit 21b4037

Please sign in to comment.