Skip to content

Commit 2c8035e

Browse files
committed
moved async functions to helper file
1 parent 4553b3a commit 2c8035e

File tree

5 files changed

+235
-204
lines changed

5 files changed

+235
-204
lines changed

src/user/Admin/Tickets/TicketDashboard.js

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { Drawer, List, ListItem } from "@material-ui/core";
1818
import donutIcon from "../../../assets/svgs/donut-icon.svg";
1919
import Navigation from "../../dashboard/navigation/navigation";
2020
import TicketDisscussion from "./TicketDiscussion/TicketDiscussions";
21+
import { createNewTicket, deleteTicket } from "../../../utils/ticket";
2122
import NotificationsNoneOutlinedIcon from "@material-ui/icons/NotificationsNoneOutlined";
2223

2324
class TicketDashboard extends Component {
@@ -98,7 +99,7 @@ class TicketDashboard extends Component {
9899
).data.notifications;
99100
this.setState({ notifications });
100101
} catch (err) {
101-
console.log(err)
102+
console.log(err);
102103
}
103104
};
104105

@@ -107,25 +108,7 @@ class TicketDashboard extends Component {
107108
{
108109
spinner: "Creating new Ticket...",
109110
},
110-
async () => {
111-
try {
112-
const ticket = (await axios.post(`${BASE_URL}/ticket`, newTicket, {
113-
cancelToken: this.axiosCancel.token,
114-
}))
115-
.data.ticket;
116-
ticket.comments = 0;
117-
this.setState({
118-
all: [ticket, ...this.state.all],
119-
filtered: [ticket, ...this.state.all],
120-
editorMode: false,
121-
spinner: "",
122-
});
123-
} catch (err) {
124-
console.log(err);
125-
toast.error("Something went wrong! could create Ticket");
126-
this.setState({ spinner: "" });
127-
}
128-
}
111+
createNewTicket.bind(this, newTicket)
129112
);
130113
};
131114

@@ -176,25 +159,9 @@ class TicketDashboard extends Component {
176159
};
177160

178161
deleteTicket = (id) => {
179-
const newTickets = this.state.all.filter((ele) => ele._id !== id);
180162
this.setState(
181163
{ spinner: "Deleting Ticket,,,", viewingTicket: null },
182-
async () => {
183-
try {
184-
await axios.delete(`${BASE_URL}/ticket/${id}`, {
185-
cancelToken: this.axiosCancel.token,
186-
});
187-
this.setState({
188-
all: [...newTickets],
189-
filtered: [...newTickets],
190-
spinner: "",
191-
});
192-
} catch (err) {
193-
console.log(err);
194-
toast.error("Something went wrong! could not delete Ticket");
195-
this.setState({ spinner: "" });
196-
}
197-
}
164+
deleteTicket.bind(this, id)
198165
);
199166
};
200167

src/user/Admin/Tickets/TicketDiscussion/Layout/EditableCard.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Button from "react-bootstrap/Button";
55
import SaveButton from "@material-ui/icons/SaveOutlined";
66
import EditButton from "@material-ui/icons/EditOutlined";
77
import CancelButton from "@material-ui/icons/ClearOutlined";
8+
import { saveTicketSummary } from '../../../../../utils/ticket';
89

