@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
153 lines • 7.12 kB
JavaScript
import { AuthorizationStatusEnum, IdTokenEnum, OCPP2_0_1 } from '@citrineos/base';
import { Authorization } from '../../model/index.js';
export class AuthorizationMapper {
static toAuthorizationData(authorization) {
return {
customData: authorization.customData,
idToken: AuthorizationMapper.toIdToken(authorization),
idTokenInfo: AuthorizationMapper.toIdTokenInfo(authorization),
};
}
static toIdToken(authorization) {
if (!authorization.idTokenType) {
throw new Error('IdToken type is missing.');
}
return {
customData: authorization.customData,
additionalInfo: authorization.additionalInfo ?? null,
idToken: authorization.idToken,
type: AuthorizationMapper.toIdTokenEnumType(authorization.idTokenType),
};
}
static toIdTokenInfo(authorization) {
return {
status: AuthorizationMapper.fromAuthorizationStatusEnumType(authorization.status),
cacheExpiryDateTime: authorization.cacheExpiryDateTime,
chargingPriority: authorization.chargingPriority,
language1: authorization.language1,
language2: authorization.language2,
personalMessage: authorization.personalMessage,
customData: authorization.customData,
};
}
static toMessageContentType(messageContent) {
return {
customData: messageContent.customData,
format: AuthorizationMapper.toMessageFormatEnum(messageContent.format),
language: messageContent.language,
content: messageContent.content,
};
}
static toMessageFormatEnum(messageFormat) {
switch (messageFormat) {
case 'ASCII':
return OCPP2_0_1.MessageFormatEnumType.ASCII;
case 'HTML':
return OCPP2_0_1.MessageFormatEnumType.HTML;
case 'URI':
return OCPP2_0_1.MessageFormatEnumType.URI;
case 'UTF8':
return OCPP2_0_1.MessageFormatEnumType.UTF8;
default:
throw new Error('Unknown message format');
}
}
static fromAuthorizationStatusEnumType(status) {
switch (status) {
case AuthorizationStatusEnum.Accepted:
return OCPP2_0_1.AuthorizationStatusEnumType.Accepted;
case AuthorizationStatusEnum.Blocked:
return OCPP2_0_1.AuthorizationStatusEnumType.Blocked;
case AuthorizationStatusEnum.ConcurrentTx:
return OCPP2_0_1.AuthorizationStatusEnumType.ConcurrentTx;
case AuthorizationStatusEnum.Expired:
return OCPP2_0_1.AuthorizationStatusEnumType.Expired;
case AuthorizationStatusEnum.Invalid:
return OCPP2_0_1.AuthorizationStatusEnumType.Invalid;
case AuthorizationStatusEnum.NoCredit:
return OCPP2_0_1.AuthorizationStatusEnumType.NoCredit;
case AuthorizationStatusEnum.NotAllowedTypeEVSE:
return OCPP2_0_1.AuthorizationStatusEnumType.NotAllowedTypeEVSE;
case AuthorizationStatusEnum.NotAtThisLocation:
return OCPP2_0_1.AuthorizationStatusEnumType.NotAtThisLocation;
case AuthorizationStatusEnum.NotAtThisTime:
return OCPP2_0_1.AuthorizationStatusEnumType.NotAtThisTime;
case AuthorizationStatusEnum.Unknown:
return OCPP2_0_1.AuthorizationStatusEnumType.Unknown;
default:
throw new Error('Unknown authorization status: ' + status);
}
}
static toAuthorizationStatusEnumType(status) {
switch (status) {
case OCPP2_0_1.AuthorizationStatusEnumType.Accepted:
return AuthorizationStatusEnum.Accepted;
case OCPP2_0_1.AuthorizationStatusEnumType.Blocked:
return AuthorizationStatusEnum.Blocked;
case OCPP2_0_1.AuthorizationStatusEnumType.ConcurrentTx:
return AuthorizationStatusEnum.ConcurrentTx;
case OCPP2_0_1.AuthorizationStatusEnumType.Expired:
return AuthorizationStatusEnum.Expired;
case OCPP2_0_1.AuthorizationStatusEnumType.Invalid:
return AuthorizationStatusEnum.Invalid;
case OCPP2_0_1.AuthorizationStatusEnumType.NoCredit:
return AuthorizationStatusEnum.NoCredit;
case OCPP2_0_1.AuthorizationStatusEnumType.NotAllowedTypeEVSE:
return AuthorizationStatusEnum.NotAllowedTypeEVSE;
case OCPP2_0_1.AuthorizationStatusEnumType.NotAtThisLocation:
return AuthorizationStatusEnum.NotAtThisLocation;
case OCPP2_0_1.AuthorizationStatusEnumType.NotAtThisTime:
return AuthorizationStatusEnum.NotAtThisTime;
case OCPP2_0_1.AuthorizationStatusEnumType.Unknown:
return AuthorizationStatusEnum.Unknown;
default:
throw new Error('Unknown authorization status');
}
}
static toIdTokenEnumType(type) {
switch (type) {
case IdTokenEnum.Central:
case IdTokenEnum.Other:
return OCPP2_0_1.IdTokenEnumType.Central;
case IdTokenEnum.eMAID:
return OCPP2_0_1.IdTokenEnumType.eMAID;
case IdTokenEnum.ISO14443:
return OCPP2_0_1.IdTokenEnumType.ISO14443;
case IdTokenEnum.ISO15693:
return OCPP2_0_1.IdTokenEnumType.ISO15693;
case IdTokenEnum.KeyCode:
return OCPP2_0_1.IdTokenEnumType.KeyCode;
case IdTokenEnum.Local:
return OCPP2_0_1.IdTokenEnumType.Local;
case IdTokenEnum.MacAddress:
return OCPP2_0_1.IdTokenEnumType.MacAddress;
case IdTokenEnum.NoAuthorization:
return OCPP2_0_1.IdTokenEnumType.NoAuthorization;
default:
throw new Error(`Unknown idToken type: ${type}`);
}
}
static fromIdTokenEnumType(type) {
switch (type) {
case OCPP2_0_1.IdTokenEnumType.Central:
return IdTokenEnum.Central;
case OCPP2_0_1.IdTokenEnumType.eMAID:
return IdTokenEnum.eMAID;
case OCPP2_0_1.IdTokenEnumType.ISO14443:
return IdTokenEnum.ISO14443;
case OCPP2_0_1.IdTokenEnumType.ISO15693:
return IdTokenEnum.ISO15693;
case OCPP2_0_1.IdTokenEnumType.KeyCode:
return IdTokenEnum.KeyCode;
case OCPP2_0_1.IdTokenEnumType.Local:
return IdTokenEnum.Local;
case OCPP2_0_1.IdTokenEnumType.MacAddress:
return IdTokenEnum.MacAddress;
case OCPP2_0_1.IdTokenEnumType.NoAuthorization:
return IdTokenEnum.NoAuthorization;
default:
throw new Error(`Unknown OCPP 2.0.1 idToken type: ${type}`);
}
}
}
//# sourceMappingURL=AuthorizationMapper.js.map