get peer's registered files

This commit is contained in:
afazio1
2024-04-22 03:56:13 -04:00
parent 9fe99e0d96
commit 89749d30ca
5 changed files with 57 additions and 13 deletions

View File

@@ -1,22 +1,48 @@
import "../styles/RegisterFile.css";
import { RegisteredFile } from "../types/types";
import { RegisteredFile, Status } from "../types/types";
import { useState, useEffect } from "react";
import { getAuthHeaders } from "../utils/getAuthHeaders";
export default function RegisterFile() {
const [serverFiles, setServerFiles] = useState<RegisteredFile[]>([]);
const [registeredFiles, setRegisteredFiles] = useState<RegisteredFile[]>([]);
useEffect(() => {
fetchRegisteredFiles();
fetchServerFiles();
}, [])
const fetchRegisteredFiles = () => {
return
fetch("http://localhost:5000/files") // replace with local api endpoint
useEffect(() => {
fetch(`http://localhost:8080/files`, {
method: 'GET',
})
.then(response => response.json())
.then(data => {
setRegisteredFiles(data);
const files: string[] = data.files
setRegisteredFiles(
serverFiles.map((file) => {
if (files.includes(file.filename)) {
file.status = Status.HOSTED;
return file;
}
file.status = Status.PRIVATE;
return file;
})
)
})
.catch(error => console.error(error));
}, [serverFiles])
const fetchServerFiles = () => {
fetch(`http://localhost:8000/api/files/filter?peer_id=1`, {
method: 'GET',
headers: getAuthHeaders()
}) // replace with local api endpoint
.then(response => response.json())
.then(data => {
setServerFiles(data)
})
.catch(error => console.error(error));
}
const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
// handle file upload

View File

@@ -3,6 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom';
import styles from '../styles/Results.module.css'; // Make sure this path is correct
import { getAuthHeaders } from '../utils/getAuthHeaders';
import { File } from '../types/types';
import { Link } from 'react-router-dom';
const Results: React.FC = () => {
const [files, setFiles] = useState<File[]>([]);
@@ -113,7 +114,7 @@ function DownloadButton({ file }: { file: File }) {
<>
{
success === true ?
<p>Downloaded!</p> :
<Link to="/register">Downloaded!</Link> :
<button onClick={handleDownload}>Download</button>
}
</>

View File

@@ -38,7 +38,7 @@ export interface File {
downvotes: number[];
}
enum Status {
export enum Status {
HOSTED = "HOSTED",
PRIVATE = 'PRIVATE',
}