From 0ee60efaa7af45a30d6af55a3c24affb082d7d25 Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Fri, 26 Jul 2024 18:01:50 +0200 Subject: [PATCH] WIP: Mock API for providers and start rendering data --- app/api/providers/route.ts | 10 ++++ app/data/dataProvider.ts | 8 +++ app/data/index.ts | 1 + dataProviders.json | 99 ++++++++++++++++++++++++++++++++++++++ utils/fetcher.tsx | 1 - utils/index.ts | 1 + 6 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 app/api/providers/route.ts create mode 100644 app/data/dataProvider.ts create mode 100644 app/data/index.ts create mode 100644 dataProviders.json delete mode 100644 utils/fetcher.tsx create mode 100644 utils/index.ts diff --git a/app/api/providers/route.ts b/app/api/providers/route.ts new file mode 100644 index 0000000000..ef9b5995e2 --- /dev/null +++ b/app/api/providers/route.ts @@ -0,0 +1,10 @@ +import { NextResponse } from "next/server"; + +import data from "../../../dataProviders.json"; + +export async function GET() { + // Simulate fetching data with a delay + await new Promise((resolve) => setTimeout(resolve, 2000)); + + return NextResponse.json({ providers: data }); +} diff --git a/app/data/dataProvider.ts b/app/data/dataProvider.ts new file mode 100644 index 0000000000..429f18f4cc --- /dev/null +++ b/app/data/dataProvider.ts @@ -0,0 +1,8 @@ +import "server-only"; + +export default async function getProvider() { + const res = await fetch("http://localhost:3000/api/providers"); + const product = await res.json(); + + return product; +} diff --git a/app/data/index.ts b/app/data/index.ts new file mode 100644 index 0000000000..138e0c8df1 --- /dev/null +++ b/app/data/index.ts @@ -0,0 +1 @@ +export * from "./dataProvider"; diff --git a/dataProviders.json b/dataProviders.json new file mode 100644 index 0000000000..6aec7c9584 --- /dev/null +++ b/dataProviders.json @@ -0,0 +1,99 @@ +{ + "links": { + "first": "https://api.prowler.com/api/v1/providers?page%5Bnumber%5D=1", + "last": "https://api.prowler.com/api/v1/providers?page%5Bnumber%5D=1", + "next": null, + "prev": null + }, + "data": [ + { + "id": "5fd8f121-269e-4715-84cf-f92373f15dfa", + "type": "providers", + "attributes": { + "provider": "aws", + "provider_id": "1234567890", + "alias": "mock_aws_connected", + "connection": { + "connected": true, + "last_checked_at": "2024-07-17T09:55:14.191475Z" + }, + "scanner_args": { + "only_logs": true, + "excluded_checks": [ + "awslambda_function_no_secrets_in_code", + "cloudwatch_log_group_no_secrets_in_logs" + ], + "aws_retries_max_attempts": 5 + }, + "inserted_at": "2024-07-17T09:55:14.191475Z", + "updated_at": "2024-07-17T09:55:14.191475Z", + "created_by": { + "object": "user", + "id": "eea048ab-7cb3-47eb-9e5e-dce591ade41f" + } + } + }, + { + "id": "16aaeb4e-d3cd-4bb6-86f8-6c39cf93821e", + "type": "providers", + "attributes": { + "provider": "aws", + "provider_id": "1234567891", + "alias": "mock_aws_not_connected", + "connection": { + "connected": false, + "last_checked_at": "2024-07-17T09:55:18.987425Z" + }, + "scanner_args": { + "only_logs": true, + "excluded_checks": [ + "awslambda_function_no_secrets_in_code", + "cloudwatch_log_group_no_secrets_in_logs" + ], + "aws_retries_max_attempts": 5 + }, + "inserted_at": "2024-07-17T09:50:18.987425Z", + "updated_at": "2024-07-17T09:55:18.987425Z", + "created_by": { + "object": "user", + "id": "a8f5e964-5964-4aaf-9176-844e2c3b0716" + } + } + }, + { + "id": "63f16b03-7849-4054-b40b-300e331f46f0", + "type": "providers", + "attributes": { + "provider": "gcp", + "provider_id": "1234567895", + "alias": "mock_gcp", + "connection": { + "connected": true, + "last_checked_at": "2024-07-17T09:55:18.987425Z" + }, + "scanner_args": { + "only_logs": true, + "excluded_checks": [ + "apikeys_key_exists", + "cloudsql_instance_public_ip" + ], + "excluded_services": ["kms"] + }, + "inserted_at": "2024-07-17T09:50:18.987425Z", + "updated_at": "2024-07-17T09:55:18.987425Z", + "created_by": { + "object": "user", + "id": "eea048ab-7cb3-47eb-9e5e-dce591ade41f" + } + } + } + ], + "meta": { + "pagination": { + "page": 1, + "pages": 1, + "count": 3 + }, + "version": "v1" + } +} diff --git a/utils/fetcher.tsx b/utils/fetcher.tsx deleted file mode 100644 index 50b047c9ad..0000000000 --- a/utils/fetcher.tsx +++ /dev/null @@ -1 +0,0 @@ -export const fetcher = (url: string) => fetch(url).then((res) => res.json()); diff --git a/utils/index.ts b/utils/index.ts new file mode 100644 index 0000000000..d6820eec0c --- /dev/null +++ b/utils/index.ts @@ -0,0 +1 @@ +export * from "./capitalize";