@sweepbright/api-client 0.26.2 → 0.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -32
- package/dist/api-client.cjs.development.js +2 -1
- package/dist/api-client.cjs.development.js.map +1 -1
- package/dist/api-client.cjs.production.min.js.map +1 -1
- package/dist/api-client.esm.js +2 -1
- package/dist/api-client.esm.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/resources/channels.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -86,7 +86,6 @@ publication change was scheduled successfully
|
|
|
86
86
|
- **estateId** - required - the id of the estate who's publication is going to be updated
|
|
87
87
|
- **channelAccountId** - required - the id of the channel account of the publication
|
|
88
88
|
- **config** - required - a configuration object, specific for each channel account type, which information about the publication config [link](link missing)
|
|
89
|
-
<<<<<<< HEAD
|
|
90
89
|
|
|
91
90
|
### Estates - unpublishPublication
|
|
92
91
|
|
|
@@ -167,39 +166,21 @@ Returns a company. Takes a single `options` parameter and returns a promise with
|
|
|
167
166
|
|
|
168
167
|
- **companyId** - required - the id of the company to return
|
|
169
168
|
- **includes** - optional - a list of includes to return
|
|
170
|
-
=======
|
|
171
|
-
|
|
172
|
-
### Estates - unpublishPublication
|
|
173
|
-
|
|
174
|
-
Allows to remove an existing property publication, requires to be authorized
|
|
175
|
-
with a user token. Takes a single `options` parameter and returns an empty response if the
|
|
176
|
-
publication change was scheduled successfully
|
|
177
|
-
|
|
178
|
-
#### Options object
|
|
179
|
-
|
|
180
|
-
- **estateId** - required - the id of the estate who's publication is going to be updated
|
|
181
|
-
- **channelAccountId** - required - the id of the channel account of the publication
|
|
182
|
-
|
|
183
|
-
### Contacts - getOne
|
|
184
|
-
|
|
185
|
-
Takes a single `options` parameter and returns a promise with the contact data
|
|
186
|
-
|
|
187
|
-
#### Options object
|
|
188
|
-
|
|
189
|
-
- **contactId** - required - the id of the contact to return
|
|
190
|
-
|
|
191
|
-
### Contacts - getAll
|
|
192
|
-
|
|
193
|
-
Takes a single `options` parameter and returns a promise with a paginated list of contacts for a specific company
|
|
194
|
-
|
|
195
|
-
#### Options object
|
|
196
|
-
|
|
197
|
-
- **companyId** - required - the id of the company from which to get the contacts
|
|
198
|
-
- **page** - optional - when paginating the request, allows you specify the page you want to get
|
|
199
|
-
- **limit** - optional - when paginating the request, allows you specify the number of items per page (defaults to 10)
|
|
200
|
-
>>>>>>> 2c8f69d889eab75b1bb5afcdc3cca6b1d498fd4d
|
|
201
169
|
|
|
202
170
|
## Development
|
|
203
171
|
|
|
204
172
|
This repository was initialized using [TSDX](https://github.com/formium/tsdx).
|
|
205
173
|
Check their docs for information about the different commands available.
|
|
174
|
+
|
|
175
|
+
## Publication
|
|
176
|
+
|
|
177
|
+
Publication is configured in Github Actions. The flow is the following: "Version Tag -> Github Release".
|
|
178
|
+
|
|
179
|
+
In `master` branch:
|
|
180
|
+
- run `yarn version` and select a new version
|
|
181
|
+
- yarn will create a commit and a version tag
|
|
182
|
+
- push the changes together with tag
|
|
183
|
+
- go to [Releases / Tags](https://github.com/sweepbright/api-client-js/tags)
|
|
184
|
+
- find your new tag and click "Create Release From Tag" button
|
|
185
|
+
- save the release
|
|
186
|
+
- go to [Actions](https://github.com/sweepbright/api-client-js/actions) and make sure the NPM package is being published
|
|
@@ -320,7 +320,8 @@ function createClient(conf) {
|
|
|
320
320
|
var _auth = null;
|
|
321
321
|
var httpClient = axios.create({
|
|
322
322
|
baseURL: envHosts[env]
|
|
323
|
-
});
|
|
323
|
+
}); //TODO: getData here is an antipattern. Interceptor should not change a type of response
|
|
324
|
+
|
|
324
325
|
httpClient.interceptors.response.use(getData, handleRequestFailure);
|
|
325
326
|
|
|
326
327
|
if (version) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.cjs.development.js","sources":["../src/types.ts","../src/utils.ts","../src/resources/leads.ts","../src/resources/channels.ts","../src/resources/estates.ts","../src/resources/channel_accounts.ts","../src/resources/companies.ts","../src/resources/contacts.ts","../src/resources/contact_preferences.ts","../src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\n\nexport type ClientConf = {\n clientId?: string;\n clientSecret?: string;\n env?: Env;\n version?: string;\n};\n\nexport type InitConf = {\n scopes?: string[];\n};\n\nexport enum TokenType {\n USER_TOKEN,\n API_TOKEN,\n}\n\nexport type Auth = {\n token: string;\n expiresIn?: string;\n type: TokenType;\n};\n\nexport type Maybe<T> = T | null;\n\nexport type ClientCtx = {\n checkAuth: (tokenType: TokenType) => void;\n httpClient: AxiosInstance;\n};\n\nexport enum Env {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEV = 'dev',\n}\n","export function getData(response: any) {\n return response.data;\n}\n\nexport function handleRequestFailure(exception: {\n response?: {\n status: number;\n data: any;\n };\n}) {\n if (exception.response) {\n const {\n response: { status, data },\n } = exception;\n\n const error: any = new Error(`${status}: ${JSON.stringify(data)}`);\n // remove parts of the stack trace so the error message (codeframe) shows up\n // at the code where the actual problem is.\n error.stack = (error.stack || '')\n .split('\\n')\n .filter(\n (line: string) =>\n !line.includes('at handleRequestFailure') &&\n !line.includes('at processTicksAndRejections')\n )\n .join('\\n');\n\n error.status = status;\n error.data = data;\n\n return Promise.reject(error);\n } else {\n return Promise.reject(exception);\n }\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function createLead(attributes: {\n firstName?: string;\n lastName: string;\n propertyId: string;\n email?: string;\n phone?: string;\n message: string;\n portal: string;\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n const {\n firstName,\n lastName,\n propertyId,\n email,\n phone,\n message,\n portal,\n } = attributes;\n\n return ctx.httpClient.put(`estates/${propertyId}/leads`, {\n first_name: firstName,\n last_name: lastName,\n message,\n email,\n phone,\n source_type: 'channel',\n external_source: portal,\n location_preference: attributes.location_preference,\n });\n }\n\n function createUnassignedLead(\n companyId: string,\n attributes: {\n first_name: string;\n last_name: string;\n phone: string;\n email: string;\n message: string;\n source_type: 'channel';\n external_source: string;\n preferences?: {\n types: string[];\n negotiation: 'sale' | 'let';\n condition: string;\n min_price?: number;\n max_price?: number;\n wishes: string[];\n min_rooms: number;\n locale: string;\n };\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`companies/${companyId}/leads`, attributes);\n }\n\n return { createLead, createUnassignedLead };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ninterface ReferenceDetails {\n reference_code: string;\n estate_id: string;\n channel_id: string;\n channel_account_id: string;\n company_id: string;\n}\n\nexport interface ChannelsResolveReferencesResult {\n data: ReferenceDetails[];\n}\n\nexport default function(ctx: ClientCtx) {\n /**\n * @deprecated use channels.resolveReferences()\n */\n async function getPropertyIdFromReference(\n channel: string,\n referenceId: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/channels/${channel}/channel-references/${referenceId}`;\n\n return ctx.httpClient.get(endpoint);\n }\n\n /**\n * @param channel_id Channel ID, for example, `\"immoweb\"` or `\"immovlan\"` etc\n * @param reference_code Reference\n * @param company_id Company ID\n */\n async function resolveReferences(\n channel_id: string,\n reference_code: string,\n company_id?: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-references`;\n\n return ctx.httpClient.get<ChannelsResolveReferencesResult>(endpoint, {\n params: {\n channel_id,\n reference_code,\n company_id,\n },\n });\n }\n\n return { getPropertyIdFromReference, resolveReferences };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ntype EstateInclude =\n | 'item.settings'\n | 'item.office.settings'\n | 'item.channels'\n | 'item.project.settings'\n | 'item.project.office.settings'\n | 'item.project.properties.office.settings'\n | 'item.project.properties.settings'\n | 'item.properties.settings'\n | 'item.properties.office.settings';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: {\n estateId: string;\n companyId: string;\n includes?: EstateInclude[];\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient\n .get(`/services/estates/${attributes.estateId}`, {\n params: {\n includes: attributes.includes ?? [],\n },\n })\n .then(res => res.data);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n archived?: boolean;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/estates`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n archived: attributes.archived,\n },\n }\n );\n }\n\n function getUnits(\n projectId: string,\n { page, limit }: { page?: number; limit?: number } = {}\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/projects/${projectId}/units`, {\n params: {\n page,\n limit,\n },\n });\n }\n\n function createPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.post(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function updatePublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.put(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function unpublishPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.delete(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`\n );\n }\n\n function scheduleVisit(\n estateId: string,\n attributes: {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n preferences?: {\n locale: string;\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.put(\n `/properties/${estateId}/schedule-visit`,\n attributes\n );\n }\n\n function unstable_setPublicationUrl({\n estateId,\n url,\n }: {\n estateId: string;\n url: string;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`/estates/${estateId}/website-url`, {\n published_url: url,\n });\n }\n\n return {\n getOne,\n getAll,\n getUnits,\n createPublication,\n updatePublication,\n unpublishPublication,\n scheduleVisit,\n unstable_setPublicationUrl,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n async function getAll({ companyId }: { companyId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/companies/${companyId}/channel-accounts`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function get({ channelAccountId }: { channelAccountId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-accounts/${channelAccountId}`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function getEstateHash({\n estateId,\n channelAccountId,\n }: {\n estateId: string;\n channelAccountId: string;\n }): Promise<{ hash: string }> {\n const endpoint = `services/estates/${estateId}/channel-accounts/${channelAccountId}/hash`;\n const response = await ctx.httpClient.post(endpoint);\n return response.data;\n }\n\n return { getAll, get, getEstateHash } as const;\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function get(attributes: { companyId: string; includes?: string[] }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.get(`/companies/${attributes.companyId}`, {\n params: {\n includes: attributes.includes?.join(','),\n },\n });\n }\n\n return { get };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/contacts/${attributes.contactId}`);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/contacts`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n },\n }\n );\n }\n\n return {\n getOne,\n getAll,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function contact_preferences(ctx: ClientCtx) {\n function getAll(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/contacts/${attributes.contactId}/preferences`\n );\n }\n\n return {\n getAll,\n };\n}\n","import axios from 'axios';\nimport invariant from 'tiny-invariant';\nimport { Auth, ClientConf, Env, InitConf, Maybe, TokenType } from './types';\nimport { getData, handleRequestFailure } from './utils';\nimport leads from './resources/leads';\nimport channels from './resources/channels';\nimport estates from './resources/estates';\nimport channelAccounts from './resources/channel_accounts';\nimport companies from './resources/companies';\nimport contacts from './resources/contacts';\nimport contact_preferences from './resources/contact_preferences';\n\nconst envHosts: Record<Env, string> = {\n [Env.PRODUCTION]: 'https://api.sweepbright.com',\n [Env.STAGING]: 'https://api.staging.sweepbright.com',\n [Env.DEV]: 'https://api.dev.sweepbright.com',\n};\n\nfunction createClient(conf: ClientConf) {\n const { clientId, clientSecret, env = Env.PRODUCTION, version } = conf;\n let _auth: Maybe<Auth> = null;\n\n const httpClient = axios.create({\n baseURL: envHosts[env],\n });\n\n httpClient.interceptors.response.use(getData, handleRequestFailure);\n if (version) {\n httpClient.defaults.headers.common[\n 'Accept'\n ] = `application/vnd.sweepbright.${version}+json`;\n }\n\n const ctx = {\n httpClient,\n checkAuth(tokenType: TokenType) {\n if (!_auth) {\n throw new Error('client is not authenticated');\n }\n\n if (_auth.type !== tokenType) {\n throw new Error('authenticated with invalid token type');\n }\n },\n };\n\n const client = {\n authorize(config: InitConf = {}): Promise<Client> {\n const {\n scopes = ['companies:read', 'properties:download', 'lead_info:write'],\n } = config;\n\n invariant(clientId, 'missing client id');\n invariant(clientSecret, 'missing client secret');\n\n return httpClient\n .post<\n any,\n {\n access_token: string;\n expires_in: string;\n }\n >('/auth/access-token', {\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n scope: scopes.join(','),\n })\n .then(({ access_token, expires_in }) => {\n invariant(access_token, 'access token should be defined');\n invariant(expires_in, 'expires_in should be defined');\n _auth = {\n token: access_token,\n expiresIn: expires_in,\n type: TokenType.API_TOKEN,\n };\n\n // https://github.com/axios/axios#custom-instance-defaults\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n return client;\n });\n },\n withUserToken: async (accessToken: string) => {\n _auth = {\n token: accessToken,\n type: TokenType.USER_TOKEN,\n };\n\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n\n return client;\n },\n leads: leads(ctx),\n channels: channels(ctx),\n estates: estates(ctx),\n channelAccounts: channelAccounts(ctx),\n companies: companies(ctx),\n contacts: contacts(ctx),\n contactPreferences: contact_preferences(ctx),\n };\n\n return client;\n}\n\ninterface Client extends ReturnType<typeof createClient> {}\n\nexport { createClient, Env, Client };\n"],"names":["TokenType","Env","getData","response","data","handleRequestFailure","exception","status","error","Error","JSON","stringify","stack","split","filter","line","includes","join","Promise","reject","ctx","createLead","attributes","checkAuth","API_TOKEN","firstName","lastName","propertyId","email","phone","message","portal","httpClient","put","first_name","last_name","source_type","external_source","location_preference","createUnassignedLead","companyId","resolveReferences","channel_id","reference_code","company_id","endpoint","get","params","getPropertyIdFromReference","channel","referenceId","getOne","estateId","then","res","getAll","page","limit","archived","getUnits","projectId","createPublication","USER_TOKEN","post","channelAccountId","config","updatePublication","unpublishPublication","scheduleVisit","unstable_setPublicationUrl","url","published_url","getEstateHash","contactId","contact_preferences","envHosts","PRODUCTION","STAGING","DEV","createClient","conf","clientId","clientSecret","env","version","_auth","axios","create","baseURL","interceptors","use","defaults","headers","common","tokenType","type","client","authorize","scopes","invariant","client_id","client_secret","grant_type","scope","access_token","expires_in","token","expiresIn","withUserToken","accessToken","leads","channels","estates","channelAccounts","companies","contacts","contactPreferences"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.cjs.development.js","sources":["../src/types.ts","../src/utils.ts","../src/resources/leads.ts","../src/resources/channels.ts","../src/resources/estates.ts","../src/resources/channel_accounts.ts","../src/resources/companies.ts","../src/resources/contacts.ts","../src/resources/contact_preferences.ts","../src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\n\nexport type ClientConf = {\n clientId?: string;\n clientSecret?: string;\n env?: Env;\n version?: string;\n};\n\nexport type InitConf = {\n scopes?: string[];\n};\n\nexport enum TokenType {\n USER_TOKEN,\n API_TOKEN,\n}\n\nexport type Auth = {\n token: string;\n expiresIn?: string;\n type: TokenType;\n};\n\nexport type Maybe<T> = T | null;\n\nexport type ClientCtx = {\n checkAuth: (tokenType: TokenType) => void;\n httpClient: AxiosInstance;\n};\n\nexport enum Env {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEV = 'dev',\n}\n","export function getData(response: any) {\n return response.data;\n}\n\nexport function handleRequestFailure(exception: {\n response?: {\n status: number;\n data: any;\n };\n}) {\n if (exception.response) {\n const {\n response: { status, data },\n } = exception;\n\n const error: any = new Error(`${status}: ${JSON.stringify(data)}`);\n // remove parts of the stack trace so the error message (codeframe) shows up\n // at the code where the actual problem is.\n error.stack = (error.stack || '')\n .split('\\n')\n .filter(\n (line: string) =>\n !line.includes('at handleRequestFailure') &&\n !line.includes('at processTicksAndRejections')\n )\n .join('\\n');\n\n error.status = status;\n error.data = data;\n\n return Promise.reject(error);\n } else {\n return Promise.reject(exception);\n }\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function createLead(attributes: {\n firstName?: string;\n lastName: string;\n propertyId: string;\n email?: string;\n phone?: string;\n message: string;\n portal: string;\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n const {\n firstName,\n lastName,\n propertyId,\n email,\n phone,\n message,\n portal,\n } = attributes;\n\n return ctx.httpClient.put(`estates/${propertyId}/leads`, {\n first_name: firstName,\n last_name: lastName,\n message,\n email,\n phone,\n source_type: 'channel',\n external_source: portal,\n location_preference: attributes.location_preference,\n });\n }\n\n function createUnassignedLead(\n companyId: string,\n attributes: {\n first_name: string;\n last_name: string;\n phone: string;\n email: string;\n message: string;\n source_type: 'channel';\n external_source: string;\n preferences?: {\n types: string[];\n negotiation: 'sale' | 'let';\n condition: string;\n min_price?: number;\n max_price?: number;\n wishes: string[];\n min_rooms: number;\n locale: string;\n };\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`companies/${companyId}/leads`, attributes);\n }\n\n return { createLead, createUnassignedLead };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ninterface ReferenceDetails {\n reference_code: string;\n estate_id: string;\n channel_id: string;\n channel_account_id: string;\n company_id: string;\n}\n\nexport interface ChannelsResolveReferencesResult {\n data: ReferenceDetails[];\n}\n\nexport default function(ctx: ClientCtx) {\n /**\n * @deprecated use channels.resolveReferences()\n */\n async function getPropertyIdFromReference(\n channel: string,\n referenceId: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/channels/${channel}/channel-references/${referenceId}`;\n\n return ctx.httpClient.get(endpoint);\n }\n\n /**\n * @param channel_id Channel ID, for example, `\"immoweb\"` or `\"immovlan\"` etc\n * @param reference_code Reference\n * @param company_id Company ID\n */\n async function resolveReferences(\n channel_id: string,\n reference_code: string,\n company_id?: string\n ): Promise<ChannelsResolveReferencesResult> {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-references`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n channel_id,\n reference_code,\n company_id,\n },\n });\n }\n\n return { getPropertyIdFromReference, resolveReferences };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ntype EstateInclude =\n | 'item.settings'\n | 'item.office.settings'\n | 'item.channels'\n | 'item.project.settings'\n | 'item.project.office.settings'\n | 'item.project.properties.office.settings'\n | 'item.project.properties.settings'\n | 'item.properties.settings'\n | 'item.properties.office.settings';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: {\n estateId: string;\n companyId: string;\n includes?: EstateInclude[];\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient\n .get(`/services/estates/${attributes.estateId}`, {\n params: {\n includes: attributes.includes ?? [],\n },\n })\n .then(res => res.data);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n archived?: boolean;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/estates`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n archived: attributes.archived,\n },\n }\n );\n }\n\n function getUnits(\n projectId: string,\n { page, limit }: { page?: number; limit?: number } = {}\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/projects/${projectId}/units`, {\n params: {\n page,\n limit,\n },\n });\n }\n\n function createPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.post(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function updatePublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.put(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function unpublishPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.delete(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`\n );\n }\n\n function scheduleVisit(\n estateId: string,\n attributes: {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n preferences?: {\n locale: string;\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.put(\n `/properties/${estateId}/schedule-visit`,\n attributes\n );\n }\n\n function unstable_setPublicationUrl({\n estateId,\n url,\n }: {\n estateId: string;\n url: string;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`/estates/${estateId}/website-url`, {\n published_url: url,\n });\n }\n\n return {\n getOne,\n getAll,\n getUnits,\n createPublication,\n updatePublication,\n unpublishPublication,\n scheduleVisit,\n unstable_setPublicationUrl,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n async function getAll({ companyId }: { companyId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/companies/${companyId}/channel-accounts`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function get({ channelAccountId }: { channelAccountId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-accounts/${channelAccountId}`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function getEstateHash({\n estateId,\n channelAccountId,\n }: {\n estateId: string;\n channelAccountId: string;\n }): Promise<{ hash: string }> {\n const endpoint = `services/estates/${estateId}/channel-accounts/${channelAccountId}/hash`;\n const response = await ctx.httpClient.post(endpoint);\n return response.data;\n }\n\n return { getAll, get, getEstateHash } as const;\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function get(attributes: { companyId: string; includes?: string[] }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.get(`/companies/${attributes.companyId}`, {\n params: {\n includes: attributes.includes?.join(','),\n },\n });\n }\n\n return { get };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/contacts/${attributes.contactId}`);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/contacts`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n },\n }\n );\n }\n\n return {\n getOne,\n getAll,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function contact_preferences(ctx: ClientCtx) {\n function getAll(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/contacts/${attributes.contactId}/preferences`\n );\n }\n\n return {\n getAll,\n };\n}\n","import axios from 'axios';\nimport invariant from 'tiny-invariant';\nimport { Auth, ClientConf, Env, InitConf, Maybe, TokenType } from './types';\nimport { getData, handleRequestFailure } from './utils';\nimport leads from './resources/leads';\nimport channels from './resources/channels';\nimport estates from './resources/estates';\nimport channelAccounts from './resources/channel_accounts';\nimport companies from './resources/companies';\nimport contacts from './resources/contacts';\nimport contact_preferences from './resources/contact_preferences';\n\nconst envHosts: Record<Env, string> = {\n [Env.PRODUCTION]: 'https://api.sweepbright.com',\n [Env.STAGING]: 'https://api.staging.sweepbright.com',\n [Env.DEV]: 'https://api.dev.sweepbright.com',\n};\n\nfunction createClient(conf: ClientConf) {\n const { clientId, clientSecret, env = Env.PRODUCTION, version } = conf;\n let _auth: Maybe<Auth> = null;\n\n const httpClient = axios.create({\n baseURL: envHosts[env],\n });\n\n //TODO: getData here is an antipattern. Interceptor should not change a type of response\n httpClient.interceptors.response.use(getData, handleRequestFailure);\n if (version) {\n httpClient.defaults.headers.common[\n 'Accept'\n ] = `application/vnd.sweepbright.${version}+json`;\n }\n\n const ctx = {\n httpClient,\n checkAuth(tokenType: TokenType) {\n if (!_auth) {\n throw new Error('client is not authenticated');\n }\n\n if (_auth.type !== tokenType) {\n throw new Error('authenticated with invalid token type');\n }\n },\n };\n\n const client = {\n authorize(config: InitConf = {}): Promise<Client> {\n const {\n scopes = ['companies:read', 'properties:download', 'lead_info:write'],\n } = config;\n\n invariant(clientId, 'missing client id');\n invariant(clientSecret, 'missing client secret');\n\n return httpClient\n .post<\n any,\n {\n access_token: string;\n expires_in: string;\n }\n >('/auth/access-token', {\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n scope: scopes.join(','),\n })\n .then(({ access_token, expires_in }) => {\n invariant(access_token, 'access token should be defined');\n invariant(expires_in, 'expires_in should be defined');\n _auth = {\n token: access_token,\n expiresIn: expires_in,\n type: TokenType.API_TOKEN,\n };\n\n // https://github.com/axios/axios#custom-instance-defaults\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n return client;\n });\n },\n withUserToken: async (accessToken: string) => {\n _auth = {\n token: accessToken,\n type: TokenType.USER_TOKEN,\n };\n\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n\n return client;\n },\n leads: leads(ctx),\n channels: channels(ctx),\n estates: estates(ctx),\n channelAccounts: channelAccounts(ctx),\n companies: companies(ctx),\n contacts: contacts(ctx),\n contactPreferences: contact_preferences(ctx),\n };\n\n return client;\n}\n\ninterface Client extends ReturnType<typeof createClient> {}\n\nexport { createClient, Env, Client };\n"],"names":["TokenType","Env","getData","response","data","handleRequestFailure","exception","status","error","Error","JSON","stringify","stack","split","filter","line","includes","join","Promise","reject","ctx","createLead","attributes","checkAuth","API_TOKEN","firstName","lastName","propertyId","email","phone","message","portal","httpClient","put","first_name","last_name","source_type","external_source","location_preference","createUnassignedLead","companyId","resolveReferences","channel_id","reference_code","company_id","endpoint","get","params","getPropertyIdFromReference","channel","referenceId","getOne","estateId","then","res","getAll","page","limit","archived","getUnits","projectId","createPublication","USER_TOKEN","post","channelAccountId","config","updatePublication","unpublishPublication","scheduleVisit","unstable_setPublicationUrl","url","published_url","getEstateHash","contactId","contact_preferences","envHosts","PRODUCTION","STAGING","DEV","createClient","conf","clientId","clientSecret","env","version","_auth","axios","create","baseURL","interceptors","use","defaults","headers","common","tokenType","type","client","authorize","scopes","invariant","client_id","client_secret","grant_type","scope","access_token","expires_in","token","expiresIn","withUserToken","accessToken","leads","channels","estates","channelAccounts","companies","contacts","contactPreferences"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.cjs.production.min.js","sources":["../src/types.ts","../src/utils.ts","../src/resources/leads.ts","../src/resources/channels.ts","../src/resources/estates.ts","../src/resources/channel_accounts.ts","../src/resources/companies.ts","../src/resources/contacts.ts","../src/resources/contact_preferences.ts","../src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\n\nexport type ClientConf = {\n clientId?: string;\n clientSecret?: string;\n env?: Env;\n version?: string;\n};\n\nexport type InitConf = {\n scopes?: string[];\n};\n\nexport enum TokenType {\n USER_TOKEN,\n API_TOKEN,\n}\n\nexport type Auth = {\n token: string;\n expiresIn?: string;\n type: TokenType;\n};\n\nexport type Maybe<T> = T | null;\n\nexport type ClientCtx = {\n checkAuth: (tokenType: TokenType) => void;\n httpClient: AxiosInstance;\n};\n\nexport enum Env {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEV = 'dev',\n}\n","export function getData(response: any) {\n return response.data;\n}\n\nexport function handleRequestFailure(exception: {\n response?: {\n status: number;\n data: any;\n };\n}) {\n if (exception.response) {\n const {\n response: { status, data },\n } = exception;\n\n const error: any = new Error(`${status}: ${JSON.stringify(data)}`);\n // remove parts of the stack trace so the error message (codeframe) shows up\n // at the code where the actual problem is.\n error.stack = (error.stack || '')\n .split('\\n')\n .filter(\n (line: string) =>\n !line.includes('at handleRequestFailure') &&\n !line.includes('at processTicksAndRejections')\n )\n .join('\\n');\n\n error.status = status;\n error.data = data;\n\n return Promise.reject(error);\n } else {\n return Promise.reject(exception);\n }\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function createLead(attributes: {\n firstName?: string;\n lastName: string;\n propertyId: string;\n email?: string;\n phone?: string;\n message: string;\n portal: string;\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n const {\n firstName,\n lastName,\n propertyId,\n email,\n phone,\n message,\n portal,\n } = attributes;\n\n return ctx.httpClient.put(`estates/${propertyId}/leads`, {\n first_name: firstName,\n last_name: lastName,\n message,\n email,\n phone,\n source_type: 'channel',\n external_source: portal,\n location_preference: attributes.location_preference,\n });\n }\n\n function createUnassignedLead(\n companyId: string,\n attributes: {\n first_name: string;\n last_name: string;\n phone: string;\n email: string;\n message: string;\n source_type: 'channel';\n external_source: string;\n preferences?: {\n types: string[];\n negotiation: 'sale' | 'let';\n condition: string;\n min_price?: number;\n max_price?: number;\n wishes: string[];\n min_rooms: number;\n locale: string;\n };\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`companies/${companyId}/leads`, attributes);\n }\n\n return { createLead, createUnassignedLead };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ninterface ReferenceDetails {\n reference_code: string;\n estate_id: string;\n channel_id: string;\n channel_account_id: string;\n company_id: string;\n}\n\nexport interface ChannelsResolveReferencesResult {\n data: ReferenceDetails[];\n}\n\nexport default function(ctx: ClientCtx) {\n /**\n * @deprecated use channels.resolveReferences()\n */\n async function getPropertyIdFromReference(\n channel: string,\n referenceId: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/channels/${channel}/channel-references/${referenceId}`;\n\n return ctx.httpClient.get(endpoint);\n }\n\n /**\n * @param channel_id Channel ID, for example, `\"immoweb\"` or `\"immovlan\"` etc\n * @param reference_code Reference\n * @param company_id Company ID\n */\n async function resolveReferences(\n channel_id: string,\n reference_code: string,\n company_id?: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-references`;\n\n return ctx.httpClient.get<ChannelsResolveReferencesResult>(endpoint, {\n params: {\n channel_id,\n reference_code,\n company_id,\n },\n });\n }\n\n return { getPropertyIdFromReference, resolveReferences };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ntype EstateInclude =\n | 'item.settings'\n | 'item.office.settings'\n | 'item.channels'\n | 'item.project.settings'\n | 'item.project.office.settings'\n | 'item.project.properties.office.settings'\n | 'item.project.properties.settings'\n | 'item.properties.settings'\n | 'item.properties.office.settings';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: {\n estateId: string;\n companyId: string;\n includes?: EstateInclude[];\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient\n .get(`/services/estates/${attributes.estateId}`, {\n params: {\n includes: attributes.includes ?? [],\n },\n })\n .then(res => res.data);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n archived?: boolean;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/estates`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n archived: attributes.archived,\n },\n }\n );\n }\n\n function getUnits(\n projectId: string,\n { page, limit }: { page?: number; limit?: number } = {}\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/projects/${projectId}/units`, {\n params: {\n page,\n limit,\n },\n });\n }\n\n function createPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.post(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function updatePublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.put(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function unpublishPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.delete(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`\n );\n }\n\n function scheduleVisit(\n estateId: string,\n attributes: {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n preferences?: {\n locale: string;\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.put(\n `/properties/${estateId}/schedule-visit`,\n attributes\n );\n }\n\n function unstable_setPublicationUrl({\n estateId,\n url,\n }: {\n estateId: string;\n url: string;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`/estates/${estateId}/website-url`, {\n published_url: url,\n });\n }\n\n return {\n getOne,\n getAll,\n getUnits,\n createPublication,\n updatePublication,\n unpublishPublication,\n scheduleVisit,\n unstable_setPublicationUrl,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n async function getAll({ companyId }: { companyId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/companies/${companyId}/channel-accounts`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function get({ channelAccountId }: { channelAccountId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-accounts/${channelAccountId}`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function getEstateHash({\n estateId,\n channelAccountId,\n }: {\n estateId: string;\n channelAccountId: string;\n }): Promise<{ hash: string }> {\n const endpoint = `services/estates/${estateId}/channel-accounts/${channelAccountId}/hash`;\n const response = await ctx.httpClient.post(endpoint);\n return response.data;\n }\n\n return { getAll, get, getEstateHash } as const;\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function get(attributes: { companyId: string; includes?: string[] }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.get(`/companies/${attributes.companyId}`, {\n params: {\n includes: attributes.includes?.join(','),\n },\n });\n }\n\n return { get };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/contacts/${attributes.contactId}`);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/contacts`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n },\n }\n );\n }\n\n return {\n getOne,\n getAll,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function contact_preferences(ctx: ClientCtx) {\n function getAll(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/contacts/${attributes.contactId}/preferences`\n );\n }\n\n return {\n getAll,\n };\n}\n","import axios from 'axios';\nimport invariant from 'tiny-invariant';\nimport { Auth, ClientConf, Env, InitConf, Maybe, TokenType } from './types';\nimport { getData, handleRequestFailure } from './utils';\nimport leads from './resources/leads';\nimport channels from './resources/channels';\nimport estates from './resources/estates';\nimport channelAccounts from './resources/channel_accounts';\nimport companies from './resources/companies';\nimport contacts from './resources/contacts';\nimport contact_preferences from './resources/contact_preferences';\n\nconst envHosts: Record<Env, string> = {\n [Env.PRODUCTION]: 'https://api.sweepbright.com',\n [Env.STAGING]: 'https://api.staging.sweepbright.com',\n [Env.DEV]: 'https://api.dev.sweepbright.com',\n};\n\nfunction createClient(conf: ClientConf) {\n const { clientId, clientSecret, env = Env.PRODUCTION, version } = conf;\n let _auth: Maybe<Auth> = null;\n\n const httpClient = axios.create({\n baseURL: envHosts[env],\n });\n\n httpClient.interceptors.response.use(getData, handleRequestFailure);\n if (version) {\n httpClient.defaults.headers.common[\n 'Accept'\n ] = `application/vnd.sweepbright.${version}+json`;\n }\n\n const ctx = {\n httpClient,\n checkAuth(tokenType: TokenType) {\n if (!_auth) {\n throw new Error('client is not authenticated');\n }\n\n if (_auth.type !== tokenType) {\n throw new Error('authenticated with invalid token type');\n }\n },\n };\n\n const client = {\n authorize(config: InitConf = {}): Promise<Client> {\n const {\n scopes = ['companies:read', 'properties:download', 'lead_info:write'],\n } = config;\n\n invariant(clientId, 'missing client id');\n invariant(clientSecret, 'missing client secret');\n\n return httpClient\n .post<\n any,\n {\n access_token: string;\n expires_in: string;\n }\n >('/auth/access-token', {\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n scope: scopes.join(','),\n })\n .then(({ access_token, expires_in }) => {\n invariant(access_token, 'access token should be defined');\n invariant(expires_in, 'expires_in should be defined');\n _auth = {\n token: access_token,\n expiresIn: expires_in,\n type: TokenType.API_TOKEN,\n };\n\n // https://github.com/axios/axios#custom-instance-defaults\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n return client;\n });\n },\n withUserToken: async (accessToken: string) => {\n _auth = {\n token: accessToken,\n type: TokenType.USER_TOKEN,\n };\n\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n\n return client;\n },\n leads: leads(ctx),\n channels: channels(ctx),\n estates: estates(ctx),\n channelAccounts: channelAccounts(ctx),\n companies: companies(ctx),\n contacts: contacts(ctx),\n contactPreferences: contact_preferences(ctx),\n };\n\n return client;\n}\n\ninterface Client extends ReturnType<typeof createClient> {}\n\nexport { createClient, Env, Client };\n"],"names":["TokenType","Env","getData","response","data","handleRequestFailure","exception","status","error","Error","JSON","stringify","stack","split","filter","line","includes","join","Promise","reject","ctx","createLead","attributes","checkAuth","API_TOKEN","httpClient","put","propertyId","first_name","firstName","last_name","lastName","message","email","phone","source_type","external_source","portal","location_preference","createUnassignedLead","companyId","getPropertyIdFromReference","channel","referenceId","get","resolveReferences","channel_id","reference_code","company_id","params","getOne","estateId","then","res","getAll","page","limit","archived","getUnits","projectId","createPublication","USER_TOKEN","post","channelAccountId","config","updatePublication","unpublishPublication","scheduleVisit","unstable_setPublicationUrl","url","published_url","getEstateHash","_attributes$includes","contactId","contact_preferences","envHosts","PRODUCTION","STAGING","DEV","conf","clientId","clientSecret","env","version","_auth","axios","create","baseURL","interceptors","use","defaults","headers","common","tokenType","type","client","authorize","scopes","invariant","client_id","client_secret","grant_type","scope","access_token","expires_in","token","expiresIn","withUserToken","accessToken","leads","channels","estates","channelAccounts","companies","contacts","contactPreferences"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.cjs.production.min.js","sources":["../src/types.ts","../src/utils.ts","../src/resources/leads.ts","../src/resources/channels.ts","../src/resources/estates.ts","../src/resources/channel_accounts.ts","../src/resources/companies.ts","../src/resources/contacts.ts","../src/resources/contact_preferences.ts","../src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\n\nexport type ClientConf = {\n clientId?: string;\n clientSecret?: string;\n env?: Env;\n version?: string;\n};\n\nexport type InitConf = {\n scopes?: string[];\n};\n\nexport enum TokenType {\n USER_TOKEN,\n API_TOKEN,\n}\n\nexport type Auth = {\n token: string;\n expiresIn?: string;\n type: TokenType;\n};\n\nexport type Maybe<T> = T | null;\n\nexport type ClientCtx = {\n checkAuth: (tokenType: TokenType) => void;\n httpClient: AxiosInstance;\n};\n\nexport enum Env {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEV = 'dev',\n}\n","export function getData(response: any) {\n return response.data;\n}\n\nexport function handleRequestFailure(exception: {\n response?: {\n status: number;\n data: any;\n };\n}) {\n if (exception.response) {\n const {\n response: { status, data },\n } = exception;\n\n const error: any = new Error(`${status}: ${JSON.stringify(data)}`);\n // remove parts of the stack trace so the error message (codeframe) shows up\n // at the code where the actual problem is.\n error.stack = (error.stack || '')\n .split('\\n')\n .filter(\n (line: string) =>\n !line.includes('at handleRequestFailure') &&\n !line.includes('at processTicksAndRejections')\n )\n .join('\\n');\n\n error.status = status;\n error.data = data;\n\n return Promise.reject(error);\n } else {\n return Promise.reject(exception);\n }\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function createLead(attributes: {\n firstName?: string;\n lastName: string;\n propertyId: string;\n email?: string;\n phone?: string;\n message: string;\n portal: string;\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n const {\n firstName,\n lastName,\n propertyId,\n email,\n phone,\n message,\n portal,\n } = attributes;\n\n return ctx.httpClient.put(`estates/${propertyId}/leads`, {\n first_name: firstName,\n last_name: lastName,\n message,\n email,\n phone,\n source_type: 'channel',\n external_source: portal,\n location_preference: attributes.location_preference,\n });\n }\n\n function createUnassignedLead(\n companyId: string,\n attributes: {\n first_name: string;\n last_name: string;\n phone: string;\n email: string;\n message: string;\n source_type: 'channel';\n external_source: string;\n preferences?: {\n types: string[];\n negotiation: 'sale' | 'let';\n condition: string;\n min_price?: number;\n max_price?: number;\n wishes: string[];\n min_rooms: number;\n locale: string;\n };\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`companies/${companyId}/leads`, attributes);\n }\n\n return { createLead, createUnassignedLead };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ninterface ReferenceDetails {\n reference_code: string;\n estate_id: string;\n channel_id: string;\n channel_account_id: string;\n company_id: string;\n}\n\nexport interface ChannelsResolveReferencesResult {\n data: ReferenceDetails[];\n}\n\nexport default function(ctx: ClientCtx) {\n /**\n * @deprecated use channels.resolveReferences()\n */\n async function getPropertyIdFromReference(\n channel: string,\n referenceId: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/channels/${channel}/channel-references/${referenceId}`;\n\n return ctx.httpClient.get(endpoint);\n }\n\n /**\n * @param channel_id Channel ID, for example, `\"immoweb\"` or `\"immovlan\"` etc\n * @param reference_code Reference\n * @param company_id Company ID\n */\n async function resolveReferences(\n channel_id: string,\n reference_code: string,\n company_id?: string\n ): Promise<ChannelsResolveReferencesResult> {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-references`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n channel_id,\n reference_code,\n company_id,\n },\n });\n }\n\n return { getPropertyIdFromReference, resolveReferences };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ntype EstateInclude =\n | 'item.settings'\n | 'item.office.settings'\n | 'item.channels'\n | 'item.project.settings'\n | 'item.project.office.settings'\n | 'item.project.properties.office.settings'\n | 'item.project.properties.settings'\n | 'item.properties.settings'\n | 'item.properties.office.settings';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: {\n estateId: string;\n companyId: string;\n includes?: EstateInclude[];\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient\n .get(`/services/estates/${attributes.estateId}`, {\n params: {\n includes: attributes.includes ?? [],\n },\n })\n .then(res => res.data);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n archived?: boolean;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/estates`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n archived: attributes.archived,\n },\n }\n );\n }\n\n function getUnits(\n projectId: string,\n { page, limit }: { page?: number; limit?: number } = {}\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/projects/${projectId}/units`, {\n params: {\n page,\n limit,\n },\n });\n }\n\n function createPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.post(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function updatePublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.put(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function unpublishPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.delete(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`\n );\n }\n\n function scheduleVisit(\n estateId: string,\n attributes: {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n preferences?: {\n locale: string;\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.put(\n `/properties/${estateId}/schedule-visit`,\n attributes\n );\n }\n\n function unstable_setPublicationUrl({\n estateId,\n url,\n }: {\n estateId: string;\n url: string;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`/estates/${estateId}/website-url`, {\n published_url: url,\n });\n }\n\n return {\n getOne,\n getAll,\n getUnits,\n createPublication,\n updatePublication,\n unpublishPublication,\n scheduleVisit,\n unstable_setPublicationUrl,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n async function getAll({ companyId }: { companyId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/companies/${companyId}/channel-accounts`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function get({ channelAccountId }: { channelAccountId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-accounts/${channelAccountId}`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function getEstateHash({\n estateId,\n channelAccountId,\n }: {\n estateId: string;\n channelAccountId: string;\n }): Promise<{ hash: string }> {\n const endpoint = `services/estates/${estateId}/channel-accounts/${channelAccountId}/hash`;\n const response = await ctx.httpClient.post(endpoint);\n return response.data;\n }\n\n return { getAll, get, getEstateHash } as const;\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function get(attributes: { companyId: string; includes?: string[] }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.get(`/companies/${attributes.companyId}`, {\n params: {\n includes: attributes.includes?.join(','),\n },\n });\n }\n\n return { get };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/contacts/${attributes.contactId}`);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/contacts`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n },\n }\n );\n }\n\n return {\n getOne,\n getAll,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function contact_preferences(ctx: ClientCtx) {\n function getAll(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/contacts/${attributes.contactId}/preferences`\n );\n }\n\n return {\n getAll,\n };\n}\n","import axios from 'axios';\nimport invariant from 'tiny-invariant';\nimport { Auth, ClientConf, Env, InitConf, Maybe, TokenType } from './types';\nimport { getData, handleRequestFailure } from './utils';\nimport leads from './resources/leads';\nimport channels from './resources/channels';\nimport estates from './resources/estates';\nimport channelAccounts from './resources/channel_accounts';\nimport companies from './resources/companies';\nimport contacts from './resources/contacts';\nimport contact_preferences from './resources/contact_preferences';\n\nconst envHosts: Record<Env, string> = {\n [Env.PRODUCTION]: 'https://api.sweepbright.com',\n [Env.STAGING]: 'https://api.staging.sweepbright.com',\n [Env.DEV]: 'https://api.dev.sweepbright.com',\n};\n\nfunction createClient(conf: ClientConf) {\n const { clientId, clientSecret, env = Env.PRODUCTION, version } = conf;\n let _auth: Maybe<Auth> = null;\n\n const httpClient = axios.create({\n baseURL: envHosts[env],\n });\n\n //TODO: getData here is an antipattern. Interceptor should not change a type of response\n httpClient.interceptors.response.use(getData, handleRequestFailure);\n if (version) {\n httpClient.defaults.headers.common[\n 'Accept'\n ] = `application/vnd.sweepbright.${version}+json`;\n }\n\n const ctx = {\n httpClient,\n checkAuth(tokenType: TokenType) {\n if (!_auth) {\n throw new Error('client is not authenticated');\n }\n\n if (_auth.type !== tokenType) {\n throw new Error('authenticated with invalid token type');\n }\n },\n };\n\n const client = {\n authorize(config: InitConf = {}): Promise<Client> {\n const {\n scopes = ['companies:read', 'properties:download', 'lead_info:write'],\n } = config;\n\n invariant(clientId, 'missing client id');\n invariant(clientSecret, 'missing client secret');\n\n return httpClient\n .post<\n any,\n {\n access_token: string;\n expires_in: string;\n }\n >('/auth/access-token', {\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n scope: scopes.join(','),\n })\n .then(({ access_token, expires_in }) => {\n invariant(access_token, 'access token should be defined');\n invariant(expires_in, 'expires_in should be defined');\n _auth = {\n token: access_token,\n expiresIn: expires_in,\n type: TokenType.API_TOKEN,\n };\n\n // https://github.com/axios/axios#custom-instance-defaults\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n return client;\n });\n },\n withUserToken: async (accessToken: string) => {\n _auth = {\n token: accessToken,\n type: TokenType.USER_TOKEN,\n };\n\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n\n return client;\n },\n leads: leads(ctx),\n channels: channels(ctx),\n estates: estates(ctx),\n channelAccounts: channelAccounts(ctx),\n companies: companies(ctx),\n contacts: contacts(ctx),\n contactPreferences: contact_preferences(ctx),\n };\n\n return client;\n}\n\ninterface Client extends ReturnType<typeof createClient> {}\n\nexport { createClient, Env, Client };\n"],"names":["TokenType","Env","getData","response","data","handleRequestFailure","exception","status","error","Error","JSON","stringify","stack","split","filter","line","includes","join","Promise","reject","ctx","createLead","attributes","checkAuth","API_TOKEN","httpClient","put","propertyId","first_name","firstName","last_name","lastName","message","email","phone","source_type","external_source","portal","location_preference","createUnassignedLead","companyId","getPropertyIdFromReference","channel","referenceId","get","resolveReferences","channel_id","reference_code","company_id","params","getOne","estateId","then","res","getAll","page","limit","archived","getUnits","projectId","createPublication","USER_TOKEN","post","channelAccountId","config","updatePublication","unpublishPublication","scheduleVisit","unstable_setPublicationUrl","url","published_url","getEstateHash","_attributes$includes","contactId","contact_preferences","envHosts","PRODUCTION","STAGING","DEV","conf","clientId","clientSecret","env","version","_auth","axios","create","baseURL","interceptors","use","defaults","headers","common","tokenType","type","client","authorize","scopes","invariant","client_id","client_secret","grant_type","scope","access_token","expires_in","token","expiresIn","withUserToken","accessToken","leads","channels","estates","channelAccounts","companies","contacts","contactPreferences"],"mappings":"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"}
|
package/dist/api-client.esm.js
CHANGED
|
@@ -316,7 +316,8 @@ function createClient(conf) {
|
|
|
316
316
|
var _auth = null;
|
|
317
317
|
var httpClient = axios.create({
|
|
318
318
|
baseURL: envHosts[env]
|
|
319
|
-
});
|
|
319
|
+
}); //TODO: getData here is an antipattern. Interceptor should not change a type of response
|
|
320
|
+
|
|
320
321
|
httpClient.interceptors.response.use(getData, handleRequestFailure);
|
|
321
322
|
|
|
322
323
|
if (version) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.esm.js","sources":["../src/types.ts","../src/utils.ts","../src/resources/leads.ts","../src/resources/channels.ts","../src/resources/estates.ts","../src/resources/channel_accounts.ts","../src/resources/companies.ts","../src/resources/contacts.ts","../src/resources/contact_preferences.ts","../src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\n\nexport type ClientConf = {\n clientId?: string;\n clientSecret?: string;\n env?: Env;\n version?: string;\n};\n\nexport type InitConf = {\n scopes?: string[];\n};\n\nexport enum TokenType {\n USER_TOKEN,\n API_TOKEN,\n}\n\nexport type Auth = {\n token: string;\n expiresIn?: string;\n type: TokenType;\n};\n\nexport type Maybe<T> = T | null;\n\nexport type ClientCtx = {\n checkAuth: (tokenType: TokenType) => void;\n httpClient: AxiosInstance;\n};\n\nexport enum Env {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEV = 'dev',\n}\n","export function getData(response: any) {\n return response.data;\n}\n\nexport function handleRequestFailure(exception: {\n response?: {\n status: number;\n data: any;\n };\n}) {\n if (exception.response) {\n const {\n response: { status, data },\n } = exception;\n\n const error: any = new Error(`${status}: ${JSON.stringify(data)}`);\n // remove parts of the stack trace so the error message (codeframe) shows up\n // at the code where the actual problem is.\n error.stack = (error.stack || '')\n .split('\\n')\n .filter(\n (line: string) =>\n !line.includes('at handleRequestFailure') &&\n !line.includes('at processTicksAndRejections')\n )\n .join('\\n');\n\n error.status = status;\n error.data = data;\n\n return Promise.reject(error);\n } else {\n return Promise.reject(exception);\n }\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function createLead(attributes: {\n firstName?: string;\n lastName: string;\n propertyId: string;\n email?: string;\n phone?: string;\n message: string;\n portal: string;\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n const {\n firstName,\n lastName,\n propertyId,\n email,\n phone,\n message,\n portal,\n } = attributes;\n\n return ctx.httpClient.put(`estates/${propertyId}/leads`, {\n first_name: firstName,\n last_name: lastName,\n message,\n email,\n phone,\n source_type: 'channel',\n external_source: portal,\n location_preference: attributes.location_preference,\n });\n }\n\n function createUnassignedLead(\n companyId: string,\n attributes: {\n first_name: string;\n last_name: string;\n phone: string;\n email: string;\n message: string;\n source_type: 'channel';\n external_source: string;\n preferences?: {\n types: string[];\n negotiation: 'sale' | 'let';\n condition: string;\n min_price?: number;\n max_price?: number;\n wishes: string[];\n min_rooms: number;\n locale: string;\n };\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`companies/${companyId}/leads`, attributes);\n }\n\n return { createLead, createUnassignedLead };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ninterface ReferenceDetails {\n reference_code: string;\n estate_id: string;\n channel_id: string;\n channel_account_id: string;\n company_id: string;\n}\n\nexport interface ChannelsResolveReferencesResult {\n data: ReferenceDetails[];\n}\n\nexport default function(ctx: ClientCtx) {\n /**\n * @deprecated use channels.resolveReferences()\n */\n async function getPropertyIdFromReference(\n channel: string,\n referenceId: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/channels/${channel}/channel-references/${referenceId}`;\n\n return ctx.httpClient.get(endpoint);\n }\n\n /**\n * @param channel_id Channel ID, for example, `\"immoweb\"` or `\"immovlan\"` etc\n * @param reference_code Reference\n * @param company_id Company ID\n */\n async function resolveReferences(\n channel_id: string,\n reference_code: string,\n company_id?: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-references`;\n\n return ctx.httpClient.get<ChannelsResolveReferencesResult>(endpoint, {\n params: {\n channel_id,\n reference_code,\n company_id,\n },\n });\n }\n\n return { getPropertyIdFromReference, resolveReferences };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ntype EstateInclude =\n | 'item.settings'\n | 'item.office.settings'\n | 'item.channels'\n | 'item.project.settings'\n | 'item.project.office.settings'\n | 'item.project.properties.office.settings'\n | 'item.project.properties.settings'\n | 'item.properties.settings'\n | 'item.properties.office.settings';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: {\n estateId: string;\n companyId: string;\n includes?: EstateInclude[];\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient\n .get(`/services/estates/${attributes.estateId}`, {\n params: {\n includes: attributes.includes ?? [],\n },\n })\n .then(res => res.data);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n archived?: boolean;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/estates`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n archived: attributes.archived,\n },\n }\n );\n }\n\n function getUnits(\n projectId: string,\n { page, limit }: { page?: number; limit?: number } = {}\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/projects/${projectId}/units`, {\n params: {\n page,\n limit,\n },\n });\n }\n\n function createPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.post(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function updatePublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.put(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function unpublishPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.delete(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`\n );\n }\n\n function scheduleVisit(\n estateId: string,\n attributes: {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n preferences?: {\n locale: string;\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.put(\n `/properties/${estateId}/schedule-visit`,\n attributes\n );\n }\n\n function unstable_setPublicationUrl({\n estateId,\n url,\n }: {\n estateId: string;\n url: string;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`/estates/${estateId}/website-url`, {\n published_url: url,\n });\n }\n\n return {\n getOne,\n getAll,\n getUnits,\n createPublication,\n updatePublication,\n unpublishPublication,\n scheduleVisit,\n unstable_setPublicationUrl,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n async function getAll({ companyId }: { companyId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/companies/${companyId}/channel-accounts`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function get({ channelAccountId }: { channelAccountId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-accounts/${channelAccountId}`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function getEstateHash({\n estateId,\n channelAccountId,\n }: {\n estateId: string;\n channelAccountId: string;\n }): Promise<{ hash: string }> {\n const endpoint = `services/estates/${estateId}/channel-accounts/${channelAccountId}/hash`;\n const response = await ctx.httpClient.post(endpoint);\n return response.data;\n }\n\n return { getAll, get, getEstateHash } as const;\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function get(attributes: { companyId: string; includes?: string[] }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.get(`/companies/${attributes.companyId}`, {\n params: {\n includes: attributes.includes?.join(','),\n },\n });\n }\n\n return { get };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/contacts/${attributes.contactId}`);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/contacts`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n },\n }\n );\n }\n\n return {\n getOne,\n getAll,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function contact_preferences(ctx: ClientCtx) {\n function getAll(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/contacts/${attributes.contactId}/preferences`\n );\n }\n\n return {\n getAll,\n };\n}\n","import axios from 'axios';\nimport invariant from 'tiny-invariant';\nimport { Auth, ClientConf, Env, InitConf, Maybe, TokenType } from './types';\nimport { getData, handleRequestFailure } from './utils';\nimport leads from './resources/leads';\nimport channels from './resources/channels';\nimport estates from './resources/estates';\nimport channelAccounts from './resources/channel_accounts';\nimport companies from './resources/companies';\nimport contacts from './resources/contacts';\nimport contact_preferences from './resources/contact_preferences';\n\nconst envHosts: Record<Env, string> = {\n [Env.PRODUCTION]: 'https://api.sweepbright.com',\n [Env.STAGING]: 'https://api.staging.sweepbright.com',\n [Env.DEV]: 'https://api.dev.sweepbright.com',\n};\n\nfunction createClient(conf: ClientConf) {\n const { clientId, clientSecret, env = Env.PRODUCTION, version } = conf;\n let _auth: Maybe<Auth> = null;\n\n const httpClient = axios.create({\n baseURL: envHosts[env],\n });\n\n httpClient.interceptors.response.use(getData, handleRequestFailure);\n if (version) {\n httpClient.defaults.headers.common[\n 'Accept'\n ] = `application/vnd.sweepbright.${version}+json`;\n }\n\n const ctx = {\n httpClient,\n checkAuth(tokenType: TokenType) {\n if (!_auth) {\n throw new Error('client is not authenticated');\n }\n\n if (_auth.type !== tokenType) {\n throw new Error('authenticated with invalid token type');\n }\n },\n };\n\n const client = {\n authorize(config: InitConf = {}): Promise<Client> {\n const {\n scopes = ['companies:read', 'properties:download', 'lead_info:write'],\n } = config;\n\n invariant(clientId, 'missing client id');\n invariant(clientSecret, 'missing client secret');\n\n return httpClient\n .post<\n any,\n {\n access_token: string;\n expires_in: string;\n }\n >('/auth/access-token', {\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n scope: scopes.join(','),\n })\n .then(({ access_token, expires_in }) => {\n invariant(access_token, 'access token should be defined');\n invariant(expires_in, 'expires_in should be defined');\n _auth = {\n token: access_token,\n expiresIn: expires_in,\n type: TokenType.API_TOKEN,\n };\n\n // https://github.com/axios/axios#custom-instance-defaults\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n return client;\n });\n },\n withUserToken: async (accessToken: string) => {\n _auth = {\n token: accessToken,\n type: TokenType.USER_TOKEN,\n };\n\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n\n return client;\n },\n leads: leads(ctx),\n channels: channels(ctx),\n estates: estates(ctx),\n channelAccounts: channelAccounts(ctx),\n companies: companies(ctx),\n contacts: contacts(ctx),\n contactPreferences: contact_preferences(ctx),\n };\n\n return client;\n}\n\ninterface Client extends ReturnType<typeof createClient> {}\n\nexport { createClient, Env, Client };\n"],"names":["TokenType","Env","getData","response","data","handleRequestFailure","exception","status","error","Error","JSON","stringify","stack","split","filter","line","includes","join","Promise","reject","ctx","createLead","attributes","checkAuth","API_TOKEN","firstName","lastName","propertyId","email","phone","message","portal","httpClient","put","first_name","last_name","source_type","external_source","location_preference","createUnassignedLead","companyId","resolveReferences","channel_id","reference_code","company_id","endpoint","get","params","getPropertyIdFromReference","channel","referenceId","getOne","estateId","then","res","getAll","page","limit","archived","getUnits","projectId","createPublication","USER_TOKEN","post","channelAccountId","config","updatePublication","unpublishPublication","scheduleVisit","unstable_setPublicationUrl","url","published_url","getEstateHash","contactId","contact_preferences","envHosts","PRODUCTION","STAGING","DEV","createClient","conf","clientId","clientSecret","env","version","_auth","axios","create","baseURL","interceptors","use","defaults","headers","common","tokenType","type","client","authorize","scopes","invariant","client_id","client_secret","grant_type","scope","access_token","expires_in","token","expiresIn","withUserToken","accessToken","leads","channels","estates","channelAccounts","companies","contacts","contactPreferences"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.esm.js","sources":["../src/types.ts","../src/utils.ts","../src/resources/leads.ts","../src/resources/channels.ts","../src/resources/estates.ts","../src/resources/channel_accounts.ts","../src/resources/companies.ts","../src/resources/contacts.ts","../src/resources/contact_preferences.ts","../src/index.ts"],"sourcesContent":["import { AxiosInstance } from 'axios';\n\nexport type ClientConf = {\n clientId?: string;\n clientSecret?: string;\n env?: Env;\n version?: string;\n};\n\nexport type InitConf = {\n scopes?: string[];\n};\n\nexport enum TokenType {\n USER_TOKEN,\n API_TOKEN,\n}\n\nexport type Auth = {\n token: string;\n expiresIn?: string;\n type: TokenType;\n};\n\nexport type Maybe<T> = T | null;\n\nexport type ClientCtx = {\n checkAuth: (tokenType: TokenType) => void;\n httpClient: AxiosInstance;\n};\n\nexport enum Env {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEV = 'dev',\n}\n","export function getData(response: any) {\n return response.data;\n}\n\nexport function handleRequestFailure(exception: {\n response?: {\n status: number;\n data: any;\n };\n}) {\n if (exception.response) {\n const {\n response: { status, data },\n } = exception;\n\n const error: any = new Error(`${status}: ${JSON.stringify(data)}`);\n // remove parts of the stack trace so the error message (codeframe) shows up\n // at the code where the actual problem is.\n error.stack = (error.stack || '')\n .split('\\n')\n .filter(\n (line: string) =>\n !line.includes('at handleRequestFailure') &&\n !line.includes('at processTicksAndRejections')\n )\n .join('\\n');\n\n error.status = status;\n error.data = data;\n\n return Promise.reject(error);\n } else {\n return Promise.reject(exception);\n }\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function createLead(attributes: {\n firstName?: string;\n lastName: string;\n propertyId: string;\n email?: string;\n phone?: string;\n message: string;\n portal: string;\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n const {\n firstName,\n lastName,\n propertyId,\n email,\n phone,\n message,\n portal,\n } = attributes;\n\n return ctx.httpClient.put(`estates/${propertyId}/leads`, {\n first_name: firstName,\n last_name: lastName,\n message,\n email,\n phone,\n source_type: 'channel',\n external_source: portal,\n location_preference: attributes.location_preference,\n });\n }\n\n function createUnassignedLead(\n companyId: string,\n attributes: {\n first_name: string;\n last_name: string;\n phone: string;\n email: string;\n message: string;\n source_type: 'channel';\n external_source: string;\n preferences?: {\n types: string[];\n negotiation: 'sale' | 'let';\n condition: string;\n min_price?: number;\n max_price?: number;\n wishes: string[];\n min_rooms: number;\n locale: string;\n };\n location_preference?: {\n country: string;\n postal_codes: string[];\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`companies/${companyId}/leads`, attributes);\n }\n\n return { createLead, createUnassignedLead };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ninterface ReferenceDetails {\n reference_code: string;\n estate_id: string;\n channel_id: string;\n channel_account_id: string;\n company_id: string;\n}\n\nexport interface ChannelsResolveReferencesResult {\n data: ReferenceDetails[];\n}\n\nexport default function(ctx: ClientCtx) {\n /**\n * @deprecated use channels.resolveReferences()\n */\n async function getPropertyIdFromReference(\n channel: string,\n referenceId: string\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/channels/${channel}/channel-references/${referenceId}`;\n\n return ctx.httpClient.get(endpoint);\n }\n\n /**\n * @param channel_id Channel ID, for example, `\"immoweb\"` or `\"immovlan\"` etc\n * @param reference_code Reference\n * @param company_id Company ID\n */\n async function resolveReferences(\n channel_id: string,\n reference_code: string,\n company_id?: string\n ): Promise<ChannelsResolveReferencesResult> {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-references`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n channel_id,\n reference_code,\n company_id,\n },\n });\n }\n\n return { getPropertyIdFromReference, resolveReferences };\n}\n","import { ClientCtx, TokenType } from '../types';\n\ntype EstateInclude =\n | 'item.settings'\n | 'item.office.settings'\n | 'item.channels'\n | 'item.project.settings'\n | 'item.project.office.settings'\n | 'item.project.properties.office.settings'\n | 'item.project.properties.settings'\n | 'item.properties.settings'\n | 'item.properties.office.settings';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: {\n estateId: string;\n companyId: string;\n includes?: EstateInclude[];\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient\n .get(`/services/estates/${attributes.estateId}`, {\n params: {\n includes: attributes.includes ?? [],\n },\n })\n .then(res => res.data);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n archived?: boolean;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/estates`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n archived: attributes.archived,\n },\n }\n );\n }\n\n function getUnits(\n projectId: string,\n { page, limit }: { page?: number; limit?: number } = {}\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/projects/${projectId}/units`, {\n params: {\n page,\n limit,\n },\n });\n }\n\n function createPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.post(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function updatePublication(attributes: {\n estateId: string;\n channelAccountId: string;\n config: Record<string, any>;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.put(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`,\n {\n config: attributes.config,\n }\n );\n }\n\n function unpublishPublication(attributes: {\n estateId: string;\n channelAccountId: string;\n }) {\n ctx.checkAuth(TokenType.USER_TOKEN);\n\n return ctx.httpClient.delete(\n `/estates/${attributes.estateId}/channel-accounts/${attributes.channelAccountId}/ads`\n );\n }\n\n function scheduleVisit(\n estateId: string,\n attributes: {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n preferences?: {\n locale: string;\n };\n }\n ) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.put(\n `/properties/${estateId}/schedule-visit`,\n attributes\n );\n }\n\n function unstable_setPublicationUrl({\n estateId,\n url,\n }: {\n estateId: string;\n url: string;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.put(`/estates/${estateId}/website-url`, {\n published_url: url,\n });\n }\n\n return {\n getOne,\n getAll,\n getUnits,\n createPublication,\n updatePublication,\n unpublishPublication,\n scheduleVisit,\n unstable_setPublicationUrl,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n async function getAll({ companyId }: { companyId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/companies/${companyId}/channel-accounts`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function get({ channelAccountId }: { channelAccountId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n const endpoint = `/services/channel-accounts/${channelAccountId}`;\n\n return ctx.httpClient.get(endpoint, {\n params: {\n includes: 'channel',\n },\n });\n }\n\n async function getEstateHash({\n estateId,\n channelAccountId,\n }: {\n estateId: string;\n channelAccountId: string;\n }): Promise<{ hash: string }> {\n const endpoint = `services/estates/${estateId}/channel-accounts/${channelAccountId}/hash`;\n const response = await ctx.httpClient.post(endpoint);\n return response.data;\n }\n\n return { getAll, get, getEstateHash } as const;\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function get(attributes: { companyId: string; includes?: string[] }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n\n return ctx.httpClient.get(`/companies/${attributes.companyId}`, {\n params: {\n includes: attributes.includes?.join(','),\n },\n });\n }\n\n return { get };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function(ctx: ClientCtx) {\n function getOne(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(`/services/contacts/${attributes.contactId}`);\n }\n\n function getAll(attributes: {\n companyId: string;\n page?: number;\n limit?: number;\n }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/companies/${attributes.companyId}/contacts`,\n {\n params: {\n page: attributes.page ?? 1,\n limit: attributes.limit ?? 10,\n },\n }\n );\n }\n\n return {\n getOne,\n getAll,\n };\n}\n","import { ClientCtx, TokenType } from '../types';\n\nexport default function contact_preferences(ctx: ClientCtx) {\n function getAll(attributes: { contactId: string }) {\n ctx.checkAuth(TokenType.API_TOKEN);\n return ctx.httpClient.get(\n `/services/contacts/${attributes.contactId}/preferences`\n );\n }\n\n return {\n getAll,\n };\n}\n","import axios from 'axios';\nimport invariant from 'tiny-invariant';\nimport { Auth, ClientConf, Env, InitConf, Maybe, TokenType } from './types';\nimport { getData, handleRequestFailure } from './utils';\nimport leads from './resources/leads';\nimport channels from './resources/channels';\nimport estates from './resources/estates';\nimport channelAccounts from './resources/channel_accounts';\nimport companies from './resources/companies';\nimport contacts from './resources/contacts';\nimport contact_preferences from './resources/contact_preferences';\n\nconst envHosts: Record<Env, string> = {\n [Env.PRODUCTION]: 'https://api.sweepbright.com',\n [Env.STAGING]: 'https://api.staging.sweepbright.com',\n [Env.DEV]: 'https://api.dev.sweepbright.com',\n};\n\nfunction createClient(conf: ClientConf) {\n const { clientId, clientSecret, env = Env.PRODUCTION, version } = conf;\n let _auth: Maybe<Auth> = null;\n\n const httpClient = axios.create({\n baseURL: envHosts[env],\n });\n\n //TODO: getData here is an antipattern. Interceptor should not change a type of response\n httpClient.interceptors.response.use(getData, handleRequestFailure);\n if (version) {\n httpClient.defaults.headers.common[\n 'Accept'\n ] = `application/vnd.sweepbright.${version}+json`;\n }\n\n const ctx = {\n httpClient,\n checkAuth(tokenType: TokenType) {\n if (!_auth) {\n throw new Error('client is not authenticated');\n }\n\n if (_auth.type !== tokenType) {\n throw new Error('authenticated with invalid token type');\n }\n },\n };\n\n const client = {\n authorize(config: InitConf = {}): Promise<Client> {\n const {\n scopes = ['companies:read', 'properties:download', 'lead_info:write'],\n } = config;\n\n invariant(clientId, 'missing client id');\n invariant(clientSecret, 'missing client secret');\n\n return httpClient\n .post<\n any,\n {\n access_token: string;\n expires_in: string;\n }\n >('/auth/access-token', {\n client_id: clientId,\n client_secret: clientSecret,\n grant_type: 'client_credentials',\n scope: scopes.join(','),\n })\n .then(({ access_token, expires_in }) => {\n invariant(access_token, 'access token should be defined');\n invariant(expires_in, 'expires_in should be defined');\n _auth = {\n token: access_token,\n expiresIn: expires_in,\n type: TokenType.API_TOKEN,\n };\n\n // https://github.com/axios/axios#custom-instance-defaults\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n return client;\n });\n },\n withUserToken: async (accessToken: string) => {\n _auth = {\n token: accessToken,\n type: TokenType.USER_TOKEN,\n };\n\n httpClient.defaults.headers.common[\n 'Authorization'\n ] = `Bearer ${_auth.token}`;\n\n return client;\n },\n leads: leads(ctx),\n channels: channels(ctx),\n estates: estates(ctx),\n channelAccounts: channelAccounts(ctx),\n companies: companies(ctx),\n contacts: contacts(ctx),\n contactPreferences: contact_preferences(ctx),\n };\n\n return client;\n}\n\ninterface Client extends ReturnType<typeof createClient> {}\n\nexport { createClient, Env, Client };\n"],"names":["TokenType","Env","getData","response","data","handleRequestFailure","exception","status","error","Error","JSON","stringify","stack","split","filter","line","includes","join","Promise","reject","ctx","createLead","attributes","checkAuth","API_TOKEN","firstName","lastName","propertyId","email","phone","message","portal","httpClient","put","first_name","last_name","source_type","external_source","location_preference","createUnassignedLead","companyId","resolveReferences","channel_id","reference_code","company_id","endpoint","get","params","getPropertyIdFromReference","channel","referenceId","getOne","estateId","then","res","getAll","page","limit","archived","getUnits","projectId","createPublication","USER_TOKEN","post","channelAccountId","config","updatePublication","unpublishPublication","scheduleVisit","unstable_setPublicationUrl","url","published_url","getEstateHash","contactId","contact_preferences","envHosts","PRODUCTION","STAGING","DEV","createClient","conf","clientId","clientSecret","env","version","_auth","axios","create","baseURL","interceptors","use","defaults","headers","common","tokenType","type","client","authorize","scopes","invariant","client_id","client_secret","grant_type","scope","access_token","expires_in","token","expiresIn","withUserToken","accessToken","leads","channels","estates","channelAccounts","companies","contacts","contactPreferences"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ declare function createClient(conf: ClientConf): {
|
|
|
42
42
|
};
|
|
43
43
|
channels: {
|
|
44
44
|
getPropertyIdFromReference: (channel: string, referenceId: string) => Promise<import("axios").AxiosResponse<any>>;
|
|
45
|
-
resolveReferences: (channel_id: string, reference_code: string, company_id?: string | undefined) => Promise<import("
|
|
45
|
+
resolveReferences: (channel_id: string, reference_code: string, company_id?: string | undefined) => Promise<import("./resources/channels").ChannelsResolveReferencesResult>;
|
|
46
46
|
};
|
|
47
47
|
estates: {
|
|
48
48
|
getOne: (attributes: {
|
|
@@ -11,6 +11,6 @@ export interface ChannelsResolveReferencesResult {
|
|
|
11
11
|
}
|
|
12
12
|
export default function (ctx: ClientCtx): {
|
|
13
13
|
getPropertyIdFromReference: (channel: string, referenceId: string) => Promise<import("axios").AxiosResponse<any>>;
|
|
14
|
-
resolveReferences: (channel_id: string, reference_code: string, company_id?: string | undefined) => Promise<
|
|
14
|
+
resolveReferences: (channel_id: string, reference_code: string, company_id?: string | undefined) => Promise<ChannelsResolveReferencesResult>;
|
|
15
15
|
};
|
|
16
16
|
export {};
|
package/package.json
CHANGED