Skip to content

Commit

Permalink
chore: enable TC validation without LOC id.
Browse files Browse the repository at this point in the history
  • Loading branch information
benoitdevos committed Dec 1, 2023
1 parent e89e121 commit d1ad184
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
2 changes: 1 addition & 1 deletion packages/client-node/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@logion/client-node",
"version": "0.2.0",
"version": "0.2.1-1",
"description": "logion SDK for Node.JS client applications",
"main": "dist/index.js",
"packageManager": "[email protected]",
Expand Down
2 changes: 1 addition & 1 deletion packages/client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@logion/client",
"version": "0.35.0",
"version": "0.36.0-1",
"description": "logion SDK for client applications",
"main": "dist/index.js",
"packageManager": "[email protected]",
Expand Down
6 changes: 6 additions & 0 deletions packages/client/src/license/CreativeCommons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ export class CreativeCommons extends AbstractTermsAndConditionsElement<CreativeC
return new CreativeCommons(licenseLocId, details as CreativeCommonsCode);
}

static validateDetails(details: string) {
if (!values.has(details as CreativeCommonsCode)) {
throw new Error(`Invalid parameters: ${ details }. Valid values are: ${ (Array.from(values)) }.`)
}
}

get details(): string {
return this.parameters;
}
Expand Down
17 changes: 13 additions & 4 deletions packages/client/src/license/LogionClassification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -324,11 +324,15 @@ export class LogionClassification extends AbstractTermsAndConditionsElement<Logi
}

checkValidity() {
const { transferredRights } = this.parameters;
LogionClassification.staticCheckValidity(this.parameters);
}

static staticCheckValidity(parameters: LogionLicenseParameters) {
const { transferredRights } = parameters;
const expirationSet: Condition = params => params.expiration !== undefined && params.expiration.length > 0;
const regionalLimitSet: Condition = params => params.regionalLimit !== undefined && params.regionalLimit.length > 0;
const oneAndOnlyOne = { min: 1, max: 1 };
new Validator(this.parameters)
new Validator(parameters)
.allCodesValid()
.allCountryCodesValid()
.contains(oneAndOnlyOne, [ "PER-PRIV", "PER-PUB", "COM-NOMOD", "COM-MOD" ])
Expand All @@ -337,11 +341,11 @@ export class LogionClassification extends AbstractTermsAndConditionsElement<Logi
.mutuallyExclusive("TIME", "NOTIME")
.codePresentForCondition("TIME", expirationSet, "Transferred right TIME must be set if and only if expiration is set")
.codePresentForCondition("REG", regionalLimitSet, "Transferred right REG must be set if and only if a regional limit is set")
.validIsoDate(this.parameters.expiration)
.validIsoDate(parameters.expiration)
.validOrThrow();
if (transferredRights.includes("COM-NOMOD") ||
transferredRights.includes("COM-MOD")) {
new Validator(this.parameters)
new Validator(parameters)
.contains(oneAndOnlyOne, ["REG", "WW"])
.contains(oneAndOnlyOne, ["TIME", "NOTIME"])
.validOrThrow("When using COM-NOMOD or COM-MOD: ")
Expand All @@ -362,6 +366,11 @@ export class LogionClassification extends AbstractTermsAndConditionsElement<Logi
}
return new LogionClassification(licenseLocId, parameters, checkValidity);
}

static validateDetails(details: string) {
const parameters = JSON.parse(details);
this.staticCheckValidity(parameters);
}
}

class Validator {
Expand Down

0 comments on commit d1ad184

Please sign in to comment.