Skip to content

Commit 4d95500

Browse files
authored
Merge pull request #403 from SalleeMatthew:Add-Account-Removal
Add Account Removal
2 parents 7ad2c44 + 38dcb3e commit 4d95500

56 files changed

Lines changed: 688 additions & 30 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { Knex } from 'knex';
2+
3+
export async function up(knex: Knex): Promise<void> {
4+
await knex.schema.alterTable('object_instance', table => {
5+
table.dropForeign(['member_id']);
6+
});
7+
8+
await knex.schema.alterTable('object_instance', table => {
9+
table.integer('member_id').unsigned().nullable().alter();
10+
});
11+
12+
await knex.schema.alterTable('object_instance', table => {
13+
table.foreign('member_id').references('member.id');
14+
});
15+
}
16+
17+
export async function down(knex: Knex): Promise<void> {
18+
await knex.schema.alterTable('object_instance', table => {
19+
table.dropForeign(['member_id']);
20+
});
21+
22+
await knex.schema.alterTable('object_instance', table => {
23+
table.integer('member_id').unsigned().notNullable().alter();
24+
});
25+
26+
await knex.schema.alterTable('object_instance', table => {
27+
table.foreign('member_id').references('member.id');
28+
});
29+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { Knex } from 'knex';
2+
3+
export async function up(knex: Knex): Promise<void> {
4+
await knex.schema.alterTable('object', table => {
5+
table.dropForeign(['member_id']);
6+
});
7+
8+
await knex.schema.alterTable('object', table => {
9+
table.integer('member_id').unsigned().nullable().alter();
10+
});
11+
12+
await knex.schema.alterTable('object', table => {
13+
table.foreign('member_id').references('member.id');
14+
});
15+
}
16+
17+
export async function down(knex: Knex): Promise<void> {
18+
await knex.schema.alterTable('object', table => {
19+
table.dropForeign(['member_id']);
20+
});
21+
22+
await knex.schema.alterTable('object', table => {
23+
table.integer('member_id').unsigned().notNullable().alter();
24+
});
25+
26+
await knex.schema.alterTable('object', table => {
27+
table.foreign('member_id').references('member.id');
28+
});
29+
}
30+

api/src/controllers/avatar.controller.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ class AvatarController {
3838
}
3939
}
4040

41+
public async removeAllAvatars(request: Request, response: Response): Promise<void>{
42+
const session = this.memberService.decryptSession(request, response);
43+
if (!session) return;
44+
try {
45+
await this.avatarService.removeAllAvatars(session.id);
46+
response.status(200).json({ status: 'success' });
47+
} catch {
48+
response.status(400).json({error: 'Error remvoing avatars.'});
49+
}
50+
}
51+
4152
public async add(request, response: Response): Promise<void> {
4253
let fileExtension;
4354
const { apitoken } = request.headers;

api/src/controllers/club.controller.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,17 @@ class ClubController {
246246
}
247247
}
248248

