refactor: move to new lfk ts client

This commit is contained in:
2025-03-18 00:05:04 +01:00
parent d503061604
commit 865058c8bb
5 changed files with 119 additions and 100 deletions

View File

@@ -490,12 +490,13 @@
</template>
<script setup>
import { reactive, ref } from "vue";
import { TYPE, useToast } from "vue-toastification";
import axios from "redaxios";
import { toCanvas } from "bwip-js";
import Footer from "@/components/Footer.vue";
import { useI18n } from 'vue-i18n'
import { runnerSelfServiceControllerGet, runnerSelfServiceControllerGetScans, runnerSelfServiceControllerRemove } from "@odit/lfk-client";
import { toCanvas } from "bwip-js";
import axios from "redaxios";
import { reactive, ref } from "vue";
import { useI18n } from 'vue-i18n';
import { TYPE, useToast } from "vue-toastification";
const { t } = useI18n()
const loadstate = ref("loading")
const mode = ref("")
@@ -570,46 +571,42 @@ function getReadableDistance(distance) {
return `${m} m`
}
axios
.get(`${config.baseurl}api/runners/me/${accesstoken}`)
.then(({ data }) => {
loadstate.value = "loaded"
state.phone = data.phone;
state.email = data.email;
state.firstname = data.firstname;
state.middlename = data.middlename;
state.lastname = data.lastname;
state.group = data.group;
state.sponsorings = data.distanceDonations;
state.fullobject = data;
state.barcode = textToBase64Barcode(data.id ?? "???");
})
runnerSelfServiceControllerGet({ path: { jwt: accesstoken } }).then(({ data }) => {
loadstate.value = "loaded"
state.phone = data.phone;
state.email = data.email;
state.firstname = data.firstname;
state.middlename = data.middlename;
state.lastname = data.lastname;
state.group = data.group;
state.sponsorings = data.distanceDonations;
state.fullobject = data;
state.barcode = textToBase64Barcode(data.id ?? "???");
})
.catch((error) => {
loadstate = "error"
toast.clear();
toast.error(t('profil_konnte_nicht_geladen_werden'));
});
axios
.get(`${config.baseurl}api/runners/me/${accesstoken}/scans`)
.then(({ data }) => {
let counter = 0
data.map(function (s) {
if (counter === 0) {
s.lapTime_readable = t('first_lap')
} else {
s.lapTime_readable =
Math.floor(s.lapTime / 60) +
"min " +
(Math.floor(s.lapTime % 60) + "").padStart(2, "0") +
"s";
}
s.distance_readable = getReadableDistance(s.distance);
counter++;
return s;
});
data.filter((s) => s.valid === true);
state.scans = data;
})
runnerSelfServiceControllerGetScans({ path: { jwt: accesstoken } }).then(({ data }) => {
let counter = 0
data.map(function (s) {
if (counter === 0) {
s.lapTime_readable = t('first_lap')
} else {
s.lapTime_readable =
Math.floor(s.lapTime / 60) +
"min " +
(Math.floor(s.lapTime % 60) + "").padStart(2, "0") +
"s";
}
s.distance_readable = getReadableDistance(s.distance);
counter++;
return s;
});
data.filter((s) => s.valid === true);
state.scans = data;
})
.catch((error) => {
toast.error(t('profil_konnte_nicht_geladen_werden'));
});
@@ -624,26 +621,20 @@ function addSponsoring() {
"address": {}
}
console.log(postdata);
axios
.post(`${config.baseurl}api/donors`, postdata)
.then(({ data }) => {
console.log(data);
})
.catch((error) => {
//
});
// TODO: implement: donationControllerPostDistance({body:{}})
}
function delete_me() {
toast.clear();
toast(t('profil_wird_geloescht'));
let url = `${config.baseurl}api/runners/me/${accesstoken}?force=true`;
axios
.delete(url)
.then(() => {
toast.clear();
toast(t('alle_daten_geloescht'));
location.replace(`/`);
})
runnerSelfServiceControllerRemove({
path: {
jwt: accesstoken
}, query: { force: true }
}).then(() => {
toast.clear();
toast(t('alle_daten_geloescht'));
location.replace(`/`);
})
.catch((error) => {
toast.clear();
toast.error(t('profil_konnte_nicht_geloescht_werden'));

View File

@@ -59,12 +59,12 @@
</template>
<script setup>
import { computed, ref, reactive } from "vue";
import axios from "redaxios";
import isEmail from 'validator/es/lib/isEmail';
import { TYPE, useToast } from "vue-toastification";
import Footer from "@/components/Footer.vue";
import { useI18n } from 'vue-i18n'
import { runnerSelfServiceControllerRequestNewToken } from "@odit/lfk-client";
import isEmail from 'validator/es/lib/isEmail';
import { computed, reactive, ref } from "vue";
import { useI18n } from 'vue-i18n';
import { TYPE, useToast } from "vue-toastification";
const { t } = useI18n()
let user_email = ref("");
@@ -79,11 +79,10 @@ function resendMail() {
if (isEmail(user_email.value)) {
toast(t('login_link_is_requested'));
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
axios.post(`${config.baseurl}api/runners/login?mail=${user_email.value}&locale=${browserlocale}`)
.then(({ data }) => {
console.log(data);
toast(t('login_link_gesendet_an_user_email_value') + user_email.value);
})
runnerSelfServiceControllerRequestNewToken({ query: { locale: browserlocale, mail: user_email.value } }).then(({ data }) => {
console.log(data);
toast(t('login_link_gesendet_an_user_email_value') + user_email.value);
})
.catch((error) => {
console.log(error);
toast(t('error_requesting_the_login_link'), { type: TYPE.ERROR });

View File

@@ -317,27 +317,24 @@
</template>
<script setup>
import { computed, ref, reactive } from "vue";
import axios from "redaxios";
import Footer from "@/components/Footer.vue";
import { runnerSelfServiceControllerGetSelfserviceOrg, runnerSelfServiceControllerRegisterOrganizationRunner, runnerSelfServiceControllerRegisterRunner } from "@odit/lfk-client";
import isEmail from "validator/es/lib/isEmail";
import isMobilePhone from "validator/es/lib/isMobilePhone";
import isPostalCode from "validator/es/lib/isPostalCode";
import { computed, reactive, ref } from "vue";
import { useI18n } from 'vue-i18n';
import { TYPE, useToast } from "vue-toastification";
import Footer from "@/components/Footer.vue";
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const props = defineProps({
token: String,
});
if (props.token) {
axios
.get(`${config.baseurl}api/organizations/selfservice/${props.token}`)
.then(({ data }) => {
state.org_name = data.name;
state.org_teams = data.teams;
org_team.value = data.teams[0]?.id;
})
runnerSelfServiceControllerGetSelfserviceOrg({ path: { token: props.token } }).then(({ data }) => {
state.org_name = data.name;
state.org_teams = data.teams;
org_team.value = data.teams[0]?.id;
})
.catch((error) => {
console.log(error);
});
@@ -400,9 +397,11 @@ function login() {
firstname: userdetails.value.firstname,
middlename: userdetails.value.middlename,
lastname: userdetails.value.lastname,
phone: userdetails.value.phone,
address: {},
};
if (userdetails.value.phone !== "") {
postdata.phone = userdetails.value.phone
}
if (provide_address.value === true) {
postdata.address = {
address1: userdetails.value.address.street,
@@ -420,28 +419,42 @@ function login() {
(navigator.languages && navigator.languages[0]) ||
""
).substr(0, 2);
let url = `${config.baseurl}api/runners/register/?locale=${browserlocale}`;
if (props.token) {
url = `${config.baseurl}api/runners/register/${props.token}/?locale=${browserlocale}`;
}
registrationState.value = "loading";
axios
.post(url, postdata)
.then(() => {
registrationState.value = "registered";
})
.catch((error) => {
console.log(error);
if (error.data.message === "E-Mail already registered") {
toast(t('already_registered'), { type: TYPE.ERROR });
} else if (error.data.message === "Invalid body, check 'errors' property for more info.") {
error.data.errors.forEach(e => {
if (e.property === "phone") {
toast(t('invalid_input_phone_number_should_be_international_format'), { type: TYPE.ERROR });
}
});
}
});
if (props.token) {
runnerSelfServiceControllerRegisterOrganizationRunner({ path: { token: props.token }, body: postdata, query: { locale: browserlocale } })
.then(() => {
registrationState.value = "registered";
})
.catch((error) => {
console.log(error);
if (error.data.message === "E-Mail already registered") {
toast(t('already_registered'), { type: TYPE.ERROR });
} else if (error.data.message === "Invalid body, check 'errors' property for more info.") {
error.data.errors.forEach(e => {
if (e.property === "phone") {
toast(t('invalid_input_phone_number_should_be_international_format'), { type: TYPE.ERROR });
}
});
}
});
} else {
runnerSelfServiceControllerRegisterRunner({ body: postdata, query: { locale: browserlocale } })
.then(() => {
registrationState.value = "registered";
})
.catch((error) => {
console.log(error);
if (error.data.message === "E-Mail already registered") {
toast(t('already_registered'), { type: TYPE.ERROR });
} else if (error.data.message === "Invalid body, check 'errors' property for more info.") {
error.data.errors.forEach(e => {
if (e.property === "phone") {
toast(t('invalid_input_phone_number_should_be_international_format'), { type: TYPE.ERROR });
}
});
}
});
}
}
}
}