streamby-core 0.10.8 → 0.10.10
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.
|
@@ -129,7 +129,16 @@ function createStreamByRouter(config) {
|
|
|
129
129
|
});
|
|
130
130
|
router.patch('/projects/:id', async (req, res) => {
|
|
131
131
|
try {
|
|
132
|
-
const
|
|
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);
|
|
133
142
|
res.status(200).json({ success: true, project: updated });
|
|
134
143
|
}
|
|
135
144
|
catch (err) {
|
|
@@ -138,7 +147,16 @@ function createStreamByRouter(config) {
|
|
|
138
147
|
});
|
|
139
148
|
router.delete('/projects/:id', async (req, res) => {
|
|
140
149
|
try {
|
|
141
|
-
|
|
150
|
+
const auth = await config.authProvider(req);
|
|
151
|
+
const projectId = req.params.id;
|
|
152
|
+
const project = await config.projectProvider.getById(projectId);
|
|
153
|
+
if (!project) {
|
|
154
|
+
return res.status(404).json({ error: 'Project not found' });
|
|
155
|
+
}
|
|
156
|
+
if (!isProjectMember(project, auth.userId)) {
|
|
157
|
+
return res.status(403).json({ error: 'Unauthorized project access' });
|
|
158
|
+
}
|
|
159
|
+
await (0, project_1.deleteProjectService)(projectId, config.projectProvider);
|
|
142
160
|
res.status(200).json({ success: true });
|
|
143
161
|
}
|
|
144
162
|
catch (err) {
|
|
@@ -13,8 +13,8 @@ function createMongoProjectProvider(ProjectModel, adapter) {
|
|
|
13
13
|
const newProject = await ProjectModel.create({
|
|
14
14
|
members: [
|
|
15
15
|
{
|
|
16
|
-
userId: data.userId,
|
|
17
|
-
role:
|
|
16
|
+
userId: data.members[0].userId,
|
|
17
|
+
role: data.members[0].role,
|
|
18
18
|
}
|
|
19
19
|
],
|
|
20
20
|
name: data.name,
|
|
@@ -8,7 +8,7 @@ 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(
|
|
11
|
+
export declare function deleteProjectService(projectId: string, projectProvider: ProjectProvider): Promise<{
|
|
12
12
|
success: boolean;
|
|
13
13
|
}>;
|
|
14
14
|
export declare function deleteProjectImageService(req: Request, authProvider: AuthProvider, projectProvider: ProjectProvider): Promise<{
|
package/dist/services/project.js
CHANGED
|
@@ -12,8 +12,8 @@ async function createProjectService(req, authProvider, projectProvider) {
|
|
|
12
12
|
}
|
|
13
13
|
const newProject = await projectProvider.create({
|
|
14
14
|
name,
|
|
15
|
-
userId: auth.userId,
|
|
16
15
|
description: description || '',
|
|
16
|
+
members: [{ userId: auth.userId, role: "admin" }]
|
|
17
17
|
});
|
|
18
18
|
return {
|
|
19
19
|
success: true,
|
|
@@ -37,16 +37,7 @@ async function updateProjectService(req, authProvider, projectProvider) {
|
|
|
37
37
|
project: updatedProject,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
async function deleteProjectService(
|
|
41
|
-
const projectId = req.params.id;
|
|
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 (auth.role !== "admin") {
|
|
48
|
-
throw new Error('Unauthorized');
|
|
49
|
-
}
|
|
40
|
+
async function deleteProjectService(projectId, projectProvider) {
|
|
50
41
|
await projectProvider.delete(projectId);
|
|
51
42
|
return {
|
|
52
43
|
success: true,
|
package/dist/types/index.d.ts
CHANGED