source: iknow-api/Controllers/UserController.cs@ 9f7a52e

Last change on this file since 9f7a52e was 39f76a9, checked in by imbrsk <boris696boris@…>, 10 months ago

feat: Add ActiveSemesters model and update related entities

  • Introduced ActiveSemesters model with properties: id, year, and Type.
  • Updated EnrolledSemesters model to include new properties: CratedAt, LastChange, Veryfied, Node, and StudentComment.
  • Modified Payment model to change the primary key and updated table name to Payments.
  • Added Signature property to SemesterSubject model and updated table name to SemesterSubjects.
  • Created new migration to reflect changes in the database schema.
  • Updated User model to include a reference to Payments.
  • Property mode set to 100644
File size: 5.2 KB
RevLine 
[4f5d8fd]1using iknow_api.DTOs;
2using Microsoft.AspNetCore.Authorization;
3using Microsoft.AspNetCore.Mvc;
4using iknow_api.Services;
5
6namespace iknow_api.Controllers
7{
8 [ApiController]
9 [Route("api/[controller]")]
10 public class UserController : Controller
11 {
12 IUserService _userService;
13 public UserController(IUserService userService)
14 {
15 _userService = userService;
16 }
17 [Authorize]
18 [HttpGet("getUser")]
19 public async Task<IActionResult> getUser()
20 {
21 var authHeader = Request.Headers["Authorization"].ToString();
22 if (authHeader.StartsWith("Bearer "))
23 {
24 var token = authHeader.Substring("Bearer ".Length).Trim();
25 // token = your JWT
26 var userData = await _userService.GetUserData(token);
27 if (userData == null) return Ok(new { info = "can't get info" });
[c0256f3]28 return Ok(new { User = userData });
[4f5d8fd]29 }
30 return null;
[615f18d]31
32 }
33 //"semesters": [
34 // {
35 // "id": 1,
36 // "semester": "Зимски(2025/2026)",
37 // "direction": "PIT23(2023)",
38 // "quota": "Не плаќа-Редовен(2023)",
39 // "note": "",
40 // "studentCom": "Ги имам си...",
41 // "sum": "0,30",
42 // "paid": "0,00",
43 // "ukim": "",
44 // "createdOn": "22.09.2025",
45 // "dateChanged": "22.09.2025",
46 // "credits": "0,01",
47 // "type": "Ред.",
48 // "doc": "Не",
49 // "doc1": "Не",
50 // "verified": "Не",
51 // "taxes": "0,00",
52 // "signatures": "0/5",
53 // "status": "валиден",
54 // "completed": "Не"
55 // },
56 // ]
57 //}
58 [Authorize]
59 [HttpGet("getSemesters")]
60 public async Task<IActionResult> getSemesters()
61 {
62 var authHeader = Request.Headers["Authorization"].ToString();
63 if (authHeader.StartsWith("Bearer "))
64 {
65 var token = authHeader.Substring("Bearer ".Length).Trim();
66 // token = your JWT
67 var userData = await _userService.GetUserSemesters(token);
68 var results = new List<object>();
69
70 for(int i=0; i<userData.Count; i++)
71 {
72 var newResult = new
73 {
74 id = userData[i].Id,
[39f76a9]75 //semester = (userData[i].Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Year}/{userData[i].Year + 1})",
[615f18d]76 direction = userData[i].Major?.Name ?? "",
77 quota = userData[i].QuotaType.ToString(),
78 note = "",
79 studentCom = "",
80 sum = "0,00",
81 paid = "0,00",
82 ukim = "",
83 createdOn = DateTime.Now.ToString("dd.MM.yyyy"),
84 dateChanged = DateTime.Now.ToString("dd.MM.yyyy"),
85 credits = "0,00",
86 type = "Ред.",
87 doc = "Не",
88 doc1 = "Не",
89 verified = "Не",
90 taxes = "0,00",
91 signatures = "0/5",
92 status = "валиден",
93 completed = "Не"
94 };
95 results.Add(newResult);
96 }
97 if (userData == null) return Ok(new { info = "can't get info" });
98 return Ok(new { semesters = results });
99 }
100 return null;
101
[4f5d8fd]102 }
[615f18d]103 // {
104 // "user": [
105 // {
106 // "id": 2,
107 // "userId": 1,
108 // "user": null,
109 // "year": 2025,
110 // "type": 1,
111 // "quotaType": "privatna",
112 // "majorId": 1,
113 // "major": {
114 // "id": 1,
115 // "name": "PIT(2023)",
116 // "subjects": null
117 // },
118 // "users": null,
119 // "semesterSubjects": null
120 // },
121 // {
122 // "id": 1,
123 // "userId": 1,
124 // "user": null,
125 // "year": 2025,
126 // "type": 0,
127 // "quotaType": "privatna",
128 // "majorId": 1,
129 // "major": {
130 // "id": 1,
131 // "name": "PIT(2023)",
132 // "subjects": null
133 // },
134 // "users": null,
135 // "semesterSubjects": null
136 // }
137 // ]
138 //}
[4f5d8fd]139 }
140}
Note: See TracBrowser for help on using the repository browser.