|
import { Request, Response } from 'express'; |
|
import { ApiResponse } from '../types/index.js'; |
|
import { |
|
getMarketServers, |
|
getMarketServerByName, |
|
getMarketCategories, |
|
getMarketTags, |
|
searchMarketServers, |
|
filterMarketServersByCategory, |
|
filterMarketServersByTag |
|
} from '../services/marketService.js'; |
|
|
|
|
|
export const getAllMarketServers = (_: Request, res: Response): void => { |
|
try { |
|
const marketServers = Object.values(getMarketServers()); |
|
const response: ApiResponse = { |
|
success: true, |
|
data: marketServers, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to get market servers information', |
|
}); |
|
} |
|
}; |
|
|
|
|
|
export const getMarketServer = (req: Request, res: Response): void => { |
|
try { |
|
const { name } = req.params; |
|
if (!name) { |
|
res.status(400).json({ |
|
success: false, |
|
message: 'Server name is required', |
|
}); |
|
return; |
|
} |
|
|
|
const server = getMarketServerByName(name); |
|
if (!server) { |
|
res.status(404).json({ |
|
success: false, |
|
message: 'Market server not found', |
|
}); |
|
return; |
|
} |
|
|
|
const response: ApiResponse = { |
|
success: true, |
|
data: server, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to get market server information', |
|
}); |
|
} |
|
}; |
|
|
|
|
|
export const getAllMarketCategories = (_: Request, res: Response): void => { |
|
try { |
|
const categories = getMarketCategories(); |
|
const response: ApiResponse = { |
|
success: true, |
|
data: categories, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to get market categories', |
|
}); |
|
} |
|
}; |
|
|
|
|
|
export const getAllMarketTags = (_: Request, res: Response): void => { |
|
try { |
|
const tags = getMarketTags(); |
|
const response: ApiResponse = { |
|
success: true, |
|
data: tags, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to get market tags', |
|
}); |
|
} |
|
}; |
|
|
|
|
|
export const searchMarketServersByQuery = (req: Request, res: Response): void => { |
|
try { |
|
const { query } = req.query; |
|
const searchQuery = typeof query === 'string' ? query : ''; |
|
|
|
const servers = searchMarketServers(searchQuery); |
|
const response: ApiResponse = { |
|
success: true, |
|
data: servers, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to search market servers', |
|
}); |
|
} |
|
}; |
|
|
|
|
|
export const getMarketServersByCategory = (req: Request, res: Response): void => { |
|
try { |
|
const { category } = req.params; |
|
|
|
const servers = filterMarketServersByCategory(category); |
|
const response: ApiResponse = { |
|
success: true, |
|
data: servers, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to filter market servers by category', |
|
}); |
|
} |
|
}; |
|
|
|
|
|
export const getMarketServersByTag = (req: Request, res: Response): void => { |
|
try { |
|
const { tag } = req.params; |
|
|
|
const servers = filterMarketServersByTag(tag); |
|
const response: ApiResponse = { |
|
success: true, |
|
data: servers, |
|
}; |
|
res.json(response); |
|
} catch (error) { |
|
res.status(500).json({ |
|
success: false, |
|
message: 'Failed to filter market servers by tag', |
|
}); |
|
} |
|
}; |