iubenda-consent-solution-api
Advanced tools
Comparing version 0.1.3 to 0.2.0
@@ -1,242 +0,3 @@ | ||
export interface ConsentsQueryParameters { | ||
/** | ||
* Filter by consents timestamp. Returns all consents from that time onward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). | ||
*/ | ||
from_time?: string; | ||
/** | ||
* Filter by consents timestamp. Returns all consents from that time backward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). | ||
*/ | ||
to_time?: string; | ||
/** | ||
* Filter by consents source. Possible values: public, private. | ||
*/ | ||
source?: ['public', 'private']; | ||
/** | ||
* Filter by IP address. Default null. Valid formats (IP address format). | ||
*/ | ||
ip_address?: string; | ||
/** | ||
* Filter by consents type. By not passing this value it returns all consents. Possible values: cookie_policy, null. Default not passed. | ||
*/ | ||
consent_type?: string; | ||
/** | ||
* Filter by Subject ID. | ||
*/ | ||
subject_id?: string; | ||
/** | ||
* Filter by Subject email. It must exactly match (case sensitive). | ||
*/ | ||
subject_email_exact?: string; | ||
/** | ||
* Filter by Subject email. It tries to match parts of the provided email split by dots and spaces. Ex. providing “@test.com” will match all the subjects with an email containing “@test” or containing “com” (case insensitive). | ||
*/ | ||
subject_email?: string; | ||
/** | ||
* Filter by Subject first name. It must exactly match (case sensitive). | ||
*/ | ||
subject_first_name?: string; | ||
/** | ||
* Filter by Subject last name. It must exactly match (case sensitive). | ||
*/ | ||
subject_last_name?: string; | ||
/** | ||
* Filter by Subject full name. It tries to match parts of the provided full name split by dots and spaces. Ex. “test hello” will match all the subjects with a full name containing “test” or containing “hello” (case insensitive). | ||
*/ | ||
subject_full_name?: string; | ||
/** | ||
* Filter by subject verified status. Possible values: true, false. | ||
*/ | ||
subject_verified?: boolean; | ||
/** | ||
* Filter for consents in which the key exists. | ||
*/ | ||
preference_key?: string; | ||
/** | ||
* Filters for results with the value provided being contained in either subject’s id, first_name, last_name, full_name, email. | ||
*/ | ||
fulltext?: string; | ||
/** | ||
* Cursor which indicates after which Consent the results should be returned (cursor excluded). | ||
*/ | ||
starting_after?: string; | ||
/** | ||
* Number indicating the number of results returned. Min: 1, Max: 100. Default 10. | ||
*/ | ||
limit?: number; | ||
} | ||
export interface Consent { | ||
/** | ||
* auto-filled if not provided, ISO 8601 timestamp at which the consent occurred | ||
*/ | ||
timestamp?: string; | ||
checksum?: string; | ||
subject?: ConsentSubject; | ||
/** | ||
* Set of key-value pairs with user preferences for the consent action | ||
*/ | ||
preferences?: ConsentPreferences; | ||
/** | ||
* Considered only when using a `private` key. Saves the passed IP address on the Consent. Default null | ||
*/ | ||
ip_address?: string; | ||
/** | ||
* Default `true`, Considered only when using a `public` key. Enables or disables (true, false) the IP address autedetection. Default true | ||
*/ | ||
autodetect_ip_address: string; | ||
} | ||
export interface ConsentExtended extends Consent { | ||
legal_notices?: (ConsentLegalNoticesEntity)[] | null; | ||
proofs?: (ConsentProofsEntity)[] | null; | ||
} | ||
export interface ConsentResponse extends Consent { | ||
/** | ||
* Optional, auto-filled if not provided | ||
*/ | ||
id: string; | ||
owner: string; | ||
source: string; | ||
} | ||
export interface ConsentPostResponse extends Consent { | ||
id: string; | ||
timestamp: string; | ||
subject_id: string; | ||
} | ||
export interface ConsentSubject { | ||
/** | ||
* Optional, auto-filled if not provided | ||
*/ | ||
id?: string; | ||
owner_id?: string; | ||
email?: string; | ||
first_name?: string; | ||
last_name?: string; | ||
/** | ||
* Reserved field used to signal whether a subject is verified, for instance via the double opt-in method | ||
*/ | ||
verified?: boolean; | ||
} | ||
export interface ConsentPreferences { | ||
[key: string]: string; | ||
} | ||
export interface ConsentLegalNoticesEntity { | ||
/** | ||
* privacy_policy, cookie_policy, term or a custom identifier | ||
*/ | ||
identifier: string; | ||
/** | ||
* Optional, auto-filled if not provided | ||
*/ | ||
version: string; | ||
} | ||
export interface ConsentProofsEntity { | ||
content: string; | ||
form: string; | ||
} | ||
export interface SubjectQueryParameters { | ||
/** | ||
* Filter by id. It must exactly match. Default null | ||
*/ | ||
id: string; | ||
/** | ||
* Filter by owner_id. It must exactly match. Default null | ||
*/ | ||
owner_id: string; | ||
/** | ||
* Filter by email. It must exactly match (case sensitive). Default null | ||
*/ | ||
email_exact: string; | ||
/** | ||
* Filter by email. It tries to match parts of the provided email split by dots and spaces. Ex. providing “@test.com” will match all the subjects with an email containing “@test” or containing “com” (case insensitive). Default null | ||
*/ | ||
email: string; | ||
/** | ||
* Filter by first name. It must exactly match (case sensitive). Default null | ||
*/ | ||
first_name: string; | ||
/** | ||
* Filter by last name. It must exactly match (case sensitive). Default null | ||
*/ | ||
last_name: string; | ||
/** | ||
* Filter by full name. It tries to match parts of the provided full name split by dots and spaces. Ex. “test hello” will match all the subjects with a full name containing “test” or containing “hello” (case insensitive). Default null | ||
*/ | ||
full_name: string; | ||
/** | ||
* Filter by subjects timestamp. Returns all subjects from that time onward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). Default null | ||
*/ | ||
from_time: string; | ||
/** | ||
* Filter by subjects timestamp. Returns all subjects from that time backward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). Default null | ||
*/ | ||
to_time: string; | ||
/** | ||
* Filter by verified status. Possible values: true, false. Default null | ||
*/ | ||
verified: boolean; | ||
/** | ||
* Filters for results with the value provided being contained in either id, first_name, last_name, full_name, email. Default null | ||
*/ | ||
fulltext: string; | ||
/** | ||
* Cursor which indicates after which Subject the results should be returned (cursor excluded). Default null | ||
*/ | ||
starting_after: string; | ||
/** | ||
* Number indicating the number of results returned. Min: 1, Max: 101. Default 10 | ||
*/ | ||
limit: number; | ||
} | ||
export interface Subject { | ||
/** | ||
* Optional, auto-filled if not provided | ||
*/ | ||
id?: string; | ||
email?: string; | ||
first_name?: string; | ||
last_name?: string; | ||
full_name?: string; | ||
verified?: boolean; | ||
} | ||
export interface SubjectResponse extends Subject { | ||
owner_id: string; | ||
preferences?: SubjectPreferences; | ||
timestamp: string; | ||
} | ||
export interface SubjectPreferences { | ||
[key: string]: Preference; | ||
} | ||
export interface Preference { | ||
value: boolean; | ||
consent_id: string; | ||
} | ||
export interface SubjectPostResponse { | ||
id: string; | ||
timestamp: string; | ||
} | ||
export interface ResponseError { | ||
error: boolean; | ||
status: number; | ||
message: string; | ||
} | ||
export interface ClientOption { | ||
apiKey: string; | ||
beta?: boolean; | ||
unescape_json?: boolean; | ||
} | ||
export declare class IubendaConsentSolution { | ||
apiKey: string; | ||
beta: boolean; | ||
unescape_json: boolean; | ||
constructor(options: ClientOption); | ||
get apiUrl(): string; | ||
private addHeaders; | ||
private generateUrl; | ||
private static sendRequest; | ||
getConsents(query?: ConsentsQueryParameters): Promise<ResponseError | ConsentResponse[]>; | ||
getConsent(id: string): Promise<ResponseError | ConsentExtended>; | ||
createConsent(consent: ConsentExtended): Promise<ResponseError | ConsentPostResponse>; | ||
getSubjects(query?: SubjectQueryParameters): Promise<ResponseError | SubjectResponse[]>; | ||
getSubject(id: string): Promise<ResponseError | SubjectResponse>; | ||
createSubject(subject: Subject): Promise<ResponseError | SubjectPostResponse>; | ||
updateSubject(subject: Subject, id: string): Promise<ResponseError | SubjectPostResponse>; | ||
} | ||
export { ConsentExtended, ConsentPostResponse, ConsentResponse, ConsentsQueryParameters, ConsentLegalNoticesEntity, ConsentPreferences, ConsentProofsEntity, ConsentSubject, Consent, } from './src/consent'; | ||
export { Subject, SubjectPostResponse, SubjectResponse, SubjectQueryParameters, SubjectPreferences, } from './src/subject'; | ||
export { IubendaConsentSolution, ResponseError, ClientOption, } from './src/client'; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.IubendaConsentSolution = void 0; | ||
var superagent_1 = require("superagent"); | ||
var IubendaConsentSolution = /** @class */ (function () { | ||
function IubendaConsentSolution(options) { | ||
this.apiKey = options.apiKey; | ||
this.beta = options.beta || false; | ||
this.unescape_json = options.unescape_json || false; | ||
} | ||
Object.defineProperty(IubendaConsentSolution.prototype, "apiUrl", { | ||
get: function () { | ||
var url = 'https://consent.iubenda.com/'; | ||
if (this.beta) | ||
url += 'beta/'; | ||
return url; | ||
}, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
IubendaConsentSolution.prototype.addHeaders = function (request) { | ||
return request.set('Content-Type', 'application/json').set('ApiKey', this.apiKey).ok(function (res) { return true; }); | ||
}; | ||
IubendaConsentSolution.prototype.generateUrl = function (path) { | ||
var url = this.apiUrl + '/' + path; | ||
if (this.unescape_json) | ||
url += '?unescape_json=true'; | ||
return url; | ||
}; | ||
IubendaConsentSolution.sendRequest = function (request) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var response; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, request]; | ||
case 1: | ||
response = _a.sent(); | ||
if (response.status < 300) { | ||
return [2 /*return*/, response.body]; | ||
} | ||
else { | ||
return [2 /*return*/, { status: response.status, message: response.body.message, error: true }]; | ||
} | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.getConsents = function (query) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var req; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
req = this.addHeaders((0, superagent_1.get)(this.generateUrl('consent'))); | ||
if (query) { | ||
req.query(query); | ||
} | ||
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.getConsent = function (id) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, IubendaConsentSolution.sendRequest(this.addHeaders((0, superagent_1.get)(this.generateUrl('consent/' + id))))]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.createConsent = function (consent) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, IubendaConsentSolution.sendRequest(this.addHeaders((0, superagent_1.post)(this.generateUrl('consent')).send(consent)))]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.getSubjects = function (query) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var req; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
req = this.addHeaders((0, superagent_1.get)(this.generateUrl('subjects'))); | ||
if (query) { | ||
req.query(query); | ||
} | ||
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.getSubject = function (id) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var req; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
req = this.addHeaders((0, superagent_1.get)(this.generateUrl('subjects/' + id))); | ||
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.createSubject = function (subject) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var req; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
req = this.addHeaders((0, superagent_1.post)(this.generateUrl('subjects')).send(subject)); | ||
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
IubendaConsentSolution.prototype.updateSubject = function (subject, id) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var req; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
req = this.addHeaders((0, superagent_1.put)(this.generateUrl('subjects/' + id)).send(subject)); | ||
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
} | ||
}); | ||
}); | ||
}; | ||
return IubendaConsentSolution; | ||
}()); | ||
exports.IubendaConsentSolution = IubendaConsentSolution; | ||
var client_1 = require("./src/client"); | ||
Object.defineProperty(exports, "IubendaConsentSolution", { enumerable: true, get: function () { return client_1.IubendaConsentSolution; } }); |
{ | ||
"name": "iubenda-consent-solution-api", | ||
"version": "0.1.3", | ||
"version": "0.2.0", | ||
"description": "API client to implement Iubenda Consent Solution in backend service", | ||
@@ -14,6 +14,6 @@ "main": "dist/index.js", | ||
"start": "yarn run start:dev", | ||
"test": "nyc mocha --config .mocharc.json src/**/*.test.ts", | ||
"test:watch": "mocha --config .mocharc.json --watch src/**/*.test.ts", | ||
"lint": "eslint src/**/*.ts --fix", | ||
"start:dev": "nodemon --config .nodemonrc.json src/index.ts", | ||
"test": "nyc mocha --config .mocharc.json lib/**/*.test.ts", | ||
"test:watch": "mocha --config .mocharc.json --watch lib/**/*.test.ts", | ||
"lint": "eslint lib/**/*.ts --fix", | ||
"start:dev": "nodemon --config .nodemonrc.json lib/index.ts", | ||
"start:prod": "node dist/index.js", | ||
@@ -20,0 +20,0 @@ "prepare": "npm run build" |
@@ -44,3 +44,3 @@ { | ||
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ | ||
"baseUrl": "./src/", /* Base directory to resolve non-absolute module names. */ | ||
"baseUrl": "./lib/", /* Base directory to resolve non-absolute module names. */ | ||
"paths": { | ||
@@ -76,3 +76,5 @@ "~/*": [ | ||
}, | ||
"include": ["src/**/*"] | ||
"include": [ | ||
"lib/**/*" | ||
] | ||
} |
{ | ||
"extends": "./tsconfig.json", | ||
"exclude": ["src/**/*.test.ts"] | ||
"exclude": [ | ||
"lib/**/*.test.ts" | ||
] | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
48015
23
1036
1