From e0445822cb22a0006a727551e619c3cc0a62e982 Mon Sep 17 00:00:00 2001 From: Ruidy Nemausat Date: Tue, 21 Apr 2020 07:45:33 +0200 Subject: [PATCH] add setMembers in projectService; add close in ticketService; updates components to use services --- app.db | Bin 106496 -> 106496 bytes client/src/components/Lists/TicketList.tsx | 47 ++++++++++---------- client/src/components/Modals/UsersModal.tsx | 14 +++--- client/src/components/Preloader.tsx | 4 +- client/src/services/project.ts | 5 +++ client/src/services/ticket.ts | 6 +++ 6 files changed, 45 insertions(+), 31 deletions(-) diff --git a/app.db b/app.db index bd6fe13593820a15ee375374784c98f38c453578..b2c84c80a195e82024adf15f62fbe16b8d8e21ce 100644 GIT binary patch delta 172 zcmZoTz}9epZ3ANgFaLE0CjJ%%{&oB<{4JXW1om``4puYG>sh{IXO5uLOB^Sa|`l| zN)q!*6iRYfc^SlI9gP_$cg}N|tTk74^V@l%jXZ5YlVch9uk*+9#{y0E=byaZUxO87 ObRfv&?d$Xzg9-p{v@SRR delta 173 zcmZoTz}9epZ3ANgF9QPuGk*&M|8@R#{4JXW1 createStyles({ @@ -59,6 +58,14 @@ const TicketList: FC = ({ t.title.toLowerCase().includes(filterText.toLowerCase()) ); + const { getTokenSilently } = useAuth0(); + + const handleValidate = async (id: number) => { + const token = await getTokenSilently(); + const Tickets = new TicketService(token); + await Tickets.close(id.toString()); + }; + const classes = useStyles(); return ( @@ -99,26 +106,20 @@ const TicketList: FC = ({ /> -
- {filteredTickets.length === 0 ? ( - - ) : ( - filteredTickets.map((t: Ticket) => ( - { - e.preventDefault(); - await put>( - `${Constants.ticketsURI}/${t.id}/closed`, - {} - ); - }} - /> - )) - )} -
+ {filteredTickets.length === 0 ? ( + + ) : ( + filteredTickets.map((t: Ticket) => ( + { + handleValidate(t.id); + }} + /> + )) + )}
diff --git a/client/src/components/Modals/UsersModal.tsx b/client/src/components/Modals/UsersModal.tsx index e5df651..8e34526 100644 --- a/client/src/components/Modals/UsersModal.tsx +++ b/client/src/components/Modals/UsersModal.tsx @@ -15,8 +15,8 @@ import AvatarList from "../Avatars/AvatarList"; import FilterBar from "../FilterBar"; import Modal from "./Modal"; import User from "../../types/User"; -import { patch } from "../../utils/http"; -import Constants from "../../utils/Constants"; +import { ProjectService } from "../../services"; +import { useAuth0 } from "../../authentication/auth0"; interface IProps { show: boolean; @@ -59,12 +59,14 @@ const UsersModal: FC = ({ show, handleClose, users, allUsers }) => { setMembers(newChecked); }; + const { getTokenSilently } = useAuth0(); const handleSubmit = async (e: FormEvent) => { e.preventDefault(); - await patch( - `${Constants.projectsURI}/${id}/members`, - members //.map((m) => m.id) - ); + if (id !== undefined) { + const token = await getTokenSilently(); + const Projects = new ProjectService(token); + await Projects.setMembers(id, members); + } handleClose(); }; diff --git a/client/src/components/Preloader.tsx b/client/src/components/Preloader.tsx index 187648b..5c63a34 100644 --- a/client/src/components/Preloader.tsx +++ b/client/src/components/Preloader.tsx @@ -1,5 +1,5 @@ -import React, { FC, useState } from "react"; -import { Backdrop, CircularProgress, Button } from "@material-ui/core"; +import React, { FC } from "react"; +import { Backdrop, CircularProgress } from "@material-ui/core"; import { makeStyles, createStyles, Theme } from "@material-ui/core/styles"; const useStyles = makeStyles((theme: Theme) => diff --git a/client/src/services/project.ts b/client/src/services/project.ts index 178e489..d745b35 100644 --- a/client/src/services/project.ts +++ b/client/src/services/project.ts @@ -1,6 +1,7 @@ import IService from "."; import Project from "../types/Project"; import HttpHandler from "./http"; +import User from "../types/User"; interface NewProject { title: string; @@ -35,4 +36,8 @@ export default class ProjectService implements IService { delete(id: string): Promise { throw new Error("Method not implemented."); } + + setMembers = async (id: string, members: string[]): Promise => { + await this.http.patch(`${this.path}/${id}/members`, members, this.key); + }; } diff --git a/client/src/services/ticket.ts b/client/src/services/ticket.ts index 37382a0..d97e514 100644 --- a/client/src/services/ticket.ts +++ b/client/src/services/ticket.ts @@ -12,6 +12,7 @@ interface NewTicket { difficulty: number; category: number; } + export default class TicketService implements IService { constructor(private key: string) {} @@ -36,7 +37,12 @@ export default class TicketService implements IService { update(id: string, item: Ticket): Promise { throw new Error("Method not implemented."); } + delete(id: string): Promise { throw new Error("Method not implemented."); } + + close = async (id: string): Promise => { + await this.http.put(`${this.path}/${id}/closed`, {}, this.key); + }; }