Simple delete functionality to Signup admin
This commit is contained in:
+18
-4
@@ -8,7 +8,7 @@ export interface Signup {
|
||||
answer: string;
|
||||
}
|
||||
|
||||
export async function getSignup(id: number): Promise<Signup> {
|
||||
export const getSignup = async (id: number): Promise<Signup> => {
|
||||
try {
|
||||
const resp = await axios.get(`${url}${id}`, {
|
||||
headers: {
|
||||
@@ -22,7 +22,7 @@ export async function getSignup(id: number): Promise<Signup> {
|
||||
}
|
||||
}
|
||||
|
||||
export async function createSignup(data: Signup): Promise<Signup> {
|
||||
export const createSignup = async (data: Signup): Promise<Signup> => {
|
||||
try {
|
||||
const resp = await axios.post(url, data);
|
||||
return resp.data;
|
||||
@@ -32,7 +32,7 @@ export async function createSignup(data: Signup): Promise<Signup> {
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateSignup(data: Signup, uuid: string): Promise<Signup> {
|
||||
export const updateSignup = async (data: Signup, uuid: string): Promise<Signup> => {
|
||||
try {
|
||||
const { id } = data;
|
||||
if (!id) throw new Error("SignupId required!");
|
||||
@@ -46,7 +46,7 @@ export async function updateSignup(data: Signup, uuid: string): Promise<Signup>
|
||||
}
|
||||
}
|
||||
|
||||
export async function getSignupUUID(id: number, uuid: string): Promise<Signup> {
|
||||
export const getSignupUUID = async (id: number, uuid: string): Promise<Signup> => {
|
||||
try {
|
||||
const resp = await axios.get(`${url}${id}/edit/`, {
|
||||
params: {
|
||||
@@ -59,3 +59,17 @@ export async function getSignupUUID(id: number, uuid: string): Promise<Signup> {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
export const deleteSignup = async (id: number): Promise<Signup> => {
|
||||
try {
|
||||
const resp = await axios.delete(`${url}${id}`, {
|
||||
headers: {
|
||||
"Authorization": getAuthHeader()
|
||||
},
|
||||
});
|
||||
return resp.data;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Helmet } from "react-helmet";
|
||||
import { RouteComponentProps } from "react-router-dom";
|
||||
import AdminListCommon from "@views/admin/AdminListCommon";
|
||||
import { SignupForm, getForm, getSignups } from "@models/SignupForm";
|
||||
import { Signup } from "@models/Signup";
|
||||
import { Signup, deleteSignup } from "@models/Signup";
|
||||
|
||||
interface MatchParams {
|
||||
id?: string;
|
||||
@@ -29,7 +29,18 @@ const SignupEmailPage: React.FC<SignupEmailPageProps> = ({ match: { params: { id
|
||||
id: q.id
|
||||
})) : [];
|
||||
|
||||
const title = signupForm ? signupForm.title_fi : "Loading..."
|
||||
const title = signupForm ? signupForm.title_fi : "Loading...";
|
||||
|
||||
const confirmDelete = async (signup: Signup, question: any) => {
|
||||
if(confirm(`Delete: ${signup.id}: ${signup.answer[question.id]}; Are you sure?`) === true) {
|
||||
try {
|
||||
await deleteSignup(signup.id);
|
||||
setSignups(signups.filter(s => s.id !== signup.id))
|
||||
} catch (err) {
|
||||
alert("Delete failed!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<AdminListCommon>
|
||||
@@ -53,6 +64,11 @@ const SignupEmailPage: React.FC<SignupEmailPageProps> = ({ match: { params: { id
|
||||
{s.answer[q.id]}
|
||||
</td>
|
||||
))}
|
||||
<td>
|
||||
<button onClick={() => confirmDelete(s, questions[0])}>
|
||||
Delete
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
|
||||
Reference in New Issue
Block a user