diff --git a/Aberwyn/Controllers/MealMenuApiController.cs b/Aberwyn/Controllers/MealMenuApiController.cs index d735a32..57b7956 100644 --- a/Aberwyn/Controllers/MealMenuApiController.cs +++ b/Aberwyn/Controllers/MealMenuApiController.cs @@ -4,6 +4,8 @@ using Aberwyn.Data; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; +using System.Net.Http.Headers; +using System.Text.Json; namespace Aberwyn.Controllers { @@ -65,5 +67,44 @@ namespace Aberwyn.Controllers return StatusCode(500, "Failed to add meal."); } + + #region Skolmat +[HttpGet("skolmat")] +public async Task GetSkolmat(int week, [FromQuery] string sensor = "sensor.engelbrektsskolan") +{ + var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3M2Q5ODIyYzU4ZWI0MjM4OWEyMGQ2MWQ2MWVhOWYzYyIsImlhdCI6MTc0OTE1MzY1MCwiZXhwIjoyMDY0NTEzNjUwfQ.8C_dKm7P1BbFVJKc_wT76YnQqiZxkP9EzrsLbfD0Ml8"; + var client = new HttpClient(); + client.BaseAddress = new Uri("http://192.168.1.196:8123/"); + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); + + var res = await client.GetAsync($"/api/states/{sensor}"); + + if (!res.IsSuccessStatusCode) + return StatusCode((int)res.StatusCode, $"Kunde inte hämta data för {sensor}"); + + var json = await res.Content.ReadAsStringAsync(); + var doc = JsonDocument.Parse(json); + + var attr = doc.RootElement.GetProperty("attributes"); + + if (!attr.TryGetProperty("calendar", out var calendar)) + return NotFound("Ingen kalender hittades i attributen"); + + if (!calendar.TryGetProperty(week.ToString(), out var weekData)) + return NotFound("Ingen skolmat för vecka " + week); + + var result = new List(); + foreach (var day in weekData.EnumerateArray()) + { + var weekday = day.GetProperty("weekday").GetString(); + var date = day.GetProperty("date").GetString(); + var courses = day.GetProperty("courses").EnumerateArray().Select(c => c.GetString()).ToList(); + + result.Add(new { weekday, date, courses }); + } + + return Ok(result); +} + #endregion } } diff --git a/Aberwyn/Views/Admin/Index.cshtml b/Aberwyn/Views/Admin/Index.cshtml index 5a645f1..23cedc1 100644 --- a/Aberwyn/Views/Admin/Index.cshtml +++ b/Aberwyn/Views/Admin/Index.cshtml @@ -1,95 +1,116 @@ @model List + -

Användarhantering

-

Skapa ny roll

-
-
- -
- -
-

Skapa ny användare

- @if (TempData["Message"] != null) -{ -
@TempData["Message"]
-} - -
-
- - -
-
- - -
- -
- -
-

Alla roller

-
    -@foreach (var role in ViewBag.AllRoles as List) -{ -
  • @role
  • -} -
- - - - - - - - - - -@foreach (var user in Model) -{ - - - - - -} - -
E-postRollerLägg till roll
@user.Email - @foreach (var role in user.Roles) - { - @role -
- - - -
- } -
-
- - - -
-
- - - -

Testa Pushnotis

-
-
- - -
-
- - -
- -
+

Adminpanel

-
- Importera från annan databas +
Roller och användare
+
+
+
+

Skapa ny roll

+
+
+ +
+ +
+
+ +
+

Skapa ny användare

+ @if (TempData["Message"] != null) + { +
@TempData["Message"]
+ } + +
+
+ + +
+
+ + +
+ +
+
+
+
+ +
+
Befintliga roller och användare
+
+
Alla roller
+
    + @foreach (var role in ViewBag.AllRoles as List) + { +
  • @role
  • + } +
+ + + + + + + + + + + @foreach (var user in Model) + { + + + + + + } + +
E-postRollerLägg till roll
@user.Email + @foreach (var role in user.Roles) + { + @role +
+ + + +
+ } +
+
+ + + +
+
+
+
+ +
+
Övriga funktioner
+
+ + +

Testa Pushnotis

+
+
+ + +
+
+ + +
+ +
+
+
+ +
+
Importera från annan databas
@@ -124,8 +145,22 @@ -