Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

iubenda-consent-solution-api

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iubenda-consent-solution-api - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

221

dist/index.d.ts

@@ -1,5 +0,216 @@

import { ConsentExtended, ConsentPostResponse, ConsentResponse, ConsentsQueryParameters } from '~/consent';
import { Subject, SubjectPostResponse, SubjectQueryParameters, SubjectResponse } from '~/subject';
export * from '~/consent';
export * from '~/subject';
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?: null;
/**
* 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 {

@@ -23,3 +234,3 @@ error: boolean;

private generateUrl;
private sendRequest;
private static sendRequest;
getConsents(query?: ConsentsQueryParameters): Promise<ResponseError | ConsentResponse[]>;

@@ -26,0 +237,0 @@ getConsent(id: string): Promise<ResponseError | ConsentExtended>;

38

dist/index.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -51,4 +41,2 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

var superagent_1 = require("superagent");
__exportStar(require("./consent"), exports);
__exportStar(require("./subject"), exports);
var IubendaConsentSolution = /** @class */ (function () {

@@ -79,3 +67,3 @@ function IubendaConsentSolution(options) {

};
IubendaConsentSolution.prototype.sendRequest = function (request) {
IubendaConsentSolution.sendRequest = function (request) {
return __awaiter(this, void 0, void 0, function () {

@@ -109,3 +97,3 @@ var response;

}
return [4 /*yield*/, this.sendRequest(req)];
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)];
case 1: return [2 /*return*/, _a.sent()];

@@ -120,3 +108,3 @@ }

switch (_a.label) {
case 0: return [4 /*yield*/, this.sendRequest(this.addHeaders((0, superagent_1.get)(this.generateUrl('consent/' + id))))];
case 0: return [4 /*yield*/, IubendaConsentSolution.sendRequest(this.addHeaders((0, superagent_1.get)(this.generateUrl('consent/' + id))))];
case 1: return [2 /*return*/, _a.sent()];

@@ -129,9 +117,9 @@ }

return __awaiter(this, void 0, void 0, function () {
var _a;
return __generator(this, function (_b) {
switch (_b.label) {
var _a, _b;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_a = this.sendRequest;
return [4 /*yield*/, this.sendRequest(this.addHeaders((0, superagent_1.post)(this.generateUrl('consent')).send(consent)))];
case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
_b = (_a = IubendaConsentSolution).sendRequest;
return [4 /*yield*/, IubendaConsentSolution.sendRequest(this.addHeaders((0, superagent_1.post)(this.generateUrl('consent')).send(consent)))];
case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
}

@@ -151,3 +139,3 @@ });

}
return [4 /*yield*/, this.sendRequest(req)];
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)];
case 1: return [2 /*return*/, _a.sent()];

@@ -165,3 +153,3 @@ }

req = this.addHeaders((0, superagent_1.get)(this.generateUrl('subjects/' + id)));
return [4 /*yield*/, this.sendRequest(req)];
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)];
case 1: return [2 /*return*/, _a.sent()];

@@ -179,3 +167,3 @@ }

req = this.addHeaders((0, superagent_1.post)(this.generateUrl('subjects')).send(subject));
return [4 /*yield*/, this.sendRequest(req)];
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)];
case 1: return [2 /*return*/, _a.sent()];

@@ -193,3 +181,3 @@ }

req = this.addHeaders((0, superagent_1.put)(this.generateUrl('subjects/' + id)).send(subject));
return [4 /*yield*/, this.sendRequest(req)];
return [4 /*yield*/, IubendaConsentSolution.sendRequest(req)];
case 1: return [2 /*return*/, _a.sent()];

@@ -196,0 +184,0 @@ }

{
"name": "iubenda-consent-solution-api",
"version": "0.1.1",
"version": "0.1.2",
"description": "API client to implement Iubenda Consent Solution in backend service",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

import {expect} from 'chai';
import {IubendaConsentSolution} from '~/index';
const validApiKey = process.env.API_KEY||'YOUR-VALID-IUBENDA-API-KEY';
const validApiKey = process.env.API_KEY || 'YOUR-VALID-IUBENDA-API-KEY';
const invalidApiKey = 'invalid';

@@ -6,0 +6,0 @@

import {get, post, put, SuperAgentRequest} from 'superagent';
import {ConsentExtended, ConsentPostResponse, ConsentResponse, ConsentsQueryParameters} from '~/consent';
import {Subject, SubjectPostResponse, SubjectQueryParameters, SubjectResponse} from '~/subject';
export * from '~/consent';
export * from '~/subject';
//region consent
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?: null;
/**
* 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;
}
//endregion
//region subject
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;
}
//endregion
export interface ResponseError {

@@ -49,3 +280,3 @@ error: boolean;

private async sendRequest(request: SuperAgentRequest): Promise<ResponseError | any> {
private static async sendRequest(request: SuperAgentRequest): Promise<ResponseError | any> {
const response = await request;

@@ -64,11 +295,11 @@ if (response.status < 300) {

}
return await this.sendRequest(req);
return await IubendaConsentSolution.sendRequest(req);
}
async getConsent(id: string): Promise<ResponseError | ConsentExtended> {
return await this.sendRequest(this.addHeaders(get(this.generateUrl('consent/' + id))));
return await IubendaConsentSolution.sendRequest(this.addHeaders(get(this.generateUrl('consent/' + id))));
}
async createConsent(consent: ConsentExtended): Promise<ResponseError | ConsentPostResponse> {
return this.sendRequest(await this.sendRequest(this.addHeaders(post(this.generateUrl('consent')).send(consent))));
return IubendaConsentSolution.sendRequest(await IubendaConsentSolution.sendRequest(this.addHeaders(post(this.generateUrl('consent')).send(consent))));
}

@@ -81,3 +312,3 @@

}
return await this.sendRequest(req);
return await IubendaConsentSolution.sendRequest(req);
}

@@ -87,3 +318,3 @@

const req = this.addHeaders(get(this.generateUrl('subjects/' + id)));
return await this.sendRequest(req);
return await IubendaConsentSolution.sendRequest(req);
}

@@ -93,3 +324,3 @@

const req = this.addHeaders(post(this.generateUrl('subjects')).send(subject));
return await this.sendRequest(req);
return await IubendaConsentSolution.sendRequest(req);
}

@@ -99,3 +330,3 @@

const req = this.addHeaders(put(this.generateUrl('subjects/' + id)).send(subject));
return await this.sendRequest(req);
return await IubendaConsentSolution.sendRequest(req);
}

@@ -102,0 +333,0 @@ }

@@ -74,3 +74,4 @@ {

"allowSyntheticDefaultImports": true
}
},
"include": ["src/**/*"]
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc