Untitled
unknown
plain_text
20 days ago
1.4 kB
4
Indexable
const Aerospike = require("aerospike"); const { getAerospikeClient } = require("../../../databases/aerospike"); const { throwApiErr } = require("../../helper/error"); class GalleryModel { constructor() {} async fetchGalleryPosts(mediaType, page = 1, limit = 10) { try { const client = await getAerospikeClient(); const query = client.query( process.env.CLUSTER_NAME, process.env.SET_MAIN_POSTS ); if (mediaType && (mediaType === "image" || mediaType === "video")) { query.where(Aerospike.filter.equal("media_type", mediaType)); } else { query.where(Aerospike.filter.equal("media_type", "image")); query.where(Aerospike.filter.equal("media_type", "video")); } const posts = []; const stream = query.foreach(); return new Promise((resolve, reject) => { stream.on("data", (record) => { posts.push(record.bins); }); stream.on("error", (error) => { reject(error); }); stream.on("end", () => { const startIndex = (page - 1) * limit; const paginatedPosts = posts.slice(startIndex, startIndex + limit); resolve(paginatedPosts); }); }); } catch (error) { console.error("Error fetching media posts:", error); throwApiErr(error); } } } module.exports = new GalleryModel();
Editor is loading...
Leave a Comment