adding the api

This commit is contained in:
Demi-Play 2023-12-24 09:14:33 +03:00
parent 949e186112
commit 3c109d1619
22 changed files with 714 additions and 144 deletions

12
package-lock.json generated
View File

@ -16,7 +16,11 @@
"@mui/styled-engine-sc": "^6.0.0-alpha.9", "@mui/styled-engine-sc": "^6.0.0-alpha.9",
"@mui/x-date-pickers": "^6.18.6", "@mui/x-date-pickers": "^6.18.6",
"axios": "^1.6.2", "axios": "^1.6.2",
<<<<<<< Updated upstream
"dayjs": "^1.11.10", "dayjs": "^1.11.10",
=======
"js-cookie": "^3.0.5",
>>>>>>> Stashed changes
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-router-dom": "^6.21.1", "react-router-dom": "^6.21.1",
@ -3657,6 +3661,14 @@
"set-function-name": "^2.0.1" "set-function-name": "^2.0.1"
} }
}, },
"node_modules/js-cookie": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
"integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
"engines": {
"node": ">=14"
}
},
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",

View File

@ -18,7 +18,11 @@
"@mui/styled-engine-sc": "^6.0.0-alpha.9", "@mui/styled-engine-sc": "^6.0.0-alpha.9",
"@mui/x-date-pickers": "^6.18.6", "@mui/x-date-pickers": "^6.18.6",
"axios": "^1.6.2", "axios": "^1.6.2",
<<<<<<< Updated upstream
"dayjs": "^1.11.10", "dayjs": "^1.11.10",
=======
"js-cookie": "^3.0.5",
>>>>>>> Stashed changes
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-router-dom": "^6.21.1", "react-router-dom": "^6.21.1",

View File

