save changed marks
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import type {Gottesdienst, Mark} from "@/models/models";
|
||||
import {Auth} from "@/services/auth";
|
||||
|
||||
|
||||
const API_ENDPOINT = "http://0.0.0.0:8080/api"
|
||||
|
||||
export async function api(endpoint: string, method: string = "GET", body?: any ) {
|
||||
let isJson = (typeof body == "object")
|
||||
return fetch(API_ENDPOINT + endpoint, {
|
||||
method: method,
|
||||
body: isJson ? JSON.stringify(body) : body,
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"Content-Type": (isJson ? "application/json" : "text/plain"),
|
||||
"Access-Control-Allow-Origin": "*",
|
||||
"Authorization": "Bearer " + Auth.getToken()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function setToken(token: string) {
|
||||
let expires = new Date((new Date()).getTime() + (1000*60*60*24*5)).toUTCString()
|
||||
document.cookie = `token=${token};expires=${expires};HTTPOnly`
|
||||
}
|
||||
|
||||
function getToken(): string | null {
|
||||
return ""
|
||||
}
|
||||
|
||||
export namespace API {
|
||||
|
||||
export async function getPlan(id: number) {
|
||||
return api(`/plan?id=${id}`).then(res => res.json())
|
||||
.then(data => {
|
||||
return {
|
||||
gottesdienste: data.gottesdienste,
|
||||
ministranten: data.ministranten,
|
||||
marks: data.marks
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function formatGottesdienste(data: any): Array<Gottesdienst>{
|
||||
return data.map(json => {
|
||||
json["date"] = new Date(json["date"])
|
||||
json["attendance"] = new Date(json["attendance"])
|
||||
return json as Gottesdienst
|
||||
}) as Array<Gottesdienst>
|
||||
}
|
||||
|
||||
export async function addGottesdienst(
|
||||
name: string = "",
|
||||
date: Date,
|
||||
attendance: Date = new Date(date.getTime() - 1000*60*30),
|
||||
planId: number
|
||||
){
|
||||
return api("/gottesdienste", "PUT", {
|
||||
id: 0, name, date: date.getTime(), attendance: attendance.getTime(), planId
|
||||
}).then(res => res.json())
|
||||
.then(json => {
|
||||
return {
|
||||
id: json.id, name, date, attendance, planId
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export async function deleteGottesdienst(id) {
|
||||
return api("/gottesdienste?id=" + id, "DELETE")
|
||||
.then(data => data.status == 200)
|
||||
}
|
||||
|
||||
export async function setMarks(marks: Mark[]): Promise<boolean> {
|
||||
return api("/marks", "PATCH", marks)
|
||||
.then(res => Promise.resolve(res.status == 200))
|
||||
}
|
||||
|
||||
export async function resetPassword(username: String): Promise<any> {
|
||||
return api("/auth/reset", "POST", { username })
|
||||
.then(res => res.json())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user