910
class EditableCard extends Component {
1011
constructor(props) {
@@ -26,15 +27,7 @@ class EditableCard extends Component {
2627
};
2728

2829
save = () => {
29-
this.setState({ editor: false }, async () => {
30-
await this.props.updateTicket({
31-
type: "shortDescription",
32-
shortDescription: this.state.data,
33-
});
34-
this.props.singleUpdate(this.props.ticketId, {
35-
shortDescription: this.state.data,
36-
});
37-
});
30+
this.setState({ editor: false }, saveTicketSummary.bind(this));
3831
};
3932

4033
render() {

src/user/Admin/Tickets/TicketDiscussion/Layout/Title.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import EditButton from "@material-ui/icons/EditOutlined";
66
import SaveButton from "@material-ui/icons/SaveOutlined";
77
import BadgeElement from "../../TicketContent/BadgeElement";
88
import CancelButton from "@material-ui/icons/ClearOutlined";
9+
import { saveTicketTitle } from "../../../../../utils/ticket";
910
import DeleteOutlineOutlinedIcon from "@material-ui/icons/DeleteOutlineOutlined";
1011

1112
class Title extends Component {
@@ -30,15 +31,7 @@ class Title extends Component {
3031
};
3132

3233
handleSave = () => {
33-
this.setState({ editor: false }, async () => {
34-
await this.props.updateTicket({
35-
type: "title",
36-
title: this.state.title,
37-
});
38-
this.props.singleUpdate(this.props.ticket._id, {
39-
title: this.state.title,
40-
});
41-
});
34+
this.setState({ editor: false }, saveTicketTitle.bind(this));
4235
};
4336

4437
render() {

src/user/Admin/Tickets/TicketDiscussion/TicketDiscussions.js

Lines changed: 14 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import History from "./History/History";
66
import Disscussion from "./Discussion/Discussion";
77
import "react-mde/lib/styles/css/react-mde-all.css";
88
import { ToastContainer, toast } from "react-toastify";
9-
import { BASE_URL } from "../../../../actions/baseApi";
9+
import { getTicket, createCommnet, updateTicket, upvoteComment, downvoteComment, deleteComment, addTag, deleteTag } from "../../../../utils/ticket";
1010

1111
class TicketDiscussions extends Component {
1212
constructor(props) {
@@ -24,21 +24,7 @@ class TicketDiscussions extends Component {
2424
{
2525
spinner: "Loading Ticket...",
2626
},
27-
async () => {
28-
const ticket = (
29-
await axios.get(`${BASE_URL}/ticket/${this.props.ticketId}`, {
30-
cancelToken: this.axiosCancel.token,
31-
})
32-
).data.ticket;
33-
this.editsAllowed =
34-
localStorage.getItem("ticketModerator") === "true" ||
35-
localStorage.getItem("admin") === "true" ||
36-
localStorage.getItem("userId") === ticket.createdBy.id;
37-
this.deleteAllowed =
38-
localStorage.getItem("ticketModerator") === "true" ||
39-
localStorage.getItem("admin") === "true";
40-
this.setState({ ticket: ticket, spinner: "" });
41-
}
27+
getTicket.bind(this)
4228
);
4329
};
4430

@@ -59,52 +45,16 @@ class TicketDiscussions extends Component {
5945
{
6046
spinner: "Adding comment...",
6147
},
62-
async () => {
63-
try {
64-
this.setState({
65-
ticket: (
66-
await axios.post(
67-
`${BASE_URL}/ticket/${this.state.ticket._id}/comment`,
68-
{
69-
content,
70-
},
71-
{ cancelToken: this.axiosCancel.token }
72-
)
73-
).data.ticket,
74-
spinner: "",
75-
});
76-
} catch (err) {
77-
console.log(err);
78-
toast.error("Something went wrong! could not add comment");
79-
this.setState({ spinner: "" });
80-
}
81-
}
48+
createCommnet.bind(this, content)
8249
);
8350
};
8451

85-
handleUpdateTicket = async (updates) => {
52+
handleUpdateTicket = (updates) => {
8653
this.setState(
8754
{
8855
spinner: "Updating Ticket...",
8956
},
90-
async () => {
91-
try {
92-
this.setState({
93-
ticket: (
94-
await axios.put(
95-
`${BASE_URL}/ticket/${this.state.ticket._id}`,
96-
updates,
97-
{ cancelToken: this.axiosCancel.token }
98-
)
99-
).data.ticket,
100-
spinner: "",
101-
});
102-
} catch (err) {
103-
console.log(err);
104-
toast.error("Something went wrong! could not update Ticket");
105-
this.setState({ spinner: "" });
106-
}
107-
}
57+
updateTicket.bind(this, updates)
10858
);
10959
};
11060

@@ -113,79 +63,29 @@ class TicketDiscussions extends Component {
11363
{
11464
spinner: "Adding vote to comment...",
11565
},
116-
async () => {
117-
try {
118-
this.setState({
119-
ticket: (
120-
await axios.put(
121-
`${BASE_URL}/ticket/${this.state.ticket._id}/comment/${commentId}/upvote`,
122-
{},
123-
{ cancelToken: this.axiosCancel.token }
124-
)
125-
).data.ticket,
126-
spinner: "",
127-
});
128-
} catch (err) {
129-
console.log(err);
130-
toast.error("Something went wrong! could not upvote comment");
131-
this.setState({ spinner: "" });
132-
}
133-
}
66+
upvoteComment.bind(this, commentId)
13467
);
13568
};
13669

137-
handleCommentDownvote = async (commentId) => {
70+
handleCommentDownvote = (commentId) => {
13871
this.setState(
13972
{
14073
spinner: "Removing vote from comment...",
14174
},
142-
async () => {
143-
try {
144-
this.setState({
145-
ticket: (
146-
await axios.put(
147-
`${BASE_URL}/ticket/${this.state.ticket._id}/comment/${commentId}/downvote`,
148-
{},
149-
{ cancelToken: this.axiosCancel.token }
150-
)
151-
).data.ticket,
152-
spinner: "",
153-
});
154-
} catch (err) {
155-
console.log(err);
156-
toast.error("Something went wrong! could not downvote comment");
157-
this.setState({ spinner: "" });
158-
}
159-
}
75+
downvoteComment.bind(this, commentId)
16076
);
16177
};
16278

163-
handleCommentDelete = async (commentId) => {
79+
handleCommentDelete = (commentId) => {
16480
this.setState(
16581
{
16682
spinner: "Removig comment...",
16783
},
168-
async () => {
169-
try {
170-
this.setState({
171-
ticket: (
172-
await axios.delete(
173-
`${BASE_URL}/ticket/${this.state.ticket._id}/comment/${commentId}`,
174-
{ cancelToken: this.axiosCancel.token }
175-
)
176-
).data.ticket,
177-
spinner: "",
178-
});
179-
} catch (err) {
180-
console.log(err);
181-
toast.error("Something went wrong! could not remove comment");
182-
this.setState({ spinner: "" });
183-
}
184-
}
84+
deleteComment.bind(this, commentId)
18585
);
18686
};
18787

188-
handleAddTag = async (tagName) => {
88+
handleAddTag = (tagName) => {
18989
if (this.state.ticket.tags.indexOf(tagName) !== -1) {
19090
toast.error("Tag already present");
19191
} else if (tagName.length > 10) {
@@ -197,52 +97,17 @@ class TicketDiscussions extends Component {
19797
{
19898
spinner: "Adding Tag...",
19999
},
200-
async () => {
201-
try {
202-
this.setState({
203-
ticket: (
204-
await axios.post(
205-
`${BASE_URL}/ticket/${this.state.ticket._id}/tag/${tagName}`,
206-
{},
207-
{ cancelToken: this.axiosCancel.token }
208-
)
209-
).data.ticket,
210-
spinner: "",
211-
});
212-
this.props.addTag(this.state.ticket._id, tagName);
213-
} catch (err) {
214-
console.log(err);
215-
toast.error("Something went wrong! could not add tag");
216-
this.setState({ spinner: "" });
217-
}
218-
}
100+
addTag.bind(this, tagName)
219101
);
220102
}
221103
};
222104

223-
handleDeleteTag = async (tagName) => {
105+
handleDeleteTag = (tagName) => {
224106
this.setState(
225107
{
226108
spinner: "Removing Tag...",
227109
},
228-
async () => {
229-
try {
230-
this.setState({
231-
ticket: (
232-
await axios.delete(
233-
`${BASE_URL}/ticket/${this.state.ticket._id}/tag/${tagName}`,
234-
{ cancelToken: this.axiosCancel.token }
235-
)
236-
).data.ticket,
237-
spinner: "",
238-
});
239-
this.props.addTag(this.state.ticket._id, tagName);
240-
} catch (err) {
241-
console.log(err);
242-
toast.error("Something went wrong! could not remove tag");
243-
this.setState({ spinner: "" });
244-
}
245-
}
110+
deleteTag.bind(this, tagName)
246111
);
247112
};
248113

0 commit comments

Comments
 (0)