• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prebid / Prebid.js / #287

13 Mar 2025 07:05PM UTC coverage: 90.476% (+0.04%) from 90.439%
#287

push

travis-ci

prebidjs-release
Prebid 9.35.0 release

42281 of 52980 branches covered (79.81%)

62776 of 69384 relevant lines covered (90.48%)

227.76 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.12
/modules/ceeIdSystem.js
1
/**
1✔
2
 * This module adds ceeId to the User ID module
3
 * The {@link module:modules/userId} module is required
4
 * @module modules/ceeId
5
 * @requires module:modules/userId
6
 */
7

8
import { logError } from '../src/utils.js'
9
import { ajax } from '../src/ajax.js';
10
import { MODULE_TYPE_UID } from '../src/activities/modules.js';
11
import { getStorageManager } from '../src/storageManager.js';
12
import { submodule } from '../src/hook.js';
13
import { domainOverrideToRootDomain } from '../libraries/domainOverrideToRootDomain/index.js';
14

15
/**
16
 * @typedef {import('../modules/userId/index.js').Submodule} Submodule
17
 * @typedef {import('../modules/userId/index.js').IdResponse} IdResponse
18
 */
19

20
const MODULE_NAME = 'ceeId';
1✔
21
export const storage = getStorageManager({ moduleName: MODULE_NAME, moduleType: MODULE_TYPE_UID });
1✔
22

23
/**
24
 * Reads the ID token from local storage or cookies.
25
 * @returns {string|undefined} The ID token, or undefined if not found.
26
 */
27
export const readId = tokenName => storage.getDataFromLocalStorage(tokenName) || storage.getCookie(tokenName);
8✔
28

29
/**
30
  * performs fetch to obtain id and return a value
31
  * @function fetchCeeIdToken
32
  * @param {Object} requestData The data to be sent in the request body.
33
  * @returns {Promise<string>} A promise that resolves to the fetched token.
34
  */
35
export function fetchCeeIdToken(requestData) {
36
  return new Promise((resolve, reject) => {
6✔
37
    ajax(
6✔
38
      'https://ceeid.eu/api/token/generate',
39
      {
40
        success: (response) => {
41
          try {
3✔
42
            const responseJson = JSON.parse(response);
3✔
43
            const newCeeIdToken = responseJson.value;
3✔
44
            if (newCeeIdToken) {
3✔
45
              resolve(newCeeIdToken);
2✔
46
            } else {
47
              logError(`${MODULE_NAME}: No token in response`);
1✔
48
              reject(new Error('No token in response'));
1✔
49
            }
50
          } catch (error) {
51
            logError(`${MODULE_NAME}: Server error while fetching ID`, error);
×
52
            reject(error);
×
53
          }
54
        },
55
        error: (error) => {
56
          logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
1✔
57
          reject(error);
1✔
58
        }
59
      },
60
      JSON.stringify(requestData),
61
      {
62
        method: 'POST',
63
        contentType: 'application/json'
64
      }
65
    );
66
  });
67
}
68

69
/** @type {Submodule} */
70
export const ceeIdSubmodule = {
1✔
71
  name: MODULE_NAME,
72
  gvlid: 676,
73

74
  /**
75
   * decode the stored id value for passing to bid requests
76
   * @function decode
77
   * @param {string} value
78
   * @returns {(Object)}
79
   */
80
  decode(value) {
81
    return typeof value === 'string' ? { 'ceeId': value } : undefined;
2✔
82
  },
83

84
  /**
85
   * performs action to obtain id and return a value
86
   * @function getId
87
   * @returns {(IdResponse|undefined)}
88
   */
89
  getId(config, consentData) {
90
    const { params = {}, storage = {} } = config;
3!
91
    const { name: storedCeeIdToken } = storage;
3✔
92
    const { publisherId, type, value, cookieName } = params;
3✔
93
    const { consentString } = consentData;
3✔
94
    const ceeIdToken = readId(storedCeeIdToken) || readId(cookieName);
3✔
95

96
    if (ceeIdToken) {
3✔
97
      return { id: ceeIdToken };
1✔
98
    }
99

100
    if (cookieName) return;
2✔
101

102
    if (publisherId && type && value && consentString) {
1!
103
      const requestData = {
1✔
104
        publisherId,
105
        type,
106
        value,
107
        properties: {
108
          consent: consentString
109
        },
110
      };
111
      const resp = function (callback) {
1✔
112
        fetchCeeIdToken(requestData)
1✔
113
          .then((id) => callback(id));
1✔
114
      };
115

116
      return { callback: resp };
1✔
117
    }
118
  },
119
  domainOverride: domainOverrideToRootDomain(storage, MODULE_NAME),
120
  eids: {
121
    'ceeId': {
122
      source: 'ceeid.eu',
123
      atype: 1
124
    },
125
  },
126
};
127

128
submodule('userId', ceeIdSubmodule);
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc