streamby-core 0.10.1 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -97,24 +97,6 @@ function createStreamByRouter(config) {
|
|
|
97
97
|
res.status(500).json({ error: 'Failed to list files', details: err });
|
|
98
98
|
}
|
|
99
99
|
});
|
|
100
|
-
router.patch('/projects/:id', async (req, res) => {
|
|
101
|
-
try {
|
|
102
|
-
const auth = await config.authProvider(req);
|
|
103
|
-
if (auth.role !== 'admin' && auth.role !== 'editor') {
|
|
104
|
-
return res.status(403).json({ error: 'Permission denied' });
|
|
105
|
-
}
|
|
106
|
-
const projectId = req.params.id;
|
|
107
|
-
const updates = req.body;
|
|
108
|
-
if (!updates || typeof updates !== 'object') {
|
|
109
|
-
return res.status(400).json({ error: 'Missing updates payload' });
|
|
110
|
-
}
|
|
111
|
-
const updated = await config.projectProvider.update(projectId, updates);
|
|
112
|
-
res.status(200).json({ success: true, project: updated });
|
|
113
|
-
}
|
|
114
|
-
catch (err) {
|
|
115
|
-
res.status(500).json({ error: 'Failed to update project', details: err.message });
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
100
|
router.get('/projects/:id', async (req, res) => {
|
|
119
101
|
try {
|
|
120
102
|
const auth = await config.authProvider(req);
|
|
@@ -145,6 +127,24 @@ function createStreamByRouter(config) {
|
|
|
145
127
|
res.status(500).json({ error: 'Failed to create project', details: err.message });
|
|
146
128
|
}
|
|
147
129
|
});
|
|
130
|
+
router.patch('/projects/:id', async (req, res) => {
|
|
131
|
+
try {
|
|
132
|
+
const auth = await config.authProvider(req);
|
|
133
|
+
if (auth.role !== 'admin' && auth.role !== 'editor') {
|
|
134
|
+
return res.status(403).json({ error: 'Permission denied' });
|
|
135
|
+
}
|
|
136
|
+
const projectId = req.params.id;
|
|
137
|
+
const updates = req.body;
|
|
138
|
+
if (!updates || typeof updates !== 'object') {
|
|
139
|
+
return res.status(400).json({ error: 'Missing updates payload' });
|
|
140
|
+
}
|
|
141
|
+
const updated = await config.projectProvider.update(projectId, updates);
|
|
142
|
+
res.status(200).json({ success: true, project: updated });
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
res.status(500).json({ error: 'Failed to update project', details: err.message });
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
148
|
router.delete('/projects/:id', async (req, res) => {
|
|
149
149
|
try {
|
|
150
150
|
const auth = await config.authProvider(req);
|
|
@@ -156,8 +156,8 @@ function createStreamByRouter(config) {
|
|
|
156
156
|
if (!isProjectMember(project, auth.userId)) {
|
|
157
157
|
return res.status(403).json({ error: 'Unauthorized project access' });
|
|
158
158
|
}
|
|
159
|
+
await (0, project_1.deleteProjectService)(req, config.authProvider, config.projectProvider);
|
|
159
160
|
await config.projectProvider.delete(projectId);
|
|
160
|
-
await adapter.deleteProjectDirectory(projectId);
|
|
161
161
|
res.status(200).json({ success: true });
|
|
162
162
|
}
|
|
163
163
|
catch (err) {
|
|
@@ -8,6 +8,12 @@ export declare function updateProjectService(req: Request, authProvider: AuthPro
|
|
|
8
8
|
success: boolean;
|
|
9
9
|
project: import("../types").ProjectInfo;
|
|
10
10
|
}>;
|
|
11
|
+
export declare function deleteProjectService(req: Request, authProvider: AuthProvider, projectProvider: ProjectProvider): Promise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
project: {
|
|
14
|
+
success: boolean;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
11
17
|
export declare function deleteProjectImageService(req: Request, authProvider: AuthProvider, projectProvider: ProjectProvider): Promise<{
|
|
12
18
|
success: boolean;
|
|
13
19
|
}>;
|
package/dist/services/project.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createProjectService = createProjectService;
|
|
4
4
|
exports.updateProjectService = updateProjectService;
|
|
5
|
+
exports.deleteProjectService = deleteProjectService;
|
|
5
6
|
exports.deleteProjectImageService = deleteProjectImageService;
|
|
6
7
|
async function createProjectService(req, authProvider, projectProvider) {
|
|
7
8
|
const { name, description } = req.body;
|
|
@@ -36,6 +37,22 @@ async function updateProjectService(req, authProvider, projectProvider) {
|
|
|
36
37
|
project: updatedProject,
|
|
37
38
|
};
|
|
38
39
|
}
|
|
40
|
+
async function deleteProjectService(req, authProvider, projectProvider) {
|
|
41
|
+
const { projectId } = req.params;
|
|
42
|
+
const auth = await authProvider(req);
|
|
43
|
+
const project = await projectProvider.getById(projectId);
|
|
44
|
+
if (!project) {
|
|
45
|
+
throw new Error('Project not found');
|
|
46
|
+
}
|
|
47
|
+
if (!project.members?.find((e) => e.userId === auth.userId)) {
|
|
48
|
+
throw new Error('Unauthorized');
|
|
49
|
+
}
|
|
50
|
+
const updatedProject = await projectProvider.delete(projectId);
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
project: updatedProject,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
39
56
|
async function deleteProjectImageService(req, authProvider, projectProvider) {
|
|
40
57
|
const { projectId } = req.params;
|
|
41
58
|
const auth = await authProvider(req);
|