@thinkam/typeairtable
Advanced tools
+1
-1
@@ -5,3 +5,3 @@ { | ||
| "private": false, | ||
| "version": "0.0.5", | ||
| "version": "0.1.0", | ||
| "description": "Data-Mapper Airtable for TypeScript, ES7, ES6, ES5. Supports Airtable database.", | ||
@@ -8,0 +8,0 @@ "readmeFilename": "README.md", |
+0
-0
@@ -0,0 +0,0 @@ <div align="center"> |
| export interface HttpClient { | ||
| get<T = any>(url: string): Promise<T>; | ||
| post<T = any, B = any>(url: string, body: B): Promise<T>; | ||
| delete(url: string, id: string): Promise<boolean>; | ||
| patch<T = any, B = any>(url: string, body: B): Promise<T>; | ||
| get<T = any, B = any>(url: string, headers?: B | { [header: string]: string | string[] }): Promise<T>; | ||
| post<T = any, B = any, C = any>(url: string, body: B, headers?: C | { [header: string]: string | string[] }): Promise<T>; | ||
| delete<T = any>(url: string, id: string, headers?: T | { [header: string]: string | string[] }): Promise<boolean>; | ||
| patch<T = any, B = any, C = any>(url: string, body: B, headers?: C | { [header: string]: string | string[] }): Promise<T>; | ||
| } |
@@ -25,4 +25,7 @@ import { | ||
| ): Promise<DataResult<any, E['select']>> { | ||
| const header = this.urlGenerator.getHeader(); | ||
| const url = this.urlGenerator.getUrl({ ...params, take: 1 }); | ||
| const rawData = await this.httpClient.get(url); | ||
| const rawData = await this.httpClient.get(url, { | ||
| header: header | ||
| }); | ||
| const data = this.convertRawData(rawData); | ||
@@ -35,4 +38,7 @@ return data && data.length ? data[0] : null; | ||
| ): Promise<DataResult<any, E['select']>[]> { | ||
| const header = this.urlGenerator.getHeader(); | ||
| const url = this.urlGenerator.getUrl(params); | ||
| const rawData = await this.httpClient.get(url); | ||
| const rawData = await this.httpClient.get(url, { | ||
| header: header | ||
| }); | ||
| return this.convertRawData(rawData); | ||
@@ -44,4 +50,7 @@ } | ||
| ): Promise<ConvertFieldTypeValue<any> & DefaultData> { | ||
| const header = this.urlGenerator.getHeader(); | ||
| const result = await this.httpClient.post(this.urlGenerator.getUrl({}), { | ||
| fields: body, | ||
| }, { | ||
| header: header | ||
| }); | ||
@@ -56,3 +65,6 @@ return { | ||
| destroy(id: string): Promise<boolean> { | ||
| return this.httpClient.delete(this.urlGenerator.getUrl({}), id); | ||
| const header = this.urlGenerator.getHeader(); | ||
| return this.httpClient.delete(this.urlGenerator.getUrl({}), id, { | ||
| header: header | ||
| }); | ||
| } | ||
@@ -64,2 +76,3 @@ | ||
| ): Promise<ConvertFieldTypeValue<any> & DefaultData> { | ||
| const header = this.urlGenerator.getHeader(); | ||
| const result = await this.httpClient.patch(this.urlGenerator.getUrl({}), { | ||
@@ -72,2 +85,4 @@ records: [ | ||
| ], | ||
| }, { | ||
| header: header | ||
| }); | ||
@@ -74,0 +89,0 @@ return { |
@@ -11,2 +11,6 @@ import { | ||
| url = ''; | ||
| header = { | ||
| name: 'Authorization', | ||
| value: `Bearer ${this.config.apiKey}` | ||
| }; | ||
@@ -23,3 +27,3 @@ constructor( | ||
| if (table) { | ||
| this.url = `${this.config.baseUrl}/${table.tableName}?api_key=${this.config.apiKey}`; | ||
| this.url = `${this.config.baseUrl}/${table.tableName}`; | ||
| } | ||
@@ -35,2 +39,6 @@ } | ||
| } | ||
| getHeader() { | ||
| return `'${this.header.name}': '${this.header.value}'`; | ||
| } | ||
| } |
@@ -0,0 +0,0 @@ export function deepClone(obj, hash = new WeakMap()) { |
| export * from './deep-clone'; |
@@ -6,3 +6,3 @@ import { DefaultQueryFind, UrlValidator } from '../../../domain/contracts'; | ||
| dataInstance.select?.forEach((item) => { | ||
| url = `${url}&fields[]=${item}`; | ||
| url = `${url}&fields[]=${String(item)}`; | ||
| }); | ||
@@ -9,0 +9,0 @@ return url; |
@@ -6,2 +6,3 @@ import { DefaultQueryFind, TableModel } from '../contracts'; | ||
| getUrl(dataInstance: DefaultQueryFind): string; | ||
| getHeader(): string; | ||
| } |
@@ -0,0 +0,0 @@ import { ConfigModel, DataInstanceModel } from '../domain/contracts'; |
| import { AirTableConfig } from '../infra/services/airtable-config'; | ||
| export { AirTableConfig }; |
@@ -14,8 +14,8 @@ import { HttpClient } from '../../../src/data/protocols/http/http-client'; | ||
| const httpClientMock: jest.Mocked<HttpClient> = { | ||
| get: jest.fn(<T = any>(_url: string) => Promise.resolve({} as T)), | ||
| post: jest.fn(<T = any, B = any>(_url: string, _body: B) => | ||
| get: jest.fn(<T = any, B = any>(_url: string, _header: B) => Promise.resolve({} as T)), | ||
| post: jest.fn(<T = any, B = any, C = any>(_url: string, _body: B, _header: C) => | ||
| Promise.resolve({} as T) | ||
| ), | ||
| delete: jest.fn((_url: string, _id: string) => Promise.resolve(true)), | ||
| patch: jest.fn(<T = any, B = any>(_url: string, _body: B) => | ||
| delete: jest.fn(<T = any>(_url: string, _id: string, header: T) => Promise.resolve(true)), | ||
| patch: jest.fn(<T = any, B = any, C = any>(_url: string, _body: B, _header: C) => | ||
| Promise.resolve({} as T) | ||
@@ -25,4 +25,5 @@ ), | ||
| const sut = new Repository(urlGenerator, httpClientMock); | ||
| const url = `${baseUrl}/${name}?api_key=${apiKey}`; | ||
| return { sut, httpClientMock, url, urlGenerator }; | ||
| const url = `${baseUrl}/${name}`; | ||
| const header = { header: `'Authorization': 'Bearer ${apiKey}'` } | ||
| return { sut, httpClientMock, url, header, urlGenerator }; | ||
| }; |
@@ -5,10 +5,10 @@ import { makeSutRepository } from '../mocks'; | ||
| it('Should calls url in the method get of httpClient', async () => { | ||
| const { sut, httpClientMock, url } = makeSutRepository(); | ||
| const { sut, httpClientMock, url, header } = makeSutRepository(); | ||
| const httpClientSpy = jest.spyOn(httpClientMock, 'get'); | ||
| await sut.find({}); | ||
| expect(httpClientSpy).toHaveBeenCalledTimes(1); | ||
| expect(httpClientSpy).toHaveBeenCalledWith(`${url}&maxRecords=1`); | ||
| expect(httpClientSpy).toHaveBeenCalledWith(`${url}&maxRecords=1`, header); | ||
| }); | ||
| it('Should calls correct body on create', () => { | ||
| const { sut, httpClientMock, url } = makeSutRepository(); | ||
| const { sut, httpClientMock, url, header } = makeSutRepository(); | ||
| const httpClientSpy = jest.spyOn(httpClientMock, 'post'); | ||
@@ -20,6 +20,6 @@ const body = { | ||
| expect(httpClientSpy).toHaveBeenCalledTimes(1); | ||
| expect(httpClientSpy).toHaveBeenCalledWith(url, { fields: body }); | ||
| expect(httpClientSpy).toHaveBeenCalledWith(url, { fields: body }, header); | ||
| }); | ||
| it('Should calls correct body on destroy', () => { | ||
| const { sut, httpClientMock, url } = makeSutRepository(); | ||
| const { sut, httpClientMock, url, header } = makeSutRepository(); | ||
| const httpClientSpy = jest.spyOn(httpClientMock, 'delete'); | ||
@@ -29,6 +29,6 @@ const id = 'any_id'; | ||
| expect(httpClientSpy).toHaveBeenCalledTimes(1); | ||
| expect(httpClientSpy).toHaveBeenCalledWith(url, id); | ||
| expect(httpClientSpy).toHaveBeenCalledWith(url, id, header); | ||
| }); | ||
| it('Should calls correct body on update', () => { | ||
| const { sut, httpClientMock, url } = makeSutRepository(); | ||
| const { sut, httpClientMock, url, header } = makeSutRepository(); | ||
| const httpClientSpy = jest.spyOn(httpClientMock, 'patch'); | ||
@@ -57,4 +57,4 @@ const id = 'any_id'; | ||
| ], | ||
| }); | ||
| }, header); | ||
| }); | ||
| }); |
@@ -18,3 +18,3 @@ import { UrlGenerator } from '../../../src/data/services/url-generator'; | ||
| const sut = new UrlGenerator(config, table); | ||
| const initialUrl = `${config.baseUrl}/${table.tableName}?api_key=${config.apiKey}`; | ||
| const initialUrl = `${config.baseUrl}/${table.tableName}`; | ||
| return { sut, initialUrl }; | ||
@@ -21,0 +21,0 @@ }; |
+0
-1
@@ -17,3 +17,2 @@ { | ||
| "skipLibCheck": true, | ||
| "keyofStringsOnly": true, | ||
| "noImplicitAny": false | ||
@@ -20,0 +19,0 @@ }, |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __exportStar(require("./make-url-validators"), exports); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.makeUrlValidators = void 0; | ||
| const url_validator_1 = require("../validators/url-validator"); | ||
| const makeUrlValidators = () => { | ||
| const selectValidator = new url_validator_1.SelectUrlValidator(); | ||
| const whereValidator = new url_validator_1.WhereUrlValidator(); | ||
| const oderByValidator = new url_validator_1.OrderByUrlValidator(); | ||
| const takeValidator = new url_validator_1.TakeUrlValidator(); | ||
| return [selectValidator, whereValidator, oderByValidator, takeValidator]; | ||
| }; | ||
| exports.makeUrlValidators = makeUrlValidators; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.DataInstance = void 0; | ||
| const repository_1 = require("./repository"); | ||
| class DataInstance { | ||
| constructor(urlGenerator, httpClient) { | ||
| this.urlGenerator = urlGenerator; | ||
| this.httpClient = httpClient; | ||
| } | ||
| getRepository(table) { | ||
| this.urlGenerator.setTable(table); | ||
| return new repository_1.Repository(this.urlGenerator, this.httpClient); | ||
| } | ||
| } | ||
| exports.DataInstance = DataInstance; |
| "use strict"; | ||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Repository = void 0; | ||
| const utils_1 = require("../utils"); | ||
| class Repository { | ||
| constructor(urlGenerator, httpClient) { | ||
| this.httpClient = httpClient; | ||
| this.urlGenerator = (0, utils_1.deepClone)(urlGenerator); | ||
| } | ||
| find(params) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const url = this.urlGenerator.getUrl(Object.assign(Object.assign({}, params), { take: 1 })); | ||
| const rawData = yield this.httpClient.get(url); | ||
| const data = this.convertRawData(rawData); | ||
| return data && data.length ? data[0] : null; | ||
| }); | ||
| } | ||
| findAll(params) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const url = this.urlGenerator.getUrl(params); | ||
| const rawData = yield this.httpClient.get(url); | ||
| return this.convertRawData(rawData); | ||
| }); | ||
| } | ||
| create(body) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const result = yield this.httpClient.post(this.urlGenerator.getUrl({}), { | ||
| fields: body, | ||
| }); | ||
| return Object.assign(Object.assign({}, result.fields), { id: result.id, createdTime: result.createdTime }); | ||
| }); | ||
| } | ||
| destroy(id) { | ||
| return this.httpClient.delete(this.urlGenerator.getUrl({}), id); | ||
| } | ||
| update(id, body) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const result = yield this.httpClient.patch(this.urlGenerator.getUrl({}), { | ||
| records: [ | ||
| { | ||
| id, | ||
| fields: body, | ||
| }, | ||
| ], | ||
| }); | ||
| return Object.assign(Object.assign({}, result.records[0].fields), { id: result.records[0].id, createdTime: result.records[0].createdTime }); | ||
| }); | ||
| } | ||
| convertRawData(rawData) { | ||
| var _a; | ||
| return (_a = rawData === null || rawData === void 0 ? void 0 : rawData.records) === null || _a === void 0 ? void 0 : _a.map((item) => (Object.assign(Object.assign({}, this.filterIdAndCreatedTime(item)), this.filterFields(item.fields)))); | ||
| } | ||
| filterIdAndCreatedTime(record) { | ||
| return { | ||
| id: record.id, | ||
| createdTime: record.createdTime, | ||
| }; | ||
| } | ||
| filterFields(fields) { | ||
| let result = {}; | ||
| Object.keys(fields).forEach((key) => { | ||
| const value = {}; | ||
| value[key] = fields[key]; | ||
| result = Object.assign(Object.assign({}, result), value); | ||
| }); | ||
| return result; | ||
| } | ||
| } | ||
| exports.Repository = Repository; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.UrlGenerator = void 0; | ||
| const factories_1 = require("../factories"); | ||
| class UrlGenerator { | ||
| constructor(config, table, validators = (0, factories_1.makeUrlValidators)()) { | ||
| this.config = config; | ||
| this.table = table; | ||
| this.validators = validators; | ||
| this.url = ''; | ||
| this.setTable(table); | ||
| } | ||
| setTable(table) { | ||
| if (table) { | ||
| this.url = `${this.config.baseUrl}/${table.tableName}?api_key=${this.config.apiKey}`; | ||
| } | ||
| } | ||
| getUrl(dataInstance, table) { | ||
| this.setTable(table); | ||
| this.validators.forEach((validator) => { | ||
| this.url = validator.validate(this.url, dataInstance); | ||
| }); | ||
| return this.url; | ||
| } | ||
| } | ||
| exports.UrlGenerator = UrlGenerator; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.deepClone = void 0; | ||
| function deepClone(obj, hash = new WeakMap()) { | ||
| if (Object(obj) !== obj) | ||
| return obj; | ||
| if (hash.has(obj)) | ||
| return hash.get(obj); | ||
| const result = obj instanceof Set | ||
| ? new Set(obj) | ||
| : obj instanceof Map | ||
| ? new Map(Array.from(obj, ([key, val]) => [key, deepClone(val, hash)])) | ||
| : obj instanceof Date | ||
| ? new Date(obj) | ||
| : obj instanceof RegExp | ||
| ? new RegExp(obj.source, obj.flags) | ||
| : obj.constructor | ||
| ? new obj.constructor() | ||
| : Object.create(null); | ||
| hash.set(obj, result); | ||
| return Object.assign(result, ...Object.keys(obj).map((key) => ({ [key]: deepClone(obj[key], hash) }))); | ||
| } | ||
| exports.deepClone = deepClone; |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __exportStar(require("./deep-clone"), exports); |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __exportStar(require("./select-url.validator"), exports); | ||
| __exportStar(require("./where-url.validator"), exports); | ||
| __exportStar(require("./orderby-url.validator"), exports); | ||
| __exportStar(require("./take-url.validator"), exports); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.OrderByUrlValidator = void 0; | ||
| class OrderByUrlValidator { | ||
| validate(url, dataInstance) { | ||
| if (!dataInstance.orderBy) { | ||
| return url; | ||
| } | ||
| Object.keys(dataInstance.orderBy).forEach((item, index) => { | ||
| const value = dataInstance.orderBy[item]; | ||
| url = `${url}&sort[${index}][field]=${item}&sort[${index}][direction]=${value}`; | ||
| }); | ||
| return url; | ||
| } | ||
| } | ||
| exports.OrderByUrlValidator = OrderByUrlValidator; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SelectUrlValidator = void 0; | ||
| class SelectUrlValidator { | ||
| validate(url, dataInstance) { | ||
| var _a; | ||
| (_a = dataInstance.select) === null || _a === void 0 ? void 0 : _a.forEach((item) => { | ||
| url = `${url}&fields[]=${item}`; | ||
| }); | ||
| return url; | ||
| } | ||
| } | ||
| exports.SelectUrlValidator = SelectUrlValidator; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.TakeUrlValidator = void 0; | ||
| class TakeUrlValidator { | ||
| validate(url, dataInstance) { | ||
| if (!dataInstance.take) { | ||
| return url; | ||
| } | ||
| return `${url}&maxRecords=${dataInstance.take}`; | ||
| } | ||
| } | ||
| exports.TakeUrlValidator = TakeUrlValidator; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.WhereUrlValidator = void 0; | ||
| class WhereUrlValidator { | ||
| validate(url, dataInstance) { | ||
| if (!dataInstance.where || !Object.keys(dataInstance.where).length) { | ||
| return url; | ||
| } | ||
| url = `${url}&filterByFormula=`; | ||
| return url + this.generateUrl(dataInstance.where); | ||
| } | ||
| generateUrl(where) { | ||
| const isArray = Array.isArray(where); | ||
| if (isArray) { | ||
| return this.generateOR(where); | ||
| } | ||
| return this.generateAND(where); | ||
| } | ||
| generateAND(where) { | ||
| const whereArray = Object.keys(where).map((item) => { | ||
| const value = where[item]; | ||
| if (typeof value === 'boolean') { | ||
| return value ? item : `NOT(${item})`; | ||
| } | ||
| return `{${item}}='${value}'`; | ||
| }); | ||
| return `AND(${whereArray.join(',')})`; | ||
| } | ||
| generateOR(where) { | ||
| const orArray = where.reduce((acc, item) => { | ||
| return `${acc},${this.generateAND(item)}`; | ||
| }, ''); | ||
| return `OR(${orArray.substring(1)})`; | ||
| } | ||
| } | ||
| exports.WhereUrlValidator = WhereUrlValidator; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __exportStar(require("./table.model"), exports); | ||
| __exportStar(require("./config.model"), exports); | ||
| __exportStar(require("./query-find.model"), exports); | ||
| __exportStar(require("./data-instance.model"), exports); | ||
| __exportStar(require("./repository.model"), exports); | ||
| __exportStar(require("./url-validator"), exports); | ||
| __exportStar(require("./configure-instance"), exports); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| }; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.HttpAxiosClient = void 0; | ||
| const axios_1 = __importDefault(require("axios")); | ||
| class HttpAxiosClient { | ||
| get(url) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const http = yield axios_1.default.get(url); | ||
| return http.data; | ||
| }); | ||
| } | ||
| post(url, body) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const result = yield axios_1.default.post(url, body); | ||
| return result.data; | ||
| }); | ||
| } | ||
| delete(url, id) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| try { | ||
| const result = yield axios_1.default.delete(`${url}&records[]=${id}`); | ||
| return result.data.records[0].deleted; | ||
| } | ||
| catch (_a) { | ||
| return false; | ||
| } | ||
| }); | ||
| } | ||
| patch(url, body) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
| const result = yield axios_1.default.patch(url, body); | ||
| return result.data; | ||
| }); | ||
| } | ||
| } | ||
| exports.HttpAxiosClient = HttpAxiosClient; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.AirTableConfig = void 0; | ||
| const data_instance_1 = require("../../data/services/data-instance"); | ||
| const url_generator_1 = require("../../data/services/url-generator"); | ||
| const http_axios_client_1 = require("../providers/http/http-axios-client"); | ||
| class AirTableConfig { | ||
| configure(config) { | ||
| const urlGenerator = new url_generator_1.UrlGenerator(config); | ||
| const httpAxiosClient = new http_axios_client_1.HttpAxiosClient(); | ||
| return new data_instance_1.DataInstance(urlGenerator, httpAxiosClient); | ||
| } | ||
| } | ||
| exports.AirTableConfig = AirTableConfig; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.AirTableConfig = void 0; | ||
| const airtable_config_1 = require("../infra/services/airtable-config"); | ||
| Object.defineProperty(exports, "AirTableConfig", { enumerable: true, get: function () { return airtable_config_1.AirTableConfig; } }); |
53193
-21.79%45
-36.62%658
-36.12%