Skip to content

newsData api 에서 뉴스 가져오기 #9

Open
@pol-dev-shinroo

Description

@pol-dev-shinroo
import axios from "axios";
import convertKorean from "@/utils/convertUtf";

interface NewsApi {
  country?: string;
  category?: string;
  language?: string;
  page?: string;
}

const useNewsApi = async ({
  country,
  category,
  language,
  page,
}: NewsApi = {}) => {
  try {
    let url = `https://newsdata.io/api/1/news?apikey=${process.env.NEWS_DATA_API_KEY}`;
    if (country) url += `&country=${country}`;
    if (category) url += `&category=${category}`;
    if (language) url += `&language=${language}`;
    if (page) url += `&page=${page}`;

    const response = await axios({
      method: "get",
      url,
    });

    const { data } = response;

    if (data.results.length !== 0) {
      const convertedData = data.results.map((newsItem: any) => {
        if (newsItem.content !== null) {
          const convertedContent = convertKorean(newsItem.content);
          return { ...newsItem, content: convertedContent };
        } else {
          return { ...newsItem };
        }
      });
      return { ...data, results: convertedData };
    } else {
      return data;
    }
  } catch (error) {
    return error;
  }
};

export default useNewsApi;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions