forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pinterest-sdk.d.ts
146 lines (129 loc) · 4.2 KB
/
pinterest-sdk.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// Type definitions for pinterest-sdk
// Project: https://assets.pinterest.com/sdk/sdk.js
// Definitions by: Adam Burmister <https://github.com/adamburmister>
// Definitions: https://github.com/adamburmister/DefinitelyTyped
declare namespace PDK {
enum OAuthScopes { 'read_public', 'write_public', 'read_relationships', 'write_relationships' }
enum HttpMethod { 'get', 'put', 'post', 'delete' }
type OauthSession = {
accessToken?: string;
scope?: string;
error?: string;
}
interface LoginOptions {
scope: string|OAuthScopes;
method?: string;
appId?: string;
cookie?: boolean;
logging?: boolean;
session?: OauthSession;
}
interface OAuthRequestParams {
accessToken?: string;
data?: any;
}
interface InitOptions {
/** Your application ID from developer.pinterest.com */
appId?: string;
cookie?: boolean;
logging?: boolean;
session?: OauthSession;
}
/**
* Get information on the currently authenticated user
* @param cb the callback export function to handle the response
*/
export function me(callback: Function): void;
/**
* Get information on the currently authenticated user
* @param path the url path
* @param cb the callback export function to handle the response
*/
export function me(path: string, callback: Function): void;
/**
* Get information on the currently authenticated user
* @param path the url path
* @param params the parameters for the request
* @param cb the callback export function to handle the response
*/
export function me(path: string, params: Object, callback: Function): void;
/**
* Make an API call to the server
*
* The path is the only required argument.
*
* @param path URL path
* @param httpMethod HTTP verb
*/
export function request(path: string, httpMethod?: string|HttpMethod, params?: OAuthRequestParams, callback?: Function): void;
/**
* Show user login dialog, and save access token
*/
export function login(options: LoginOptions, callback: Function): void;
/**
* Remove the session of the current user.
*
* Need to call login to re-connect, unless session is saved on server.
*/
export function logout(callback?: (session: OauthSession) => any): void;
/**
* Get the active session for the current user
*/
export function getSession(): OauthSession;
/**
* Save the user specified session
*/
export function setSession(session: OauthSession, callback?: (session: OauthSession) => any): void;
/**
* Initialize the library.
*
* Typical initialization enabling all optional features:
* ```
* <script src="pin-sdk.js"></script>
* <script>
* PDK.init({
* appId : 'YOUR APP ID',
* cookie : true // enable cookies to allow the server to access the session
* });
* </script>
* ```
* The best place to put this code is right before the closing
* `</body>` tag.
*
* - Asynchronous Loading -
*
* The library makes non-blocking loading of the script easy to use by
* providing the `pAsyncInit` hook. If this global export function is defined, it
* will be executed when the library is loaded:
* ```
* <div id="p-root"></div>
* <script>
* window.pAsyncInit = function() {
* PDK.init({
* appId : 'YOUR APP ID',
* cookie : true // enable cookies to allow the server to access the session
* });
* };
*
* (function() {
* var e = document.createElement('script');
* e.src = 'pin-sdk.js';
* e.async = true;
* document.getElementById('p-root').appendChild(e);
* }());
* </script>
* ```
*/
export function init(options: InitOptions): void;
/**
* Allow an unauthenticated user to pin using a popup
*
* @param imageUrl URL for image that you want to Pin.
* @param note The Pin's description.
* @param url The URL the Pin will link to when you click through.
*/
export function pin(imageUrl: string, note: string, url: string, callback: Function): void;
}
declare module 'pinterest-sdk' {
export = PDK;
}