streamby-core 0.10.9 → 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.
@@ -147,7 +147,16 @@ function createStreamByRouter(config) {
147
147
  });
148
148
  router.delete('/projects/:id', async (req, res) => {
149
149
  try {
150
- await (0, project_1.deleteProjectService)(req, config.authProvider, config.projectProvider);
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);
151
160
  res.status(200).json({ success: true });
152
161
  }
153
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: 'admin',
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(req: Request, authProvider: AuthProvider, projectProvider: ProjectProvider): Promise<{
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<{
@@ -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(req, authProvider, projectProvider) {
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,
@@ -60,7 +60,10 @@ export interface ProjectProvider {
60
60
  create(data: {
61
61
  name: string;
62
62
  image?: string;
63
- userId: string;
63
+ members: [{
64
+ userId: string;
65
+ role: string;
66
+ }];
64
67
  description?: string;
65
68
  allowUpload?: boolean;
66
69
  allowSharing?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "streamby-core",
3
- "version": "0.10.9",
3
+ "version": "0.10.10",
4
4
  "description": "StreamBy middleware framework for media storage management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",