249+
public async removeAccount(request: Request, response: Response): Promise<void>{
250+
const session = this.memberService.decryptSession(request, response);
251+
if (!session) return;
252+
try {
253+
await this.clubService.removeAccount(session.id);
254+
response.status(200).json({ status: 'success' });
255+
} catch {
256+
response.status(400).json({error: 'Error moving objects.'});
257+
}
258+
}
259+
249260
public async searchClubs(request: Request, response: Response): Promise<void> {
250261
const session = this.memberService.decryptSession(request, response);
251262
if (!session) {

api/src/controllers/home.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class HomeController {
3030

3131
const { username } = request.params;
3232

33-
if(username) {
33+
if(username && username !== 'undefined') {
3434
const user = await this.memberService.find({
3535
username: username,
3636
});

api/src/controllers/inbox.controller.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,17 @@ class InboxController {
309309
});
310310
}
311311
}
312+
313+
public async removeAllMessages(request: Request, response: Response): Promise<void>{
314+
const session = this.memberService.decryptSession(request, response);
315+
if (!session) return;
316+
try {
317+
await this.inboxService.removeAllMessages(session.id);
318+
response.status(200).json({ status: 'success' });
319+
} catch {
320+
response.status(400).json({error: 'Error removing inbox messages.'});
321+
}
322+
}
312323

313324
public async deleteInboxMessage(request: Request, response: Response): Promise<void> {
314325
const placeId = Number.parseInt(request.body.place_id);

api/src/controllers/member.controller.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,20 @@ class MemberController {
191191
}
192192
}
193193

194+
public async removeAccount(request: Request, response: Response): Promise<void> {
195+
const session = this.memberService.decryptSession(request, response);
196+
if (!session) return;
197+
const { id } = session;
198+
try {
199+
await this.memberService.removeAccount(id);
200+
response.status(200).json({ message: 'success' });
201+
} catch (error) {
202+
response.status(400).json({
203+
error: 'Error Removing Account',
204+
});
205+
}
206+
}
207+
194208
/** isBanned results based on member status
195209
* 1 = active
196210
* 0 = banned

api/src/controllers/message.controller.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,17 @@ class MessageController {
8787
}
8888
}
8989

90+
public async removeAllMessages(request: Request, response: Response): Promise<void>{
91+
const session = this.memberService.decryptSession(request, response);
92+
if (!session) return;
93+
try {
94+
await this.messageService.removeAllMessages(session.id);
95+
response.status(200).json({ status: 'success' });
96+
} catch {
97+
response.status(400).json({error: 'Error remvoing messages.'});
98+
}
99+
}
100+
90101
/** delete a message from the chat **/
91102
public async deleteMessage(request: Request, response: Response): Promise<void> {
92103
const { apitoken } = request.headers;

api/src/controllers/messageboard.controller.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,17 @@ class MessageboardController {
119119
});
120120
}
121121
}
122+
123+
public async removeAllMessages(request: Request, response: Response): Promise<void>{
124+
const session = this.memberService.decryptSession(request, response);
125+
if (!session) return;
126+
try {
127+
await this.messageboardService.removeAllMessages(session.id);
128+
response.status(200).json({ status: 'success' });
129+
} catch {
130+
response.status(400).json({error: 'Error removing messageboard messages.'});
131+
}
132+
}
122133

123134
public async getMessageboardMessages(request: Request, response: Response): Promise<void> {
124135
const placeId = Number.parseInt(request.body.place_id);

api/src/controllers/object-instance.controller.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,47 @@ class ObjectInstanceController {
235235
}
236236
}
237237

238+
public async moveAllObjects(request: Request, response: Response): Promise<void>{
239+
const session = this.memberService.decryptSession(request, response);
240+
if (!session) return;
241+
try {
242+
await this.objectInstanceService.moveAllObjects(session.id);
243+
response.status(200).json({ status: 'success' });
244+
} catch {
245+
response.status(400).json({error: 'Error moving objects.'});
246+
}
247+
}
248+
249+
public async updateObjectOwner(request: Request, response: Response): Promise<void>{
250+
const session = this.memberService.decryptSession(request, response);
251+
if (!session) return;
252+
try {
253+
const username = request.body.username;
254+
const objects = request.body.id;
255+
const userId = await this.memberService.getMemberId(username);
256+
if(!userId){
257+
throw new Error('Username not found.')
258+
}
259+
for (const obj of objects) {
260+
await this.objectInstanceService.updateObjectOwner(obj, userId[0].id);
261+
}
262+
response.status(200).json({ status: 'success' });
263+
} catch (error) {
264+
response.status(400).json({error: error});
265+
}
266+
}
267+
268+
public async seizedObjects(request: Request, response: Response): Promise<void>{
269+
const session = this.memberService.decryptSession(request, response);
270+
if (!session) return;
271+
try {
272+
const seizedObjects = await this.objectInstanceService.seizedObjects();
273+
response.status(200).json({ objects: seizedObjects });
274+
} catch {
275+
response.status(400).json({error: 'Error moving objects.'});
276+
}
277+
}
278+
238279
public async pickUpObjectInstance(request: Request, response: Response): Promise<void> {
239280
const session = this.memberService.decryptSession(request, response);
240281
if (!session) return;

0 commit comments

Comments
 (0)