Skip to content

Commit 4294d3c

Browse files
authored
Merge pull request #130 from netervati/feat/hard-delete
Hard-delete resources
2 parents 8f5b495 + c492256 commit 4294d3c

File tree

7 files changed

+24
-31
lines changed

7 files changed

+24
-31
lines changed

server/routes/apps/[id].delete.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import AppServices from '~~/server/services/appServices';
22

33
export default defineEventHandler(async (event) => {
4-
const deleted = await new AppServices(event).delete(
4+
await new AppServices(event).delete(
55
event.context.params?.id ?? ''
66
);
77

8-
return deleted;
8+
return null;
99
});

server/routes/models/[id].delete.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ export default defineEventHandler(async (event) => {
1010
const { appId } = await extractAppKey(event, query.apiKey);
1111
const modelId = event.context.params?.id ?? '';
1212

13-
const model = await new ModelServices(event).delete({
13+
await new ModelServices(event).delete({
1414
id: modelId,
1515
appId,
1616
});
1717

18-
return model;
18+
return null;
1919
});

server/routes/models/[id]/model-data.delete.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ export default defineEventHandler(async (event) => {
1313

1414
const ids = query.ids.split(',');
1515

16-
const deleted = await new ModelDataServices(event).bulkDelete({
16+
await new ModelDataServices(event).bulkDelete({
1717
ids,
1818
modelId: event.context.params?.id ?? '',
1919
});
2020

21-
return deleted;
21+
return null;
2222
});

server/services/appServices.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,20 @@ export default class AppServices extends SupabaseService {
2222
async delete(id: string) {
2323
const apps = await this.client
2424
.from('apps')
25-
.update({
26-
deleted_at: new Date().toISOString(),
27-
})
28-
.eq('id', id)
29-
.select('*');
25+
.delete()
26+
.eq('id', id);
3027

3128
if (apps.error !== null) {
3229
throw ErrorResponse.supabase(apps.error);
3330
}
3431

35-
return apps.data[0];
32+
return null;
3633
}
3734

3835
async find(id: string) {
3936
const apps = await this.client
4037
.from('apps')
4138
.select('*')
42-
.is('deleted_at', null)
4339
.eq('id', id)
4440
.eq('user_id', this.user.id);
4541

@@ -58,7 +54,6 @@ export default class AppServices extends SupabaseService {
5854
const app = await this.client
5955
.from('apps')
6056
.select('*')
61-
.is('deleted_at', null)
6257
.eq('title', title)
6358
.eq('user_id', this.user.id);
6459

@@ -73,7 +68,6 @@ export default class AppServices extends SupabaseService {
7368
const apps = await this.client
7469
.from('apps')
7570
.select('id, title, description, app_keys(api_key)')
76-
.is('deleted_at', null)
7771
.is('app_keys.deleted_at', null)
7872
.eq('user_id', this.user.id)
7973
.order('created_at', { ascending: false });

server/services/modelDataServices.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,9 @@ export default class ModelDataService extends SupabaseService {
2121
params.ids.map((id) => {
2222
return this.client
2323
.from('model_data')
24-
.update({
25-
deleted_at: new Date().toISOString(),
26-
})
24+
.delete()
2725
.eq('id', id)
28-
.eq('model_id', params.modelId)
29-
.select('*');
26+
.eq('model_id', params.modelId);
3027
})
3128
);
3229
}
@@ -35,7 +32,6 @@ export default class ModelDataService extends SupabaseService {
3532
const modelData = await this.client
3633
.from('model_data')
3734
.select('*', { count: 'exact', head: true })
38-
.is('deleted_at', null)
3935
.eq('model_id', modelId)
4036
.order('created_at', { ascending: false });
4137

@@ -46,11 +42,17 @@ export default class ModelDataService extends SupabaseService {
4642
return modelData.count ?? 0;
4743
}
4844

45+
async deleteByModelId(modelId: string) {
46+
return await this.client
47+
.from('model_data')
48+
.delete()
49+
.eq('model_id', modelId);
50+
}
51+
4952
async list(modelId: string) {
5053
const modelData = await this.client
5154
.from('model_data')
5255
.select('id, schema')
53-
.is('deleted_at', null)
5456
.eq('model_id', modelId)
5557
.order('created_at', { ascending: false });
5658

server/services/modelServices.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,22 @@ export default class ModelServices extends SupabaseService {
2525
async delete(params: { id: string; appId: string }) {
2626
const model = await this.client
2727
.from('models')
28-
.update({
29-
deleted_at: new Date().toISOString(),
30-
})
28+
.delete()
3129
.eq('id', params.id)
3230
.eq('app_id', params.appId)
33-
.eq('user_id', this.user.id)
34-
.select('*');
31+
.eq('user_id', this.user.id);
3532

3633
if (model.error !== null) {
3734
throw ErrorResponse.supabase(model.error);
3835
}
3936

40-
return model.data[0];
37+
return null;
4138
}
4239

4340
async findByName(params: { name: string; appId: string }) {
4441
const models = await this.client
4542
.from('models')
4643
.select('*')
47-
.is('deleted_at', null)
4844
.eq('name', params.name)
4945
.eq('app_id', params.appId)
5046
.eq('user_id', this.user.id);
@@ -60,7 +56,6 @@ export default class ModelServices extends SupabaseService {
6056
const models = await this.client
6157
.from('models')
6258
.select('*')
63-
.is('deleted_at', null)
6459
.eq('id', id)
6560
.eq('user_id', this.user.id);
6661

@@ -79,7 +74,6 @@ export default class ModelServices extends SupabaseService {
7974
const models = await this.client
8075
.from('models')
8176
.select('id, name, schema')
82-
.is('deleted_at', null)
8377
.eq('app_id', appId)
8478
.eq('user_id', this.user.id)
8579
.order('created_at', { ascending: false });
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
alter table models drop column deleted_at;
2+
alter table model_data drop column deleted_at;
3+
alter table apps drop column deleted_at;

0 commit comments

Comments
 (0)