Skip to content

Commit ac812db

Browse files
authored
feat: Introduce tokenize client side API (#123)
1 parent 15f718a commit ac812db

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lib/edge/tokenize.ts

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { OptableConfig } from "../config";
2+
import { fetch } from "../core/network";
3+
import { User } from "./rtb2";
4+
5+
type TokenizeResponse = {
6+
User: User;
7+
};
8+
9+
type TokenizeRequest = {
10+
id: string;
11+
};
12+
13+
function Tokenize(config: Required<OptableConfig>, id: string): Promise<TokenizeResponse> {
14+
let request: TokenizeRequest = {
15+
id: id,
16+
};
17+
return fetch("/v1/tokenize", config, {
18+
method: "POST",
19+
headers: {
20+
"Content-Type": "application/json",
21+
},
22+
body: JSON.stringify(request),
23+
});
24+
}
25+
26+
export { Tokenize, TokenizeRequest, TokenizeResponse };
27+
export default Tokenize;

lib/sdk.ts

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
import { Witness } from "./edge/witness";
1919
import { Profile } from "./edge/profile";
2020
import { sha256 } from "js-sha256";
21+
import { Tokenize, TokenizeResponse } from "./edge/tokenize";
2122

2223
class OptableSDK {
2324
public static version = buildInfo.version;
@@ -98,6 +99,11 @@ class OptableSDK {
9899
return Profile(this.dcn, traits);
99100
}
100101

102+
async tokenize(id: string): Promise<TokenizeResponse> {
103+
await this.init;
104+
return Tokenize(this.dcn, id);
105+
}
106+
101107
static eid(email: string): string {
102108
return email ? "e:" + sha256.hex(email.toLowerCase().trim()) : "";
103109
}

0 commit comments

Comments
 (0)