propublica-nonprofit-explorer-sdk
Version:
SDK for ProPublica Nonprofit Explorer API
51 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchRequestSchema = exports.SearchResponseSchema = void 0;
exports.validateSearchResponse = validateSearchResponse;
exports.validateSearchRequest = validateSearchRequest;
const zod_1 = require("zod");
const constants_1 = require("../constants");
const SearchOrganizationSchema = zod_1.z.object({
ein: zod_1.z.number(),
strein: zod_1.z.string(),
name: zod_1.z.string(),
sub_name: zod_1.z.string().nullable(),
city: zod_1.z.string(),
state: zod_1.z.string(),
ntee_code: zod_1.z.string().nullable(),
raw_ntee_code: zod_1.z.string().nullable(),
subseccd: zod_1.z.number(),
has_subseccd: zod_1.z.boolean(),
have_filings: zod_1.z.boolean().nullable(),
have_extracts: zod_1.z.boolean().nullable(),
have_pdfs: zod_1.z.boolean().nullable(),
score: zod_1.z.number(),
});
exports.SearchResponseSchema = zod_1.z.object({
total_results: zod_1.z.number(),
num_pages: zod_1.z.number(),
cur_page: zod_1.z.number(),
per_page: zod_1.z.number(),
page_offset: zod_1.z.number(),
search_query: zod_1.z.string().nullable(),
selected_state: zod_1.z.string().nullable(),
selected_ntee: zod_1.z.string().nullable(),
selected_code: zod_1.z.string().nullable(),
data_source: zod_1.z.string(),
api_version: zod_1.z.number(),
organizations: zod_1.z.array(SearchOrganizationSchema),
});
exports.SearchRequestSchema = zod_1.z.object({
q: zod_1.z.string().optional(),
page: zod_1.z.number().optional(),
'state[id]': zod_1.z.nativeEnum(constants_1.STATE).optional(),
'ntee[id]': zod_1.z.nativeEnum(constants_1.NTEE).optional(),
'c_code[id]': zod_1.z.nativeEnum(constants_1.C_CODE).optional(),
});
function validateSearchResponse(response) {
return exports.SearchResponseSchema.parse(response);
}
function validateSearchRequest(request) {
return exports.SearchRequestSchema.parse(request);
}
//# sourceMappingURL=search.zod.js.map