import { Request, Response } from 'express'
import { SubCommunity } from './models'
import helpers from '../../utils/helpers'

async function getSubCommunities(req: Request, res: Response) {
	interface Payload {
		limit?: string | number
		page?: string | number
		search?: string
	}

	await helpers.runApi(res, async () => {
		let {
			limit = '10',
			page = '1',
			search
		} = req.query as unknown as Payload
		const communityId = req.params.communityId
		limit = +limit
		page = +page
		const skip = (page - 1) * limit

		const match: any = {
			community: communityId,
			...(search ? {name: RegExp(search, 'i')} : {})
		}

		const subCommunities = await SubCommunity.find(match).skip(skip).limit(limit)
		const count = await SubCommunity.countDocuments(match)

		return res.json({ subCommunities, count })
	})
}

const controllers = {
	getSubCommunities
}

export default controllers
