university-api-client
Version:
A JavaScript client library for the Worldwide University API
67 lines (66 loc) • 2.5 kB
JavaScript
;
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);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UniversityApiClient = void 0;
const axios_1 = __importDefault(require("axios"));
__exportStar(require("./types"), exports);
class UniversityApiClient {
constructor(config = {}) {
this.baseUrl = config.baseUrl || 'https://worldwide-university-api.onrender.com/api';
this.client = axios_1.default.create({
baseURL: this.baseUrl,
timeout: config.timeout || 10000,
});
}
/**
* Get universities with optional filters
*/
async getUniversities(filters) {
const params = new URLSearchParams();
if (filters) {
Object.entries(filters).forEach(([key, value]) => {
if (value !== undefined) {
params.append(key, value.toString());
}
});
}
const response = await this.client.get('/universities', { params });
return response.data;
}
/**
* Get universities by country code
*/
async getUniversitiesByCountry(countryCode) {
const response = await this.client.get(`/universities/${countryCode}`);
return response.data;
}
/**
* Search universities by query
*/
async searchUniversities(options) {
const params = new URLSearchParams();
params.append('q', options.query);
if (options.limit !== undefined) {
params.append('limit', options.limit.toString());
}
const response = await this.client.get('/search', { params });
return response.data;
}
}
exports.UniversityApiClient = UniversityApiClient;