streamby-core 0.10.11 → 0.10.13
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.
|
@@ -7,7 +7,6 @@ exports.createStreamByRouter = createStreamByRouter;
|
|
|
7
7
|
const express_1 = __importDefault(require("express"));
|
|
8
8
|
const s3_1 = require("../adapters/s3");
|
|
9
9
|
const file_1 = require("../services/file");
|
|
10
|
-
const project_1 = require("../services/project");
|
|
11
10
|
const presign_1 = require("../services/presign");
|
|
12
11
|
function isProjectMember(project, userId) {
|
|
13
12
|
return project.members?.some((m) => m.userId?.toString() === userId?.toString());
|
|
@@ -59,7 +58,7 @@ function createStreamByRouter(config) {
|
|
|
59
58
|
return res.status(400).json({ error: 'Missing projectId' });
|
|
60
59
|
}
|
|
61
60
|
await (0, file_1.deleteProjectImage)(adapter, projectId);
|
|
62
|
-
const updated = await
|
|
61
|
+
const updated = await config.projectProvider.update(projectId, { image: '' });
|
|
63
62
|
res.status(201).json(updated);
|
|
64
63
|
}
|
|
65
64
|
catch (err) {
|
|
@@ -120,8 +119,13 @@ function createStreamByRouter(config) {
|
|
|
120
119
|
if (auth.role !== 'admin' && auth.role !== 'editor') {
|
|
121
120
|
return res.status(403).json({ error: 'Permission denied' });
|
|
122
121
|
}
|
|
123
|
-
const
|
|
124
|
-
|
|
122
|
+
const { name, description } = req.body;
|
|
123
|
+
const newProject = await config.projectProvider.create({
|
|
124
|
+
name,
|
|
125
|
+
description: description || '',
|
|
126
|
+
members: [{ userId: auth.userId, role: "admin" }]
|
|
127
|
+
});
|
|
128
|
+
res.status(201).json(newProject);
|
|
125
129
|
}
|
|
126
130
|
catch (err) {
|
|
127
131
|
res.status(500).json({ error: 'Failed to create project', details: err.message });
|
|
@@ -163,7 +167,7 @@ function createStreamByRouter(config) {
|
|
|
163
167
|
if (!isProjectMember(project, auth.userId)) {
|
|
164
168
|
return res.status(403).json({ error: 'Unauthorized project access' });
|
|
165
169
|
}
|
|
166
|
-
await
|
|
170
|
+
await config.projectProvider.delete(projectId);
|
|
167
171
|
res.status(200).json({ success: true });
|
|
168
172
|
}
|
|
169
173
|
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.members[0].userId,
|
|
17
|
-
role: data.members[0].role,
|
|
16
|
+
userId: data.members?.[0].userId,
|
|
17
|
+
role: data.members?.[0].role,
|
|
18
18
|
}
|
|
19
19
|
],
|
|
20
20
|
name: data.name,
|
|
@@ -40,7 +40,7 @@ function createMongoProjectProvider(ProjectModel, adapter) {
|
|
|
40
40
|
async delete(projectId) {
|
|
41
41
|
try {
|
|
42
42
|
await ProjectModel.findByIdAndDelete(projectId);
|
|
43
|
-
await adapter.
|
|
43
|
+
await adapter.deleteProjectDirectory(projectId);
|
|
44
44
|
return { success: true };
|
|
45
45
|
}
|
|
46
46
|
catch (error) {
|
|
@@ -4,13 +4,6 @@ export declare function createProjectService(req: Request, authProvider: AuthPro
|
|
|
4
4
|
success: boolean;
|
|
5
5
|
project: import("../types").ProjectInfo;
|
|
6
6
|
}>;
|
|
7
|
-
export declare function updateProjectService(req: Request, authProvider: AuthProvider, projectProvider: ProjectProvider): Promise<{
|
|
8
|
-
success: boolean;
|
|
9
|
-
project: import("../types").ProjectInfo;
|
|
10
|
-
}>;
|
|
11
|
-
export declare function deleteProjectService(projectId: string, projectProvider: ProjectProvider): Promise<{
|
|
12
|
-
success: boolean;
|
|
13
|
-
}>;
|
|
14
7
|
export declare function deleteProjectImageService(req: Request, authProvider: AuthProvider, projectProvider: ProjectProvider): Promise<{
|
|
15
8
|
success: boolean;
|
|
16
9
|
}>;
|
package/dist/services/project.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createProjectService = createProjectService;
|
|
4
|
-
exports.updateProjectService = updateProjectService;
|
|
5
|
-
exports.deleteProjectService = deleteProjectService;
|
|
6
4
|
exports.deleteProjectImageService = deleteProjectImageService;
|
|
7
5
|
async function createProjectService(req, authProvider, projectProvider) {
|
|
8
6
|
const { name, description } = req.body;
|
|
@@ -20,29 +18,6 @@ async function createProjectService(req, authProvider, projectProvider) {
|
|
|
20
18
|
project: newProject,
|
|
21
19
|
};
|
|
22
20
|
}
|
|
23
|
-
async function updateProjectService(req, authProvider, projectProvider) {
|
|
24
|
-
const { projectId } = req.params;
|
|
25
|
-
const updates = req.body;
|
|
26
|
-
const auth = await authProvider(req);
|
|
27
|
-
const project = await projectProvider.getById(projectId);
|
|
28
|
-
if (!project) {
|
|
29
|
-
throw new Error('Project not found');
|
|
30
|
-
}
|
|
31
|
-
if (!project.members?.find((e) => e.userId === auth.userId)) {
|
|
32
|
-
throw new Error('Unauthorized');
|
|
33
|
-
}
|
|
34
|
-
const updatedProject = await projectProvider.update(projectId, updates);
|
|
35
|
-
return {
|
|
36
|
-
success: true,
|
|
37
|
-
project: updatedProject,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
async function deleteProjectService(projectId, projectProvider) {
|
|
41
|
-
await projectProvider.delete(projectId);
|
|
42
|
-
return {
|
|
43
|
-
success: true,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
21
|
async function deleteProjectImageService(req, authProvider, projectProvider) {
|
|
47
22
|
const { projectId } = req.params;
|
|
48
23
|
const auth = await authProvider(req);
|
package/dist/types/index.d.ts
CHANGED
|
@@ -60,10 +60,10 @@ export interface ProjectProvider {
|
|
|
60
60
|
create(data: {
|
|
61
61
|
name: string;
|
|
62
62
|
image?: string;
|
|
63
|
-
members
|
|
63
|
+
members?: {
|
|
64
64
|
userId: string;
|
|
65
|
-
role:
|
|
66
|
-
}];
|
|
65
|
+
role: 'viewer' | 'editor' | 'admin';
|
|
66
|
+
}[];
|
|
67
67
|
description?: string;
|
|
68
68
|
allowUpload?: boolean;
|
|
69
69
|
allowSharing?: boolean;
|