@ -1,10 +1,13 @@
import Header from "../Header"; import Header from "../Header";
import styles from "./style.module.scss"; import styles from "./style.module.scss";
import TableMeets from '../TableMeets/TableMeets' import TableMeets from '../TableMeets/TableMeets'
import Home from "../Home/Home"; // import EditForm from "../edit/EditMeetsForm";
// import FetchUtils from "../utils/FetchUtils"; import PostForm from "../post/Meets";
import EditForm from "../edit/EditForm"; import Users from "../post/Users";
import PostForm from "../post/PostForm"; // import User from "../get/User";
import Questions from "../post/Questions";
import { GetQuestions } from "../get/Questions";
const APIURL = '' const APIURL = ''
@ -66,10 +69,16 @@ const HomePage = () => {
<div className={styles.cards__container}> <div className={styles.cards__container}>
<div className={styles.card}></div> <div className={styles.card}></div>
</div> </div>
<Home></Home> {/* <Questions></Questions> */}
{/* <Home></Home> */}
{/* <FetchUtils></FetchUtils> */} {/* <FetchUtils></FetchUtils> */}
{/* <PostForm /> */} {/* <PostForm /> */}
{/* <EditForm /> */} {/* <EditForm /> */}
{/* <Users></Users> */}
{/* <User></User> */}
{/* <GetQuestions></GetQuestions> */}
<Users></Users>
</section> </section>

View File

@ -3,10 +3,9 @@ import styles from './style.module.scss';
import clock from '../../img/MeetPage/Clock.png'; import clock from '../../img/MeetPage/Clock.png';
import globe from '../../img/MeetPage/Globe.png'; import globe from '../../img/MeetPage/Globe.png';
import avatar from '../../img/MeetPage/avatar.png'; import avatar from '../../img/MeetPage/avatar.png';
// import { HttpApiMethods } from '../utils/FetchUtils.jsx';
import {useState} from 'react' import {useState} from 'react'
import { style } from "@mui/system"; import { style } from "@mui/system";
import Card from "../Card"; // import Card from "../Card";
import Grid from '@mui/material/Grid'; import Grid from '@mui/material/Grid';
import Box from '@mui/material/Box'; import Box from '@mui/material/Box';

View File

@ -1,71 +1,71 @@
import React from 'react'; // import React from 'react';
import './style.css' // import './style.css'
import styled from 'styled-components'; // import styled from 'styled-components';
import { HttpApiMethods } from '../utils/FetchUtils'; // // import { HttpApiMethods } from '../utils/FetchUtils';
import {useState} from 'react' // import {useState} from 'react'
import EditForm from '../post/PostForm'; // import EditForm from '../post/Meets';
import Grid from '@mui/material/Grid'; // import Grid from '@mui/material/Grid';
import Card from '../Card'; // import Card from '../Card';
import Box from '@mui/material/Box'; // import Box from '@mui/material/Box';
function extractDateTime(dateString) { // function extractDateTime(dateString) {
const dateTime = new Date(dateString); // const dateTime = new Date(dateString);
const date = dateTime.toLocaleDateString(); // const date = dateTime.toLocaleDateString();
const time = dateTime.toLocaleTimeString(); // const time = dateTime.toLocaleTimeString();
return { date, time }; // return { date, time };
} // }
const httpApiMethods = new HttpApiMethods() // const httpApiMethods = new HttpApiMethods()
const meets = await httpApiMethods.GetMeetings() // const meets = await httpApiMethods.GetMeetings()
const Home = () => { // const Home = () => {
const [count, setCount] = useState(7) // const [count, setCount] = useState(7)
const filterMeet = meets.filter( (item, index) => index <= count ) // const filterMeet = meets.filter( (item, index) => index <= count )
const allMeets = () => { // const allMeets = () => {
setCount(meets.length) // setCount(meets.length)
} // }
return ( // return (
<> // <>
<Box sx={{ flexGrow: 1, display: 'flex', justifyContent: 'flex-end', alignItems:'center'}}> // <Box sx={{ flexGrow: 1, display: 'flex', justifyContent: 'flex-end', alignItems:'center'}}>
<Grid container sx={{width: '96%'}}> // <Grid container sx={{width: '96%'}}>
{Array.isArray(meets) ? ( // {Array.isArray(meets) ? (
filterMeet.map((item, index) => ( // filterMeet.map((item, index) => (
<Grid item sm={6} xl={3} md={6} lg={4} key={index}> // <Grid item sm={6} xl={3} md={6} lg={4} key={index}>
<div className='event_card' > // <div className='event_card' >
<div className="event-card__photo"><img className='img' src={httpApiMethods.APIURL_FILES + item.speackerImage} alt="{item.speackerImage}" /></div> // <div className="event-card__photo"><img className='img' src={httpApiMethods.APIURL_FILES + item.speackerImage} alt="{item.speackerImage}" /></div>
<div className="taggs"> // <div className="taggs">
<div className='tagged'>{item.tags}</div> // <div className='tagged'>{item.tags}</div>
<div className="feautures">{item.type}</div> // <div className="feautures">{item.type}</div>
</div> // </div>
<h4 className="event-card__title">{item.title}</h4> // <h4 className="event-card__title">{item.title}</h4>
<p className="event-card__date">{extractDateTime(item.time).date}, в {extractDateTime(item.time).time} по Московскому времени</p> // <p className="event-card__date">{extractDateTime(item.time).date}, в {extractDateTime(item.time).time} по Московскому времени</p>
</div> // </div>
</Grid> // </Grid>
)) // ))
) : ( // ) : (
<p>Неверный тип данных с сервера!</p> // <p>Неверный тип данных с сервера!</p>
)} // )}
{/* <EditForm></EditForm> */} // {/* <EditForm></EditForm> */}
</Grid> // </Grid>
</Box> // </Box>
<div className='allButton__container'> // <div className='allButton__container'>
<button onClick={allMeets} className='allButton'>Все мероприятия</button> // <button onClick={allMeets} className='allButton'>Все мероприятия</button>
</div> // </div>
</> // </>
); // );
} // }
export default Home; // export default Home;

View File

@ -0,0 +1,11 @@
import React from 'react';
const DeleteReactions = () => {
return (
<div>
</div>
);
}
export default DeleteReactions;

View File

@ -1,7 +1,7 @@
import React, { useRef, useState, useEffect } from 'react'; import React, { useRef, useState, useEffect } from 'react';
import { HttpApiMethods } from '../utils/FetchUtils'; import { HttpApiMethods } from '../utils/FetchUtils';
const EditForm = () => { const EditMeetsForm = () => {
const formRef = useRef(null); const formRef = useRef(null);
const [dataIsLoad, setDataIsLoad] = useState(false); const [dataIsLoad, setDataIsLoad] = useState(false);
const httpApiMethods = new HttpApiMethods(); const httpApiMethods = new HttpApiMethods();
@ -13,14 +13,14 @@ const EditForm = () => {
const updatedMeets = await httpApiMethods.EditMeetings(formData); const updatedMeets = await httpApiMethods.EditMeetings(formData);
}; };
// const handleData = (data) => { const handleData = (data) => {
// if (Array.isArray(data) && data.length > 0) { if (Array.isArray(data) && data.length > 0) {
// setData(data); setData(data);
// } else { } else {
// setData([]); setData([]);
// console.error('Неверный тип данных с сервера!'); console.error('Неверный тип данных с сервера!');
// } }
// }; };
const fetchData = async () => { const fetchData = async () => {
try { try {
@ -41,10 +41,9 @@ const EditForm = () => {
}; };
const handleChange = (event) => { const handleChange = (event) => {
setSelectedData({ setSelectedId(event.target.value);
...selectedData, const selected = data.find((item) => item.id === event.target.value);
[event.target.name]: event.target.value setSelectedData(selected);
});
}; };
useEffect(() => { useEffect(() => {
@ -60,23 +59,30 @@ const EditForm = () => {
<h2>Edit</h2> <h2>Edit</h2>
<div>{dataIsLoad ? "Данные успешно загружены" : ""}</div> <div>{dataIsLoad ? "Данные успешно загружены" : ""}</div>
<ul> <ul>
{Array.isArray(data) && data.length > 0 ? ( {Array.isArray(data) && data.length > 0 ? (
data.map((item, index) => ( data.map((item, index) => (
<button style={{border: '1px solid black'}} onClick={() => handleDataClick(item.id)} key={index}> <button style={{ border: '1px solid black' }} onClick={() => handleDataClick(item.id)} key={index}>
{/* {item.id} */} {/* {item.id} */}
<div>{item.title}</div> <div>{item.title}</div>
</button> </button>
)) ))
) : ( ) : (
<p>Неверный тип данных с сервера!</p> <p>Неверный тип данных с сервера!</p>
)} )}
</ul> </ul>
{/* автозаполнение инпутов */} {/* автозаполнение инпутов */}
{selectedData && ( {selectedData && (
<> <>
<form ref={formRef}> <form ref={formRef}>
<input type="text" placeholder='id' name='id' value={selectedData.id} onChange={handleChange} /> <select name="id" value={selectedData.id} onChange={handleChange}>
{data.map((item) => (
<option key={item.id} value={item.id}>
{item.id}
</option>
))}
</select>
{/* <input type="text" placeholder='id' name='id' value={selectedData.id} onChange={handleChange} /> */}
<input type="text" placeholder='name' name='title' value={selectedData.title} onChange={handleChange} /> <input type="text" placeholder='name' name='title' value={selectedData.title} onChange={handleChange} />
<input type="text" placeholder='time' name='time' value={selectedData.time} onChange={handleChange} /> <input type="text" placeholder='time' name='time' value={selectedData.time} onChange={handleChange} />
<input type="text" placeholder='theme' name='theme' value={selectedData.theme} onChange={handleChange} /> <input type="text" placeholder='theme' name='theme' value={selectedData.theme} onChange={handleChange} />
@ -92,12 +98,12 @@ const EditForm = () => {
<input type="text" placeholder='placeAdress' name='placeAdress' value={selectedData.placeAdress} onChange={handleChange} /> <input type="text" placeholder='placeAdress' name='placeAdress' value={selectedData.placeAdress} onChange={handleChange} />
<input type="text" placeholder='duration' name='duration' value={selectedData.duration} onChange={handleChange} /> <input type="text" placeholder='duration' name='duration' value={selectedData.duration} onChange={handleChange} />
<button onClick={post}>Edit</button> <button onClick={post}>Edit</button>
</form> </form>
</> </>
)} )}
</div> </div>
); );
}; };
export default EditForm; export default EditMeetsForm;

View File

@ -0,0 +1,11 @@
import React from 'react';
const EditQuestions = () => {
return (
<div>
</div>
);
}
export default EditQuestions;

View File

@ -0,0 +1,11 @@
import React from 'react';
const EditReviews = () => {
return (
<div>
</div>
);
}
export default EditReviews;

View File

@ -0,0 +1,11 @@
import React from 'react';
const EditUsers = () => {
return (
<div>
</div>
);
}
export default EditUsers;

View File

@ -0,0 +1,82 @@
import React from 'react';
import './style.css'
import styled from 'styled-components';
// import { HttpApiMethods } from '../utils/FetchUtils';
import {useState} from 'react'
import EditMeetsForm from '../edit/EditMeetsForm';
import Grid from '@mui/material/Grid';
// import Card from '../Card';
import Box from '@mui/material/Box';
function extractDateTime(dateString) {
const dateTime = new Date(dateString);
const date = dateTime.toLocaleDateString();
const time = dateTime.toLocaleTimeString();
return { date, time };
}
const httpApiMethods = new HttpApiMethods()
const meets = await httpApiMethods.GetMeetings()
export const MeetsGetByID = () => {
return (
<div>
</div>
);
}
const GetMeets = () => {
const [count, setCount] = useState(7)
const filterMeet = meets.filter( (item, index) => index <= count )
const allMeets = () => {
setCount(meets.length)
}
return (
<>
<Box sx={{ flexGrow: 1, display: 'flex', justifyContent: 'flex-end', alignItems:'center'}}>
<Grid container sx={{width: '96%'}}>
{Array.isArray(meets) ? (
filterMeet.map((item, index) => (
<Grid item sm={6} xl={3} md={6} lg={4} key={index}>
<div className='event_card' >
<div className="event-card__photo"><img className='img' src={httpApiMethods.APIURL_FILES + item.speackerImage} alt="{item.speackerImage}" /></div>
<div className="taggs">
<div className='tagged'>{item.tags}</div>
<div className="feautures">{item.type}</div>
</div>
<h4 className="event-card__title">{item.title}</h4>
<p className="event-card__date">{extractDateTime(item.time).date}, в {extractDateTime(item.time).time} по Московскому времени</p>
</div>
</Grid>
))
) : (
<p>Неверный тип данных с сервера!</p>
)}
{/* <EditForm></EditForm> */}
</Grid>
</Box>
<div className='allButton__container'>
<button onClick={allMeets} className='allButton'>Все мероприятия</button>
</div>
</>
);
}
export default GetMeets;

View File

@ -0,0 +1,53 @@
import React from 'react';
import { HttpApiMethods } from '../utils/FetchUtils';
const httpApiMethods = new HttpApiMethods
export const GetQuestions = async () => {
const questions = await httpApiMethods.GetQuestions()
return (
<div>
<div>
{Array.isArray(questions) ? (
questions.map((item, index) => (
<div key={index}>
<div>{item.id}</div>
<div>{item.text}</div>
<div>{item.meetingId}</div>
<div>{item.userId}</div>
</div>
))
) : (
<p>Неверный тип данных с сервера!</p>
)}
</div>
</div>
);
}
const GetQuestionsByID = async (id) => {
const question = await httpApiMethods.GetByIDQuestions(id)
return (
<div>
{Array.isArray(question) ? (
question.map((item, index) => (
<div key={index}>
<div>{item.id}</div>
<div>{item.text}</div>
<div>{item.meetingId}</div>
<div>{item.userId}</div>
</div>
))
) : (
<p>Неверный тип данных с сервера!</p>
)}
</div>
);
}
export default GetQuestionsByID;

View File

@ -0,0 +1,19 @@
import React from 'react';
export const GetByIDReactions = () => {
return (
<div>
</div>
);
}
const getReactions = () => {
return (
<div>
</div>
);
}
export default Reactions;

View File

@ -0,0 +1,19 @@
import React from 'react';
export const GetReviews = () => {
return (
<div>
</div>
);
}
const GetReviewsByID = () => {
return (
<div>
</div>
);
}
export default GetReviewsByID;

View File

@ -0,0 +1,36 @@
import React from 'react';
import { HttpApiMethods } from '../utils/FetchUtils';
import Cookies from 'js-cookie';
const User = () => {
let id = '9c69d5e7-74ec-4f92-af3a-fef7d30c55bb'
// Cookies.set('userId')
const user = new HttpApiMethods().GetUsers(id)
if (!Array.isArray(user)) {
return <p>Неверный тип данных с сервера!</p>
}
return (
<div>
{user.map((item, index) => (
<div key={index}>
<p>{item.id}</p>
<img src={item.avatarUrl} alt={item.avatarUrl}/>
<p>{item.fio}</p>
<p>{item.specialities}</p>
<a>{item.telegramBotUrl}</a>
<p>{item.level}</p>
<p>{item.userName}</p>
<p>{item.normalizedUserName}</p>
<p>{item.email}</p>
<p>{item.phoneNumber}</p>
<p>{item.id}</p>
</div>
))}
</div>
);
}
export default User;

View File

@ -0,0 +1,13 @@
import React from 'react';
const PostReviews = () => {
return (
<div>
</div>
);
}
export default PostReviews;

View File

@ -0,0 +1,51 @@
import React, { useRef, useState } from 'react';
import { HttpApiMethods } from '../utils/FetchUtils';
import Cookies from 'js-cookie';
const Questions = () => {
const formRef = useRef(null);
const [dataIsLoad, setDataIsLoad] = useState(false);
const [curentUser, setCurentUser] = useState(null);
let post = async (event) => {
event.preventDefault();
const httpApiMethods = new HttpApiMethods();
const user_id = Cookies.get('userData')
let formData = new FormData(formRef.current);
if (!formData.get('fio') || !formData.get('avatar') || !formData.get('userId') || !formData.get('text') || !formData.get('meetingId')) {
console.error('Ошибка: Не все поля формы заполнены');
return;
}
setDataIsLoad(false);
httpApiMethods.PostQuestions(formData).then(response => {
console.log(response)
setDataIsLoad(true);
meets_id = '9c69d5e7-74ec-4f92-af3a-fef7d30c55bb'
// let user_id = response.data.id;
// console.log(response)
// console.log(user_id)
});
}
return (
<div>
<h2>Создание Questions, получение ID в Cookies</h2>
<div>{dataIsLoad ? "Данные успешно загружены" : ""}</div>
<form ref={formRef} action=''>
{/* <input type="text" placeholder='userId' name={Cookies.get('userData')} /> */}
<input type="text" placeholder='userId' name='userId' value={Cookies.get('userId')} />
<input type="text" placeholder='text' name='text' />
<input type="text" placeholder='meetingId' name='meetingId' value={'9c69d5e7-74ec-4f92-af3a-fef7d30c55bb'} />
<button onClick={post}>Create</button>
</form>
</div>
);
}
export default Questions;

View File

@ -0,0 +1,13 @@
import React from 'react';
const UserAuth = () => {
return (
<div>
</div>
);
}
export default UserAuth;

View File

@ -0,0 +1,58 @@
import React, { useRef, useState } from 'react';
import { HttpApiMethods } from '../utils/FetchUtils';
import Cookies from 'js-cookie';
export const PostUserModerator = () => {
return (
<div>
</div>
);
}
const Users = () => {
const formRef = useRef(null);
const [dataIsLoad, setDataIsLoad] = useState(false);
const [curentUser, setCurentUser] = useState(null);
let post = async (event) => {
event.preventDefault();
const httpApiMethods = new HttpApiMethods();
let formData = new FormData(formRef.current);
if (!formData.get('fio') || !formData.get('avatar') || !formData.get('username') || !formData.get('specialities') || !formData.get('telegramBotUrl')) {
console.error('Ошибка: Не все поля формы заполнены');
return;
}
setDataIsLoad(false);
httpApiMethods.PostUsers(formData).then(response => {
console.log(response)
setDataIsLoad(true);
// let user_id = response.data.id;
// console.log(response)
// console.log(user_id)
Cookies.set('userId', response.id);
Cookies.set('token', response.token)
// return user_id
});
}
return (
<div>
<h2>Создание пользователя, получение ID в Cookies</h2>
<div>{dataIsLoad ? "Данные успешно загружены" : ""}</div>
<form ref={formRef} action=''>
<input type="text" placeholder='fio' name='fio' />
<input type="file" placeholder='avatar' name='avatar' />
<input type="text" placeholder='username' name='username' />
<input type="text" placeholder='specialities' name='specialities' />
<input type="text" placeholder='telegramBotUrl' name='telegramBotUrl' />
<button onClick={post}>Create</button>
</form>
</div>
);
}
export default Users;

View File

View File

@ -2,14 +2,22 @@
import axios from "axios" import axios from "axios"
import { useState } from "react" import { useState } from "react"
import './style.css' import './style.css'
import { Cookie } from "@mui/icons-material"
export class HttpApiMethods { export class HttpApiMethods {
token;
HttpApiMethods()
{
token = Cookie,get('token')
}
// URL`s // URL`s
user_id = '17e5fc7a-8f22-4c0b-8b33-5dc3a6937561'
APIURL = "https://cyberbloom.zetcraft.ru/api" APIURL = "https://cyberbloom.zetcraft.ru/api"
APIURL_FILES = "https://cyberbloom.zetcraft.ru/api/cyber-boom-files/" APIURL_FILES = "https://cyberbloom.zetcraft.ru/api/cyber-boom-files/"
// получение мероприятий по ID // получение мероприятий по ID
GetByID = async (id) => { GetByID = async (id) => {
let innerUrl = this.APIURL + `/meetings?id=${id}` let innerUrl = this.APIURL + `/meetings?id=${id}`
@ -18,7 +26,12 @@ export class HttpApiMethods {
return response.data; return response.data;
} }
// Получение всех мероприятий
//
// Получение всех мероприятий
//
GetMeetings = async () => { GetMeetings = async () => {
let innerUrl = this.APIURL + `/meetings/list?offset=0&limit=20`; let innerUrl = this.APIURL + `/meetings/list?offset=0&limit=20`;
@ -26,79 +39,218 @@ export class HttpApiMethods {
return response.data; return response.data;
} }
// Создание мероприятия // Создание мероприятия
AddMeetings = async (data) => { AddMeetings = async (data) => {
let innerUrl = this.APIURL + `/meetings`; let innerUrl = this.APIURL + `/meetings`;
let response = await axios.postForm(innerUrl, data); let response = await axios.postForm(innerUrl, data); //
return response.data; return response.data;
} }
// Редактирование уже существующего мероприятия // Редактирование уже существующего мероприятия
EditMeetings = async (data) => { EditMeetings = async (data) => {
let innerUrl = this.APIURL + `/meetings`; let innerUrl = this.APIURL + `/meetings`;
let response = await axios.putForm(innerUrl, data); let response = await axios.putForm(innerUrl, data); //
return response.data; return response.data;
} }
// Удалить мероприятие, пока что не реализовано // Удалить мероприятие, пока что не реализовано
DeleteMeetings = async (id) => { DeleteMeetings = async (id) => {
let innerUrl = this.APIURL + `/meetings?id=${id}` let innerUrl = this.APIURL + `/meetings?id=${id}`
const response = await axios.get(innerUrl) //
return response.data;
}
//
// Users
//
PostUsers = async (data) => {
let innerUrl = this.APIURL + `/users`
const responce = await axios.postForm(innerUrl, data)
return responce.data
}
PostUsersModerator = async (data) => {
let innerUrl = this.APIURL + `/users/moderator`
const responce = await axios.postForm(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} })
return responce.data.id
}
EditUsers = async (data) => {
let innerUrl = this.APIURL + `/users`
const responce = await axios.putForm(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }) //
return responce.data.id
}
GetUsers = async (id) => {
let innerUrl = this.APIURL + `/users?id=${id}`
const responce = await axios.get(innerUrl) //
return responce.data
}
GetUsersStats = async (id) => {
let innerUrl = this.APIURL + `/users/stats?id=${id}`
const responce = await axios.get(innerUrl) //
return responce.data
}
//
// Questions
//
GetByIDQuestions = async (id) => {
let innerUrl = this.APIURL + `/questions?id=${id}`
const response = await axios.get(innerUrl) const response = await axios.get(innerUrl)
return response.data; return response.data;
} }
// Получение всех мероприятий
GetQuestions = async () => {
let innerUrl = this.APIURL + `/questions/list?offset=0&limit=20`;
const response = await axios.get(innerUrl);
return response.data;
}
// Создание мероприятия
PostQuestions = async (data) => {
let innerUrl = this.APIURL + `/questions`;
let response = await axios.post(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); //
return response.data;
}
// Редактирование уже существующего мероприятия
EditQuestions = async (data) => {
let innerUrl = this.APIURL + `/questions`;
let response = await axios.put(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); //
return response.data;
}
//
// Reactions
//
GetByIDReactions = async (id) => {
let innerUrl = this.APIURL + `/reactions?id=${id}`
const response = await axios.get(innerUrl)
return response.data;
}
// Получение всех мероприятий
GetReactions = async () => {
let innerUrl = this.APIURL + `/reactions/list?offset=0&limit=20`;
const response = await axios.get(innerUrl);
return response.data;
}
// Создание мероприятия
PostReactions = async (data) => {
let innerUrl = this.APIURL + `/reactions`;
let response = await axios.post(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); //
return response.data;
}
// Редактирование уже существующего мероприятия
DeleteReactions = async (id) => {
let innerUrl = this.APIURL + `/reactions?id=${id}`;
let response = await axios.delete(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); //
return response.data;
}
//
// Reviews
//
GetByIDReviews = async (id) => {
let innerUrl = this.APIURL + `/reviews?id=${id}`
const response = await axios.get(innerUrl)
return response.data;
}
GetReviews = async () => {
let innerUrl = this.APIURL + `/reviews/list?offset=0&limit=20`;
const response = await axios.get(innerUrl);
return response.data;
}
// Создание мероприятия
PostReviews = async (data) => {
let innerUrl = this.APIURL + `/reviews`;
let response = await axios.post(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); //
return response.data;
}
// Редактирование уже существующего мероприятия
EditReviews = async (data) => {
let innerUrl = this.APIURL + `/reviews`;
let response = await axios.put(innerUrl, data, { headers: {"Authorization" : `Bearer ${token}`} }); //
return response.data;
}
} }
const httpApiMethods = new HttpApiMethods() // Создание экземпляра класса HttpApiMethods
const meets = httpApiMethods.GetMeetings()
const FetchUtils = () => { const FetchUtils = async () => {
const httpApiMethods = new HttpApiMethods() // Создание экземпляра класса HttpApiMethods
const meets = await httpApiMethods.GetMeetings()
const [user, setUser] = useState([]) const [user, setUser] = useState([])
// async function getData() { // async function getData() {
// const response = await axios.get(APIURL) // const response = await axios.get()
// console.log(response.data) // console.log(response.data)
// setUser(response.data) // setUser(response.data)
// } // }
// const removeList = () => { const removeList = () => {
// setUser([]) setUser([])
} }
// return ( return (
// <> <>
// <button onClick={getData}>Click to Get Data</button> <button onClick={getData}>Click to Get Data</button>
// <button onClick={removeList}>Click to Remove Data Listing</button> <button onClick={removeList}>Click to Remove Data Listing</button>
// {/* Mapping of data */} {/* Mapping of data */}
// <div> <div>
// {/* {Array.isArray(meets) ? ( {Array.isArray(meets) ? (
// <ul> <ul>
// {meets.map((item) => ( {meets.map((item) => (
// <ol key={item.id}> <ol key={item.id}>
// <li>{item.title}</li> <li>{item.title}</li>
// <li>{item.time}</li> <li>{item.time}</li>
// <li>{item.speakerName}</li> <li>{item.speakerName}</li>
// <li>{item.speackerImage}</li> <li>{item.speackerImage}</li>
// <li>{item.splecializations}</li> <li>{item.splecializations}</li>
// <li>{item.type}</li> <li>{item.type}</li>
// <li>{item.speakerTelephone}</li> <li>{item.speakerTelephone}</li>
// <li>{item.speakerEmail}</li> <li>{item.speakerEmail}</li>
// <li>{item.tags}</li> <li>{item.tags}</li>
// <li>{item.videoUrl}</li> <li>{item.videoUrl}</li>
// </ol> </ol>
// ))} ))}
// </ul> </ul>
// ) : ( ) : (
// <p>Bad data type from server!</p> <p>Bad data type from server!</p>
// )} */} )}
// </div> </div>
// </> </>
// ); );
// } }
// export default FetchUtils; export default FetchUtils;