Untitled

 avatar
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