[feat][refactor] add events and edit users #70
							
								
								
									
										602
									
								
								server/routers/kfu-m-24-1/sberhubproject/events/data/event.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										602
									
								
								server/routers/kfu-m-24-1/sberhubproject/events/data/event.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,602 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "id": 1,
 | 
			
		||||
    "name": "Конференция 2025",
 | 
			
		||||
    "description": "Ежегодная конференция по технологиям",
 | 
			
		||||
    "date": "2025-03-15T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 2,
 | 
			
		||||
    "name": "Командная встреча",
 | 
			
		||||
    "description": "Ежеквартальная встреча для согласования целей",
 | 
			
		||||
    "date": 1672444800000
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 3,
 | 
			
		||||
    "name": "День рождения",
 | 
			
		||||
    "description": "Празднование 30-летия Ивана",
 | 
			
		||||
    "date": "2025-01-25"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 4,
 | 
			
		||||
    "name": "Вебинар",
 | 
			
		||||
    "description": "Онлайн-вебинар по лучшим практикам TypeScript",
 | 
			
		||||
    "date": "2025-02-10T14:30:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 5,
 | 
			
		||||
    "name": "Митап разработчиков",
 | 
			
		||||
    "description": "Встреча разработчиков для обмена опытом",
 | 
			
		||||
    "date": "2025-04-05T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 6,
 | 
			
		||||
    "name": "Хакатон",
 | 
			
		||||
    "description": "48-часовой марафон программирования",
 | 
			
		||||
    "date": "2025-05-20T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 7,
 | 
			
		||||
    "name": "Обучение Agile",
 | 
			
		||||
    "description": "Тренинг по методологии Agile",
 | 
			
		||||
    "date": "2025-06-10T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 8,
 | 
			
		||||
    "name": "Презентация продукта",
 | 
			
		||||
    "description": "Анонс нового продукта компании",
 | 
			
		||||
    "date": "2025-07-01T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 9,
 | 
			
		||||
    "name": "Корпоратив",
 | 
			
		||||
    "description": "Ежегодный корпоративный праздник",
 | 
			
		||||
    "date": "2025-08-15T19:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 10,
 | 
			
		||||
    "name": "Обучение DevOps",
 | 
			
		||||
    "description": "Курс по основам DevOps",
 | 
			
		||||
    "date": "2025-09-05T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 11,
 | 
			
		||||
    "name": "Встреча с клиентом",
 | 
			
		||||
    "description": "Обсуждение нового проекта",
 | 
			
		||||
    "date": "2025-10-12T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 12,
 | 
			
		||||
    "name": "Технический семинар",
 | 
			
		||||
    "description": "Семинар по новым технологиям",
 | 
			
		||||
    "date": "2025-11-20T13:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 13,
 | 
			
		||||
    "name": "Рождественская вечеринка",
 | 
			
		||||
    "description": "Празднование Рождества",
 | 
			
		||||
    "date": "2025-12-24T20:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 14,
 | 
			
		||||
    "name": "Планирование года",
 | 
			
		||||
    "description": "Стратегическое планирование на следующий год",
 | 
			
		||||
    "date": "2026-01-10T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 15,
 | 
			
		||||
    "name": "Обучение Python",
 | 
			
		||||
    "description": "Курс для начинающих",
 | 
			
		||||
    "date": "2026-02-15T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 16,
 | 
			
		||||
    "name": "Встреча инвесторов",
 | 
			
		||||
    "description": "Презентация финансовых результатов",
 | 
			
		||||
    "date": "2026-03-01T15:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 17,
 | 
			
		||||
    "name": "Марафон кодирования",
 | 
			
		||||
    "description": "24-часовой марафон",
 | 
			
		||||
    "date": "2026-04-05T12:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 18,
 | 
			
		||||
    "name": "Обучение React",
 | 
			
		||||
    "description": "Продвинутый курс по React",
 | 
			
		||||
    "date": "2026-05-10T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 19,
 | 
			
		||||
    "name": "Конференция AI",
 | 
			
		||||
    "description": "Конференция по искусственному интеллекту",
 | 
			
		||||
    "date": "2026-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 20,
 | 
			
		||||
    "name": "День открытых дверей",
 | 
			
		||||
    "description": "Знакомство с компанией",
 | 
			
		||||
    "date": "2026-07-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 21,
 | 
			
		||||
    "name": "Обучение Docker",
 | 
			
		||||
    "description": "Курс по контейнеризации",
 | 
			
		||||
    "date": "2026-08-10T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 22,
 | 
			
		||||
    "name": "Встреча с партнерами",
 | 
			
		||||
    "description": "Обсуждение сотрудничества",
 | 
			
		||||
    "date": "2026-09-05T13:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 23,
 | 
			
		||||
    "name": "Технический митап",
 | 
			
		||||
    "description": "Обсуждение новых технологий",
 | 
			
		||||
    "date": "2026-10-12T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 24,
 | 
			
		||||
    "name": "Хэллоуин",
 | 
			
		||||
    "description": "Корпоративная вечеринка",
 | 
			
		||||
    "date": "2026-10-31T20:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 25,
 | 
			
		||||
    "name": "Обучение Kubernetes",
 | 
			
		||||
    "description": "Курс по оркестрации контейнеров",
 | 
			
		||||
    "date": "2026-11-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 26,
 | 
			
		||||
    "name": "Встреча команды",
 | 
			
		||||
    "description": "Обсуждение текущих задач",
 | 
			
		||||
    "date": "2026-12-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 27,
 | 
			
		||||
    "name": "Новогодний корпоратив",
 | 
			
		||||
    "description": "Празднование Нового года",
 | 
			
		||||
    "date": "2026-12-31T21:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 28,
 | 
			
		||||
    "name": "Обучение GraphQL",
 | 
			
		||||
    "description": "Курс по GraphQL",
 | 
			
		||||
    "date": "2027-01-10T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 29,
 | 
			
		||||
    "name": "Конференция Blockchain",
 | 
			
		||||
    "description": "Конференция по блокчейн-технологиям",
 | 
			
		||||
    "date": "2027-02-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 30,
 | 
			
		||||
    "name": "Встреча с заказчиком",
 | 
			
		||||
    "description": "Обсуждение требований",
 | 
			
		||||
    "date": "2027-03-01T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 31,
 | 
			
		||||
    "name": "Обучение Node.js",
 | 
			
		||||
    "description": "Курс по серверному JavaScript",
 | 
			
		||||
    "date": "2027-04-05T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 32,
 | 
			
		||||
    "name": "Митап по DevOps",
 | 
			
		||||
    "description": "Обсуждение лучших практик",
 | 
			
		||||
    "date": "2027-05-10T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 33,
 | 
			
		||||
    "name": "Конференция Cloud",
 | 
			
		||||
    "description": "Конференция по облачным технологиям",
 | 
			
		||||
    "date": "2027-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 34,
 | 
			
		||||
    "name": "Обучение Security",
 | 
			
		||||
    "description": "Курс по кибербезопасности",
 | 
			
		||||
    "date": "2027-07-01T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 35,
 | 
			
		||||
    "name": "Встреча с командой",
 | 
			
		||||
    "description": "Планирование спринта",
 | 
			
		||||
    "date": "2027-08-10T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 36,
 | 
			
		||||
    "name": "Обучение AWS",
 | 
			
		||||
    "description": "Курс по Amazon Web Services",
 | 
			
		||||
    "date": "2027-09-05T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 37,
 | 
			
		||||
    "name": "Конференция Big Data",
 | 
			
		||||
    "description": "Конференция по большим данным",
 | 
			
		||||
    "date": "2027-10-12T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 38,
 | 
			
		||||
    "name": "Обучение Machine Learning",
 | 
			
		||||
    "description": "Курс по машинному обучению",
 | 
			
		||||
    "date": "2027-11-15T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 39,
 | 
			
		||||
    "name": "Встреча с инвесторами",
 | 
			
		||||
    "description": "Презентация новых проектов",
 | 
			
		||||
    "date": "2027-12-01T15:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 40,
 | 
			
		||||
    "name": "Новогодний митап",
 | 
			
		||||
    "description": "Подведение итогов года",
 | 
			
		||||
    "date": "2027-12-31T20:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 41,
 | 
			
		||||
    "name": "Обучение Go",
 | 
			
		||||
    "description": "Курс по языку Go",
 | 
			
		||||
    "date": "2028-01-10T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 42,
 | 
			
		||||
    "name": "Конференция IoT",
 | 
			
		||||
    "description": "Конференция по интернету вещей",
 | 
			
		||||
    "date": "2028-02-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 43,
 | 
			
		||||
    "name": "Встреча с партнерами",
 | 
			
		||||
    "description": "Обсуждение новых инициатив",
 | 
			
		||||
    "date": "2028-03-01T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 44,
 | 
			
		||||
    "name": "Обучение Rust",
 | 
			
		||||
    "description": "Курс по языку Rust",
 | 
			
		||||
    "date": "2028-04-05T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 45,
 | 
			
		||||
    "name": "Митап по AI",
 | 
			
		||||
    "description": "Обсуждение трендов в AI",
 | 
			
		||||
    "date": "2028-05-10T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 46,
 | 
			
		||||
    "name": "Конференция Cybersecurity",
 | 
			
		||||
    "description": "Конференция по кибербезопасности",
 | 
			
		||||
    "date": "2028-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 47,
 | 
			
		||||
    "name": "Обучение Vue.js",
 | 
			
		||||
    "description": "Курс по фреймворку Vue.js",
 | 
			
		||||
    "date": "2028-07-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 48,
 | 
			
		||||
    "name": "Встреча команды",
 | 
			
		||||
    "description": "Обсуждение текущих проектов",
 | 
			
		||||
    "date": "2028-08-10T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 49,
 | 
			
		||||
    "name": "Обучение Angular",
 | 
			
		||||
    "description": "Курс по фреймворку Angular",
 | 
			
		||||
    "date": "2028-09-05T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 50,
 | 
			
		||||
    "name": "Конференция DevOps",
 | 
			
		||||
    "description": "Конференция по DevOps",
 | 
			
		||||
    "date": "2028-10-12T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 51,
 | 
			
		||||
    "name": "Обучение SQL",
 | 
			
		||||
    "description": "Курс по базам данных",
 | 
			
		||||
    "date": "2028-11-15T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 52,
 | 
			
		||||
    "name": "Встреча с клиентом",
 | 
			
		||||
    "description": "Обсуждение новых требований",
 | 
			
		||||
    "date": "2028-12-01T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 53,
 | 
			
		||||
    "name": "Новогодний корпоратив",
 | 
			
		||||
    "description": "Празднование Нового года",
 | 
			
		||||
    "date": "2028-12-31T21:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 54,
 | 
			
		||||
    "name": "Обучение NoSQL",
 | 
			
		||||
    "description": "Курс по NoSQL базам данных",
 | 
			
		||||
    "date": "2029-01-10T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 55,
 | 
			
		||||
    "name": "Конференция Frontend",
 | 
			
		||||
    "description": "Конференция по фронтенд-разработке",
 | 
			
		||||
    "date": "2029-02-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 56,
 | 
			
		||||
    "name": "Встреча с командой",
 | 
			
		||||
    "description": "Планирование задач",
 | 
			
		||||
    "date": "2029-03-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 57,
 | 
			
		||||
    "name": "Обучение Svelte",
 | 
			
		||||
    "description": "Курс по фреймворку Svelte",
 | 
			
		||||
    "date": "2029-04-05T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 58,
 | 
			
		||||
    "name": "Митап по Backend",
 | 
			
		||||
    "description": "Обсуждение backend-разработки",
 | 
			
		||||
    "date": "2029-05-10T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 59,
 | 
			
		||||
    "name": "Конференция Mobile",
 | 
			
		||||
    "description": "Конференция по мобильной разработке",
 | 
			
		||||
    "date": "2029-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 60,
 | 
			
		||||
    "name": "Обучение Flutter",
 | 
			
		||||
    "description": "Курс по Flutter",
 | 
			
		||||
    "date": "2029-07-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 61,
 | 
			
		||||
    "name": "Встреча с партнерами",
 | 
			
		||||
    "description": "Обсуждение новых проектов",
 | 
			
		||||
    "date": "2029-08-10T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 62,
 | 
			
		||||
    "name": "Обучение Kotlin",
 | 
			
		||||
    "description": "Курс по языку Kotlin",
 | 
			
		||||
    "date": "2029-09-05T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 63,
 | 
			
		||||
    "name": "Конференция GameDev",
 | 
			
		||||
    "description": "Конференция по разработке игр",
 | 
			
		||||
    "date": "2029-10-12T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 64,
 | 
			
		||||
    "name": "Обучение Unity",
 | 
			
		||||
    "description": "Курс по Unity",
 | 
			
		||||
    "date": "2029-11-15T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 65,
 | 
			
		||||
    "name": "Встреча с клиентом",
 | 
			
		||||
    "description": "Обсуждение фидбэка",
 | 
			
		||||
    "date": "2029-12-01T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 66,
 | 
			
		||||
    "name": "Новогодний митап",
 | 
			
		||||
    "description": "Подведение итогов года",
 | 
			
		||||
    "date": "2029-12-31T20:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 67,
 | 
			
		||||
    "name": "Обучение Swift",
 | 
			
		||||
    "description": "Курс по языку Swift",
 | 
			
		||||
    "date": "2030-01-10T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 68,
 | 
			
		||||
    "name": "Конференция AR/VR",
 | 
			
		||||
    "description": "Конференция по AR/VR технологиям",
 | 
			
		||||
    "date": "2030-02-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 69,
 | 
			
		||||
    "name": "Встреча команды",
 | 
			
		||||
    "description": "Обсуждение текущих задач",
 | 
			
		||||
    "date": "2030-03-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 70,
 | 
			
		||||
    "name": "Обучение Dart",
 | 
			
		||||
    "description": "Курс по языку Dart",
 | 
			
		||||
    "date": "2030-04-05T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 71,
 | 
			
		||||
    "name": "Митап по Mobile",
 | 
			
		||||
    "description": "Обсуждение мобильной разработки",
 | 
			
		||||
    "date": "2030-05-10T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 72,
 | 
			
		||||
    "name": "Конференция QA",
 | 
			
		||||
    "description": "Конференция по тестированию",
 | 
			
		||||
    "date": "2030-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 73,
 | 
			
		||||
    "name": "Обучение Selenium",
 | 
			
		||||
    "description": "Курс по автоматизации тестирования",
 | 
			
		||||
    "date": "2030-07-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 74,
 | 
			
		||||
    "name": "Встреча с партнерами",
 | 
			
		||||
    "description": "Обсуждение сотрудничества",
 | 
			
		||||
    "date": "2030-08-10T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 75,
 | 
			
		||||
    "name": "Обучение Jenkins",
 | 
			
		||||
    "description": "Курс по CI/CD",
 | 
			
		||||
    "date": "2030-09-05T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 76,
 | 
			
		||||
    "name": "Конференция Automation",
 | 
			
		||||
    "description": "Конференция по автоматизации",
 | 
			
		||||
    "date": "2030-10-12T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 77,
 | 
			
		||||
    "name": "Обучение Git",
 | 
			
		||||
    "description": "Курс по системе контроля версий",
 | 
			
		||||
    "date": "2030-11-15T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 78,
 | 
			
		||||
    "name": "Встреча с клиентом",
 | 
			
		||||
    "description": "Обсуждение новых требований",
 | 
			
		||||
    "date": "2030-12-01T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 79,
 | 
			
		||||
    "name": "Новогодний корпоратив",
 | 
			
		||||
    "description": "Празднование Нового года",
 | 
			
		||||
    "date": "2030-12-31T21:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 80,
 | 
			
		||||
    "name": "Обучение Linux",
 | 
			
		||||
    "description": "Курс по операционной системе Linux",
 | 
			
		||||
    "date": "2031-01-10T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 81,
 | 
			
		||||
    "name": "Конференция Open Source",
 | 
			
		||||
    "description": "Конференция по открытому ПО",
 | 
			
		||||
    "date": "2031-02-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 82,
 | 
			
		||||
    "name": "Встреча команды",
 | 
			
		||||
    "description": "Планирование задач",
 | 
			
		||||
    "date": "2031-03-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 83,
 | 
			
		||||
    "name": "Обучение Bash",
 | 
			
		||||
    "description": "Курс по скриптингу",
 | 
			
		||||
    "date": "2031-04-05T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 84,
 | 
			
		||||
    "name": "Митап по DevOps",
 | 
			
		||||
    "description": "Обсуждение лучших практик",
 | 
			
		||||
    "date": "2031-05-10T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 85,
 | 
			
		||||
    "name": "Конференция Cloud Native",
 | 
			
		||||
    "description": "Конференция по облачным технологиям",
 | 
			
		||||
    "date": "2031-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 86,
 | 
			
		||||
    "name": "Обучение Terraform",
 | 
			
		||||
    "description": "Курс по инфраструктуре как код",
 | 
			
		||||
    "date": "2031-07-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 87,
 | 
			
		||||
    "name": "Встреча с партнерами",
 | 
			
		||||
    "description": "Обсуждение новых проектов",
 | 
			
		||||
    "date": "2031-08-10T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 88,
 | 
			
		||||
    "name": "Обучение Ansible",
 | 
			
		||||
    "description": "Курс по автоматизации",
 | 
			
		||||
    "date": "2031-09-05T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 89,
 | 
			
		||||
    "name": "Конференция Microservices",
 | 
			
		||||
    "description": "Конференция по микросервисам",
 | 
			
		||||
    "date": "2031-10-12T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 90,
 | 
			
		||||
    "name": "Обучение Kafka",
 | 
			
		||||
    "description": "Курс по потоковой обработке данных",
 | 
			
		||||
    "date": "2031-11-15T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 91,
 | 
			
		||||
    "name": "Встреча с клиентом",
 | 
			
		||||
    "description": "Обсуждение фидбэка",
 | 
			
		||||
    "date": "2031-12-01T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 92,
 | 
			
		||||
    "name": "Новогодний митап",
 | 
			
		||||
    "description": "Подведение итогов года",
 | 
			
		||||
    "date": "2031-12-31T20:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 93,
 | 
			
		||||
    "name": "Обучение Prometheus",
 | 
			
		||||
    "description": "Курс по мониторингу",
 | 
			
		||||
    "date": "2032-01-10T14:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 94,
 | 
			
		||||
    "name": "Конференция Monitoring",
 | 
			
		||||
    "description": "Конференция по мониторингу",
 | 
			
		||||
    "date": "2032-02-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 95,
 | 
			
		||||
    "name": "Встреча команды",
 | 
			
		||||
    "description": "Обсуждение текущих задач",
 | 
			
		||||
    "date": "2032-03-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 96,
 | 
			
		||||
    "name": "Обучение Grafana",
 | 
			
		||||
    "description": "Курс по визуализации данных",
 | 
			
		||||
    "date": "2032-04-05T11:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 97,
 | 
			
		||||
    "name": "Митап по SRE",
 | 
			
		||||
    "description": "Обсуждение Site Reliability Engineering",
 | 
			
		||||
    "date": "2032-05-10T18:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 98,
 | 
			
		||||
    "name": "Конференция Infrastructure",
 | 
			
		||||
    "description": "Конференция по инфраструктуре",
 | 
			
		||||
    "date": "2032-06-15T09:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 99,
 | 
			
		||||
    "name": "Обучение ELK",
 | 
			
		||||
    "description": "Курс по Elasticsearch, Logstash, Kibana",
 | 
			
		||||
    "date": "2032-07-01T10:00:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 100,
 | 
			
		||||
    "name": "Встреча с партнерами",
 | 
			
		||||
    "description": "Обсуждение сотрудничества",
 | 
			
		||||
    "date": "2032-08-10T11:00:00Z"
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										40
									
								
								server/routers/kfu-m-24-1/sberhubproject/events/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								server/routers/kfu-m-24-1/sberhubproject/events/index.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
