12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import PublicService from "./public.service.js";
- class Controller {
- async getAllResources(req, res) {
- try {
- const resources = await PublicService.getAllResourcesInfo();
- return res.json({
- success: true,
- data: resources
- });
- } catch (error) {
- console.error('Error retrieving resources:', error);
- return res.status(500).json({
- success: false,
- message: "Failed to retrieve resources information."
- });
- }
- }
- async getResourceByName(req, res) {
- try {
- const resourceName = req.params.name;
-
-
- if (!PublicService.isValidResourcePath(resourceName)) {
- return res.status(400).json({
- success: false,
- message: "Invalid resource name."
- });
- }
-
- const resource = await PublicService.getResourceInfo(resourceName);
-
- if (!resource) {
- return res.status(404).json({
- success: false,
- message: "Resource not found."
- });
- }
-
- return res.json({
- success: true,
- data: resource
- });
- } catch (error) {
- console.error('Error retrieving resource:', error);
- return res.status(500).json({
- success: false,
- message: "Failed to retrieve resource information."
- });
- }
- }
- async searchGitRepositories(req, res) {
- try {
- const { q, page = 1, pageSize = 10 } = req.query;
-
- if (!q || q.trim() === '') {
- return res.status(400).json({
- success: false,
- message: "Search query is required."
- });
- }
-
- const sanitizedQuery = q.trim();
- const pageNum = parseInt(page, 10) || 1;
- const size = parseInt(pageSize, 10) || 10;
-
-
- const searchResults = await PublicService.searchGitRepositories(sanitizedQuery, pageNum, size);
-
- return res.json({
- success: true,
- data: searchResults
- });
- } catch (error) {
- console.error('Error searching repositories:', error);
- return res.status(error.statusCode || 500).json({
- success: false,
- message: error.message || "Failed to search repositories."
- });
- }
- }
- }
- export default new Controller();
|