const router = require('express').Router();
 | 
			
		||||
 | 
			
		||||
module.exports = router;
 | 
			
		||||
 | 
			
		||||
const data = require('./data/event.json');
 | 
			
		||||
const users_data = require('../users/data/users.json');
 | 
			
		||||
 | 
			
		||||
router.get('/', (req, res) => {
 | 
			
		||||
  res.json(data);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.get('/:pageSize/:page', (req, res) => {
 | 
			
		||||
  const pageSize = parseInt(req.params.pageSize);
 | 
			
		||||
  const page = parseInt(req.params.page);
 | 
			
		||||
  res.json(data.slice(pageSize * (page - 1), pageSize * page));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.post('/', (req, res) => {
 | 
			
		||||
  res.status(201).send();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.delete('/:id', (req, res) => {
 | 
			
		||||
  res.status(204).send();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.post('/:user_id/:action/:id', (req, res) => {
 | 
			
		||||
  const user_id = parseInt(req.params.user_id);
 | 
			
		||||
  const id = parseInt(req.params.id);
 | 
			
		||||
  const action = req.params.action;
 | 
			
		||||
  if (users_data.findIndex((item) => item.id === user_id) === -1 || data.findIndex((item) => item.id === id) === -1) {
 | 
			
		||||
    res.status(404).send();
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  if (action !== 'participate' && action !== 'refuse') {
 | 
			
		||||
    res.status(400).send({ error: 'Invalid action' });
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  res.status(201).send({ message: `${action} action processed` });
 | 
			
		||||
});
 | 
			
		||||
@ -1,17 +1,16 @@
 | 
			
		||||
const router = require('express').Router();
 | 
			
		||||
const interestsRouter = require('./interests');
 | 
			
		||||
const usersRouter = require('./users');
 | 
			
		||||
const eventsRouter = require('./events');
 | 
			
		||||
module.exports = router;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const delay =
 | 
			
		||||
  (ms = 1000) =>
 | 
			
		||||
  (req, res, next) => {
 | 
			
		||||
    setTimeout(next, ms);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
router.use(delay());
 | 
			
		||||
router.use('/interests', interestsRouter);
 | 
			
		||||
router.use('/users', usersRouter);
 | 
			
		||||
router.use('/users/:id', usersRouter);
 | 
			
		||||
router.use('/events', eventsRouter);
 | 
			
		||||
 | 
			
		||||
@ -5,8 +5,5 @@ module.exports = router;
 | 
			
		||||
const data = require('./data/interest.json');
 | 
			
		||||
 | 
			
		||||
router.get('/', (req, res) => {
 | 
			
		||||
    //res.status(500).send({
 | 
			
		||||
    //    message: 'Internal server error'
 | 
			
		||||
    //});
 | 
			
		||||
    res.json(data)
 | 
			
		||||
  res.json(data);
 | 
			
		||||
});
 | 
			
		||||
@ -1,113 +1,233 @@
 | 
			
		||||
[
 | 
			
		||||
    {
 | 
			
		||||
      "id": 1252744945,
 | 
			
		||||
      "username": "Иван Иванов",
 | 
			
		||||
      "photo": "https://example.com/photos/1.jpg",
 | 
			
		||||
      "about": "Разработчик с 10-летним стажем, увлекаюсь новыми технологиями.",
 | 
			
		||||
      "email": "ivan.ivanov@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Новые технологии, ИИ, техника", "label": "Новые технологии, ИИ, техника" },
 | 
			
		||||
        { "value": "Музыка", "label": "Музыка" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 2,
 | 
			
		||||
      "username": "Мария Смирнова",
 | 
			
		||||
      "photo": "https://example.com/photos/2.jpg",
 | 
			
		||||
      "about": "Люблю путешествия и фотографию, обожаю изучать новые культуры.",
 | 
			
		||||
      "email": "maria.smirnova@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Путешествия и туризм", "label": "Путешествия и туризм" },
 | 
			
		||||
        { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 3,
 | 
			
		||||
      "username": "Алексей Кузнецов",
 | 
			
		||||
      "photo": "https://example.com/photos/3.jpg",
 | 
			
		||||
      "about": "Финансовый аналитик, интересуюсь инвестициями и рынками.",
 | 
			
		||||
      "email": "aleksey.kuznetsov@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Политика, социология, активизм и дебаты", "label": "Политика, социология, активизм и дебаты" },
 | 
			
		||||
        { "value": "Математика, физика и информатика", "label": "Математика, физика и информатика" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 4,
 | 
			
		||||
      "username": "Ольга Петрова",
 | 
			
		||||
      "photo": "https://example.com/photos/4.jpg",
 | 
			
		||||
      "about": "Дизайнер интерьеров, люблю создавать уютные и стильные пространства.",
 | 
			
		||||
      "email": "olga.petrovna@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" },
 | 
			
		||||
        { "value": "Кино и другое многомодальное искусство", "label": "Кино и другое многомодальное искусство" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 5,
 | 
			
		||||
      "username": "Дмитрий Сидоров",
 | 
			
		||||
      "photo": "https://example.com/photos/5.jpg",
 | 
			
		||||
      "about": "Тренер по фитнесу, придерживаюсь здорового образа жизни.",
 | 
			
		||||
      "email": "dmitriy.sidorov@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Спорт, фитнес и ЗОЖ", "label": "Спорт, фитнес и ЗОЖ" },
 | 
			
		||||
        { "value": "Волонтерство и благотворительность", "label": "Волонтерство и благотворительность" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 6,
 | 
			
		||||
      "username": "Елена Волкова",
 | 
			
		||||
      "photo": "https://example.com/photos/6.jpg",
 | 
			
		||||
      "about": "Психолог, занимаюсь личностным ростом и развитием.",
 | 
			
		||||
      "email": "elena.volkova@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Психология и психическое здоровье", "label": "Психология и психическое здоровье" },
 | 
			
		||||
        { "value": "Литература и история", "label": "Литература и история" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 7,
 | 
			
		||||
      "username": "Артем Морозов",
 | 
			
		||||
      "photo": "https://example.com/photos/7.jpg",
 | 
			
		||||
      "about": "Ведущий мероприятий и организатор, люблю работать с людьми.",
 | 
			
		||||
      "email": "artem.morozov@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Настольные игры", "label": "Настольные игры" },
 | 
			
		||||
        { "value": "Кино и другое многомодальное искусство", "label": "Кино и другое многомодальное искусство" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 8,
 | 
			
		||||
      "username": "Ирина Фёдорова",
 | 
			
		||||
      "photo": "https://example.com/photos/8.jpg",
 | 
			
		||||
      "about": "Веду блог о моде и стиле, увлекаюсь новыми трендами.",
 | 
			
		||||
      "email": "irina.fedorova@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Мода", "label": "Мода" },
 | 
			
		||||
        { "value": "Путешествия и туризм", "label": "Путешествия и туризм" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 9,
 | 
			
		||||
      "username": "Сергей Чернов",
 | 
			
		||||
      "photo": "https://example.com/photos/9.jpg",
 | 
			
		||||
      "about": "Разработчик мобильных приложений, увлекаюсь игровыми технологиями.",
 | 
			
		||||
      "email": "sergey.chernov@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Соревновательные видеоигры", "label": "Соревновательные видеоигры" },
 | 
			
		||||
        { "value": "Новые технологии, ИИ, техника", "label": "Новые технологии, ИИ, техника" }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "id": 10,
 | 
			
		||||
      "username": "Татьяна Лебедева",
 | 
			
		||||
      "photo": "https://example.com/photos/10.jpg",
 | 
			
		||||
      "about": "Работаю в области маркетинга, увлекаюсь продвижением брендов.",
 | 
			
		||||
      "email": "tatyana.lebedeva@example.com",
 | 
			
		||||
      "interests": [
 | 
			
		||||
        { "value": "Маркетинг", "label": "Маркетинг" },
 | 
			
		||||
        { "value": "Литература и история", "label": "Литература и история" }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
  
 | 
			
		||||
  {
 | 
			
		||||
    "id": 1,
 | 
			
		||||
    "username": "Иван Иванов",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=64",
 | 
			
		||||
    "about": "Разработчик с 10-летним стажем, увлекаюсь новыми технологиями.",
 | 
			
		||||
    "email": "ivan.ivanov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Новые технологии, ИИ, техника", "label": "Новые технологии, ИИ, техника" },
 | 
			
		||||
      { "value": "Музыка", "label": "Музыка" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 2,
 | 
			
		||||
    "username": "Мария Смирнова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=47",
 | 
			
		||||
    "about": "Люблю путешествия и фотографию, обожаю изучать новые культуры.",
 | 
			
		||||
    "email": "maria.smirnova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Путешествия и туризм", "label": "Путешествия и туризм" },
 | 
			
		||||
      { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 3,
 | 
			
		||||
    "username": "Алексей Кузнецов",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=68",
 | 
			
		||||
    "about": "Финансовый аналитик, интересуюсь инвестициями и рынками.",
 | 
			
		||||
    "email": "aleksey.kuznetsov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Политика, социология, активизм и дебаты", "label": "Политика, социология, активизм и дебаты" },
 | 
			
		||||
      { "value": "Математика, физика и информатика", "label": "Математика, физика и информатика" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 4,
 | 
			
		||||
    "username": "Ольга Петрова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=49",
 | 
			
		||||
    "about": "Дизайнер интерьеров, люблю создавать уютные и стильные пространства.",
 | 
			
		||||
    "email": "olga.petrovna@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" },
 | 
			
		||||
      { "value": "Кино и другое многомодальное искусство", "label": "Кино и другое многомодальное искусство" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 5,
 | 
			
		||||
    "username": "Дмитрий Сидоров",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=60",
 | 
			
		||||
    "about": "Тренер по фитнесу, придерживаюсь здорового образа жизни.",
 | 
			
		||||
    "email": "dmitriy.sidorov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Спорт, фитнес и ЗОЖ", "label": "Спорт, фитнес и ЗОЖ" },
 | 
			
		||||
      { "value": "Волонтерство и благотворительность", "label": "Волонтерство и благотворительность" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 6,
 | 
			
		||||
    "username": "Елена Волкова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=42",
 | 
			
		||||
    "about": "Психолог, занимаюсь личностным ростом и развитием.",
 | 
			
		||||
    "email": "elena.volkova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Психология и психическое здоровье", "label": "Психология и психическое здоровье" },
 | 
			
		||||
      { "value": "Литература и история", "label": "Литература и история" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 7,
 | 
			
		||||
    "username": "Артем Морозов",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=69",
 | 
			
		||||
    "about": "Ведущий мероприятий и организатор, люблю работать с людьми.",
 | 
			
		||||
    "email": "artem.morozov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Настольные игры", "label": "Настольные игры" },
 | 
			
		||||
      { "value": "Кино и другое многомодальное искусство", "label": "Кино и другое многомодальное искусство" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 8,
 | 
			
		||||
    "username": "Ирина Фёдорова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=48",
 | 
			
		||||
    "about": "Веду блог о моде и стиле, увлекаюсь новыми трендами.",
 | 
			
		||||
    "email": "irina.fedorova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Мода", "label": "Мода" },
 | 
			
		||||
      { "value": "Путешествия и туризм", "label": "Путешествия и туризм" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 9,
 | 
			
		||||
    "username": "Сергей Чернов",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=65",
 | 
			
		||||
    "about": "Разработчик мобильных приложений, увлекаюсь игровыми технологиями.",
 | 
			
		||||
    "email": "sergey.chernov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Соревновательные видеоигры", "label": "Соревновательные видеоигры" },
 | 
			
		||||
      { "value": "Новые технологии, ИИ, техника", "label": "Новые технологии, ИИ, техника" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 10,
 | 
			
		||||
    "username": "Татьяна Лебедева",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=50",
 | 
			
		||||
    "about": "Работаю в области маркетинга, увлекаюсь продвижением брендов.",
 | 
			
		||||
    "email": "tatyana.lebedeva@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Маркетинг", "label": "Маркетинг" },
 | 
			
		||||
      { "value": "Литература и история", "label": "Литература и история" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 11,
 | 
			
		||||
    "username": "Андрей Васильев",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=70",
 | 
			
		||||
    "about": "Инженер-программист, увлекаюсь разработкой игр и виртуальной реальностью.",
 | 
			
		||||
    "email": "andrey.vasilyev@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Разработка игр", "label": "Разработка игр" },
 | 
			
		||||
      { "value": "Виртуальная реальность", "label": "Виртуальная реальность" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 12,
 | 
			
		||||
    "username": "Наталья Козлова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=51",
 | 
			
		||||
    "about": "Преподаватель литературы, люблю поэзию и классическую литературу.",
 | 
			
		||||
    "email": "natalya.kozlova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Литература и история", "label": "Литература и история" },
 | 
			
		||||
      { "value": "Образование и наука", "label": "Образование и наука" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 13,
 | 
			
		||||
    "username": "Павел Новиков",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=71",
 | 
			
		||||
    "about": "Спортсмен, занимаюсь бегом и триатлоном.",
 | 
			
		||||
    "email": "pavel.novikov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Спорт, фитнес и ЗОЖ", "label": "Спорт, фитнес и ЗОЖ" },
 | 
			
		||||
      { "value": "Путешествия и туризм", "label": "Путешествия и туризм" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 14,
 | 
			
		||||
    "username": "Екатерина Михайлова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=52",
 | 
			
		||||
    "about": "Архитектор, увлекаюсь современным дизайном и урбанистикой.",
 | 
			
		||||
    "email": "ekaterina.mikhailova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" },
 | 
			
		||||
      { "value": "Урбанистика", "label": "Урбанистика" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 15,
 | 
			
		||||
    "username": "Виктор Соколов",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=72",
 | 
			
		||||
    "about": "Бизнес-консультант, помогаю компаниям развиваться.",
 | 
			
		||||
    "email": "viktor.sokolov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Бизнес и предпринимательство", "label": "Бизнес и предпринимательство" },
 | 
			
		||||
      { "value": "Политика, социология, активизм и дебаты", "label": "Политика, социология, активизм и дебаты" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 16,
 | 
			
		||||
    "username": "Анна Павлова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=53",
 | 
			
		||||
    "about": "Художник, работаю в стиле абстракционизма.",
 | 
			
		||||
    "email": "anna.pavlova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" },
 | 
			
		||||
      { "value": "Кино и другое многомодальное искусство", "label": "Кино и другое многомодальное искусство" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 17,
 | 
			
		||||
    "username": "Денис Иванов",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=73",
 | 
			
		||||
    "about": "Ученый, занимаюсь исследованиями в области биотехнологий.",
 | 
			
		||||
    "email": "denis.ivanov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Биология и биотехнологии", "label": "Биология и биотехнологии" },
 | 
			
		||||
      { "value": "Образование и наука", "label": "Образование и наука" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 18,
 | 
			
		||||
    "username": "Людмила Кузнецова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=54",
 | 
			
		||||
    "about": "Повар, специализируюсь на авторской кухне.",
 | 
			
		||||
    "email": "lyudmila.kuznetsova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Кулинария", "label": "Кулинария" },
 | 
			
		||||
      { "value": "Путешествия и туризм", "label": "Путешествия и туризм" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 19,
 | 
			
		||||
    "username": "Григорий Петров",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=74",
 | 
			
		||||
    "about": "Музыкант, играю на гитаре и пишу песни.",
 | 
			
		||||
    "email": "grigoriy.petrov@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Музыка", "label": "Музыка" },
 | 
			
		||||
      { "value": "Кино и другое многомодальное искусство", "label": "Кино и другое многомодальное искусство" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 20,
 | 
			
		||||
    "username": "Валентина Семенова",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=55",
 | 
			
		||||
    "about": "Врач, специализируюсь на профилактической медицине.",
 | 
			
		||||
    "email": "valentina.semenova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Медицина и здоровье", "label": "Медицина и здоровье" },
 | 
			
		||||
      { "value": "Спорт, фитнес и ЗОЖ", "label": "Спорт, фитнес и ЗОЖ" }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "id": 1252744945,
 | 
			
		||||
    "username": "Моряков Сергей",
 | 
			
		||||
    "photo": "https://i.pravatar.cc/150?img=50",
 | 
			
		||||
    "about": "Люблю путешествия и фотографию, обожаю изучать новые культуры.",
 | 
			
		||||
    "email": "maria.smirnova@example.com",
 | 
			
		||||
    "interests": [
 | 
			
		||||
      { "value": "Путешествия и туризм", "label": "Путешествия и туризм" },
 | 
			
		||||
      { "value": "Искусство, фотография и дизайн", "label": "Искусство, фотография и дизайн" }
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
@ -5,35 +5,44 @@ module.exports = router;
 | 
			
		||||
const data = require('./data/users.json');
 | 
			
		||||
 | 
			
		||||
router.get('/', (req, res) => {
 | 
			
		||||
    //res.status(500).send({
 | 
			
		||||
    //    message: 'Internal server error'
 | 
			
		||||
    //});
 | 
			
		||||
    res.json(data)
 | 
			
		||||
  res.json(data);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.get('/:pageSize/:page', (req, res) => {
 | 
			
		||||
  const pageSize = parseInt(req.params.pageSize);
 | 
			
		||||
  const page = parseInt(req.params.page);
 | 
			
		||||
  res.json(data.slice(pageSize * (page - 1), pageSize * page));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.get('/:id', (req, res) => {
 | 
			
		||||
    //res.status(500).send({
 | 
			
		||||
    //    message: 'Internal server error'
 | 
			
		||||
    //});
 | 
			
		||||
    const userId = parseInt(req.params.id);
 | 
			
		||||
    res.json(data.find(item => item.id = userId));
 | 
			
		||||
  const userId = parseInt(req.params.id);
 | 
			
		||||
  res.json(data.find((item) => item.id === userId));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.post('/', (req, res) => {
 | 
			
		||||
    //res.status(500).send({
 | 
			
		||||
    //    message: 'Internal server error'
 | 
			
		||||
    //});
 | 
			
		||||
    const data = req.body;
 | 
			
		||||
  res.status(201).send();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.post('/:to_id/:action/:from_id', (req, res) => {
 | 
			
		||||
  const to_id = parseInt(req.params.to_id);
 | 
			
		||||
  const from_id = parseInt(req.params.from_id);
 | 
			
		||||
  const action = req.params.action;
 | 
			
		||||
  if (data.findIndex((item) => item.id === to_id) === -1 || data.findIndex((item) => item.id === from_id) === -1) {
 | 
			
		||||
    res.status(404).send();
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  if (action !== 'like' && action !== 'dislike') {
 | 
			
		||||
    res.status(400).send({ error: 'Invalid action' });
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    res.status(200).send();
 | 
			
		||||
  res.status(201).send({ message: `${action} action processed` });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.put('/:id', (req, res) => {
 | 
			
		||||
    //res.status(500).send({
 | 
			
		||||
    //    message: 'Internal server error'
 | 
			
		||||
    //});
 | 
			
		||||
    const userId = parseInt(req.params.id);
 | 
			
		||||
    const data = req.body;
 | 
			
		||||
    res.status(200).send();
 | 
			
		||||
  res.status(204).send();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.delete('/:id', (req, res) => {
 | 
			
		||||
  res.status(204).send();
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user