clhq-dynamodb-module 1.1.0-alpha.90
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.
- package/dist/app.module.d.ts +2 -0
- package/dist/app.module.js +88 -0
- package/dist/common/enums/index.d.ts +1 -0
- package/dist/common/enums/index.js +17 -0
- package/dist/common/enums/project-enums.d.ts +13 -0
- package/dist/common/enums/project-enums.js +18 -0
- package/dist/common/user.controller.d.ts +12 -0
- package/dist/common/user.controller.js +102 -0
- package/dist/dbservice/dynamodb-base.service.d.ts +23 -0
- package/dist/dbservice/dynamodb-base.service.js +105 -0
- package/dist/dbservice/index.d.ts +4 -0
- package/dist/dbservice/index.js +20 -0
- package/dist/dbservice/projects.service.d.ts +5 -0
- package/dist/dbservice/projects.service.js +25 -0
- package/dist/dbservice/users.service.d.ts +5 -0
- package/dist/dbservice/users.service.js +25 -0
- package/dist/dbservice/workspaces.service.d.ts +5 -0
- package/dist/dbservice/workspaces.service.js +25 -0
- package/dist/entities/ai-usage.entity.d.ts +16 -0
- package/dist/entities/ai-usage.entity.js +71 -0
- package/dist/entities/asset.entity.d.ts +59 -0
- package/dist/entities/asset.entity.js +185 -0
- package/dist/entities/auth.entity.d.ts +10 -0
- package/dist/entities/auth.entity.js +9 -0
- package/dist/entities/clip-effect.entity.d.ts +9 -0
- package/dist/entities/clip-effect.entity.js +53 -0
- package/dist/entities/clip.entity.d.ts +44 -0
- package/dist/entities/clip.entity.js +114 -0
- package/dist/entities/comment.entity.d.ts +18 -0
- package/dist/entities/comment.entity.js +83 -0
- package/dist/entities/common.entity.d.ts +21 -0
- package/dist/entities/common.entity.js +27 -0
- package/dist/entities/credit-transaction.entity.d.ts +15 -0
- package/dist/entities/credit-transaction.entity.js +66 -0
- package/dist/entities/editor-project.entity.d.ts +48 -0
- package/dist/entities/editor-project.entity.js +226 -0
- package/dist/entities/effect.entity.d.ts +22 -0
- package/dist/entities/effect.entity.js +87 -0
- package/dist/entities/index.d.ts +28 -0
- package/dist/entities/index.js +44 -0
- package/dist/entities/invite.entity.d.ts +17 -0
- package/dist/entities/invite.entity.js +73 -0
- package/dist/entities/keyframe.entity.d.ts +18 -0
- package/dist/entities/keyframe.entity.js +73 -0
- package/dist/entities/payment-transaction.entity.d.ts +40 -0
- package/dist/entities/payment-transaction.entity.js +138 -0
- package/dist/entities/payment.entity.d.ts +24 -0
- package/dist/entities/payment.entity.js +89 -0
- package/dist/entities/plan.entity.d.ts +13 -0
- package/dist/entities/plan.entity.js +77 -0
- package/dist/entities/project-version.entity.d.ts +11 -0
- package/dist/entities/project-version.entity.js +66 -0
- package/dist/entities/project.entity.d.ts +48 -0
- package/dist/entities/project.entity.js +175 -0
- package/dist/entities/reward-rule.entity.d.ts +15 -0
- package/dist/entities/reward-rule.entity.js +67 -0
- package/dist/entities/stripe-webhook-event.entity.d.ts +9 -0
- package/dist/entities/stripe-webhook-event.entity.js +54 -0
- package/dist/entities/subscription-plan.entity.d.ts +37 -0
- package/dist/entities/subscription-plan.entity.js +197 -0
- package/dist/entities/subscription-usage.entity.d.ts +15 -0
- package/dist/entities/subscription-usage.entity.js +83 -0
- package/dist/entities/timeline.entity.d.ts +8 -0
- package/dist/entities/timeline.entity.js +48 -0
- package/dist/entities/track.entity.d.ts +20 -0
- package/dist/entities/track.entity.js +81 -0
- package/dist/entities/user-onboarding-response.entity.d.ts +8 -0
- package/dist/entities/user-onboarding-response.entity.js +48 -0
- package/dist/entities/user-profile.entity.d.ts +51 -0
- package/dist/entities/user-profile.entity.js +200 -0
- package/dist/entities/user-subscription.entity.d.ts +44 -0
- package/dist/entities/user-subscription.entity.js +160 -0
- package/dist/entities/user.entity.d.ts +32 -0
- package/dist/entities/user.entity.js +133 -0
- package/dist/entities/workspace-member.entity.d.ts +8 -0
- package/dist/entities/workspace-member.entity.js +49 -0
- package/dist/entities/workspace.entity.d.ts +9 -0
- package/dist/entities/workspace.entity.js +54 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +22 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +10 -0
- package/dist/repositories/asset.repository.d.ts +15 -0
- package/dist/repositories/asset.repository.js +101 -0
- package/dist/repositories/base.repository.d.ts +31 -0
- package/dist/repositories/base.repository.js +172 -0
- package/dist/repositories/clip-effect.repository.d.ts +9 -0
- package/dist/repositories/clip-effect.repository.js +49 -0
- package/dist/repositories/clip.repository.d.ts +13 -0
- package/dist/repositories/clip.repository.js +101 -0
- package/dist/repositories/comment.repository.d.ts +12 -0
- package/dist/repositories/comment.repository.js +92 -0
- package/dist/repositories/editor-project.repository.d.ts +26 -0
- package/dist/repositories/editor-project.repository.js +107 -0
- package/dist/repositories/effect.repository.d.ts +10 -0
- package/dist/repositories/effect.repository.js +59 -0
- package/dist/repositories/index.d.ts +21 -0
- package/dist/repositories/index.js +37 -0
- package/dist/repositories/keyframe.repository.d.ts +9 -0
- package/dist/repositories/keyframe.repository.js +49 -0
- package/dist/repositories/payment-transaction.repository.d.ts +13 -0
- package/dist/repositories/payment-transaction.repository.js +123 -0
- package/dist/repositories/project-version.repository.d.ts +9 -0
- package/dist/repositories/project-version.repository.js +51 -0
- package/dist/repositories/project.repository.d.ts +17 -0
- package/dist/repositories/project.repository.js +132 -0
- package/dist/repositories/reward-rule.repository.d.ts +13 -0
- package/dist/repositories/reward-rule.repository.js +84 -0
- package/dist/repositories/subscription-plan.repository.d.ts +11 -0
- package/dist/repositories/subscription-plan.repository.js +49 -0
- package/dist/repositories/subscription-usage.repository.d.ts +12 -0
- package/dist/repositories/subscription-usage.repository.js +68 -0
- package/dist/repositories/timeline.repository.d.ts +9 -0
- package/dist/repositories/timeline.repository.js +53 -0
- package/dist/repositories/track.repository.d.ts +13 -0
- package/dist/repositories/track.repository.js +61 -0
- package/dist/repositories/user-onboarding-response.repository.d.ts +11 -0
- package/dist/repositories/user-onboarding-response.repository.js +58 -0
- package/dist/repositories/user-profile.repository.d.ts +18 -0
- package/dist/repositories/user-profile.repository.js +62 -0
- package/dist/repositories/user-subscription.repository.d.ts +13 -0
- package/dist/repositories/user-subscription.repository.js +52 -0
- package/dist/repositories/user.repository.d.ts +20 -0
- package/dist/repositories/user.repository.js +94 -0
- package/dist/repositories/workspace-member.repository.d.ts +10 -0
- package/dist/repositories/workspace-member.repository.js +37 -0
- package/dist/repositories/workspace.repository.d.ts +10 -0
- package/dist/repositories/workspace.repository.js +45 -0
- package/package.json +63 -0
- package/readme.entity.implementation.md +1560 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DynamoDbRepoModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const config_1 = require("@nestjs/config");
|
|
12
|
+
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
13
|
+
const repositories_1 = require("./repositories");
|
|
14
|
+
const user_controller_1 = require("./common/user.controller");
|
|
15
|
+
const users_service_1 = require("./dbservice/users.service");
|
|
16
|
+
const projects_service_1 = require("./dbservice/projects.service");
|
|
17
|
+
const workspaces_service_1 = require("./dbservice/workspaces.service");
|
|
18
|
+
let DynamoDbRepoModule = class DynamoDbRepoModule {
|
|
19
|
+
};
|
|
20
|
+
exports.DynamoDbRepoModule = DynamoDbRepoModule;
|
|
21
|
+
exports.DynamoDbRepoModule = DynamoDbRepoModule = __decorate([
|
|
22
|
+
(0, common_1.Module)({
|
|
23
|
+
imports: [config_1.ConfigModule.forRoot({ isGlobal: true })],
|
|
24
|
+
controllers: [user_controller_1.UserController],
|
|
25
|
+
providers: [
|
|
26
|
+
users_service_1.UsersService,
|
|
27
|
+
projects_service_1.ProjectsService,
|
|
28
|
+
workspaces_service_1.WorkspacesService,
|
|
29
|
+
{
|
|
30
|
+
provide: client_dynamodb_1.DynamoDB,
|
|
31
|
+
useFactory: () => {
|
|
32
|
+
return new client_dynamodb_1.DynamoDB({
|
|
33
|
+
region: process.env.CLIPPY_AWS_DEFAULT_REGION || 'ap-southeast-2',
|
|
34
|
+
credentials: {
|
|
35
|
+
accessKeyId: process.env.CLIPPY_AWS_USER_KEY,
|
|
36
|
+
secretAccessKey: process.env.CLIPPY_AWS_USER_SECRET,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
repositories_1.AssetRepository,
|
|
42
|
+
repositories_1.ClipRepository,
|
|
43
|
+
repositories_1.ClipEffectRepository,
|
|
44
|
+
repositories_1.CommentRepository,
|
|
45
|
+
repositories_1.EffectRepository,
|
|
46
|
+
repositories_1.KeyframeRepository,
|
|
47
|
+
repositories_1.PaymentTransactionRepository,
|
|
48
|
+
repositories_1.ProjectVersionRepository,
|
|
49
|
+
repositories_1.RewardRuleRepository,
|
|
50
|
+
repositories_1.SubscriptionPlanRepository,
|
|
51
|
+
repositories_1.SubscriptionUsageRepository,
|
|
52
|
+
repositories_1.TimelineRepository,
|
|
53
|
+
repositories_1.TrackRepository,
|
|
54
|
+
repositories_1.UserRepository,
|
|
55
|
+
repositories_1.UserOnboardingResponseRepository,
|
|
56
|
+
repositories_1.UserProfileRepository,
|
|
57
|
+
repositories_1.UserSubscriptionRepository,
|
|
58
|
+
repositories_1.WorkspaceRepository,
|
|
59
|
+
repositories_1.WorkspaceMemberRepository,
|
|
60
|
+
repositories_1.EditorProjectRepository,
|
|
61
|
+
],
|
|
62
|
+
exports: [
|
|
63
|
+
users_service_1.UsersService,
|
|
64
|
+
projects_service_1.ProjectsService,
|
|
65
|
+
workspaces_service_1.WorkspacesService,
|
|
66
|
+
repositories_1.AssetRepository,
|
|
67
|
+
repositories_1.ClipRepository,
|
|
68
|
+
repositories_1.ClipEffectRepository,
|
|
69
|
+
repositories_1.CommentRepository,
|
|
70
|
+
repositories_1.EffectRepository,
|
|
71
|
+
repositories_1.KeyframeRepository,
|
|
72
|
+
repositories_1.PaymentTransactionRepository,
|
|
73
|
+
repositories_1.ProjectVersionRepository,
|
|
74
|
+
repositories_1.RewardRuleRepository,
|
|
75
|
+
repositories_1.SubscriptionPlanRepository,
|
|
76
|
+
repositories_1.SubscriptionUsageRepository,
|
|
77
|
+
repositories_1.TimelineRepository,
|
|
78
|
+
repositories_1.TrackRepository,
|
|
79
|
+
repositories_1.UserRepository,
|
|
80
|
+
repositories_1.UserOnboardingResponseRepository,
|
|
81
|
+
repositories_1.UserProfileRepository,
|
|
82
|
+
repositories_1.UserSubscriptionRepository,
|
|
83
|
+
repositories_1.WorkspaceRepository,
|
|
84
|
+
repositories_1.WorkspaceMemberRepository,
|
|
85
|
+
repositories_1.EditorProjectRepository,
|
|
86
|
+
],
|
|
87
|
+
})
|
|
88
|
+
], DynamoDbRepoModule);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './project-enums';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./project-enums"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum ProjectStatus {
|
|
2
|
+
DRAFT = "draft",
|
|
3
|
+
IN_PROGRESS = "in_progress",
|
|
4
|
+
RENDERING = "rendering",
|
|
5
|
+
COMPLETED = "completed",
|
|
6
|
+
FAILED = "failed",
|
|
7
|
+
ARCHIVED = "archived"
|
|
8
|
+
}
|
|
9
|
+
export declare enum ProjectVisibility {
|
|
10
|
+
PRIVATE = "private",
|
|
11
|
+
WORKSPACE = "workspace",
|
|
12
|
+
PUBLIC = "public"
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectVisibility = exports.ProjectStatus = void 0;
|
|
4
|
+
var ProjectStatus;
|
|
5
|
+
(function (ProjectStatus) {
|
|
6
|
+
ProjectStatus["DRAFT"] = "draft";
|
|
7
|
+
ProjectStatus["IN_PROGRESS"] = "in_progress";
|
|
8
|
+
ProjectStatus["RENDERING"] = "rendering";
|
|
9
|
+
ProjectStatus["COMPLETED"] = "completed";
|
|
10
|
+
ProjectStatus["FAILED"] = "failed";
|
|
11
|
+
ProjectStatus["ARCHIVED"] = "archived";
|
|
12
|
+
})(ProjectStatus || (exports.ProjectStatus = ProjectStatus = {}));
|
|
13
|
+
var ProjectVisibility;
|
|
14
|
+
(function (ProjectVisibility) {
|
|
15
|
+
ProjectVisibility["PRIVATE"] = "private";
|
|
16
|
+
ProjectVisibility["WORKSPACE"] = "workspace";
|
|
17
|
+
ProjectVisibility["PUBLIC"] = "public";
|
|
18
|
+
})(ProjectVisibility || (exports.ProjectVisibility = ProjectVisibility = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
import { UsersService } from '../dbservice/users.service';
|
|
3
|
+
import { User } from '../entities/user.entity';
|
|
4
|
+
export declare class UserController {
|
|
5
|
+
private readonly usersService;
|
|
6
|
+
constructor(usersService: UsersService);
|
|
7
|
+
getById(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
8
|
+
getAll(res: Response): Promise<Response<any, Record<string, any>>>;
|
|
9
|
+
create(user: User, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
10
|
+
update(id: string, updates: Partial<User>, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
11
|
+
delete(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.UserController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const users_service_1 = require("../dbservice/users.service");
|
|
18
|
+
const user_entity_1 = require("../entities/user.entity");
|
|
19
|
+
let UserController = class UserController {
|
|
20
|
+
usersService;
|
|
21
|
+
constructor(usersService) {
|
|
22
|
+
this.usersService = usersService;
|
|
23
|
+
}
|
|
24
|
+
async getById(id, res) {
|
|
25
|
+
const user = await this.usersService.getRecordById(id);
|
|
26
|
+
if (!user)
|
|
27
|
+
return res
|
|
28
|
+
.status(common_1.HttpStatus.NOT_FOUND)
|
|
29
|
+
.json({ message: 'User not found' });
|
|
30
|
+
return res.status(common_1.HttpStatus.OK).json(user);
|
|
31
|
+
}
|
|
32
|
+
async getAll(res) {
|
|
33
|
+
const users = await this.usersService.getRecords();
|
|
34
|
+
return res.status(common_1.HttpStatus.OK).json(users);
|
|
35
|
+
}
|
|
36
|
+
async create(user, res) {
|
|
37
|
+
const created = await this.usersService.createRecord(user);
|
|
38
|
+
return res.status(common_1.HttpStatus.CREATED).json(created);
|
|
39
|
+
}
|
|
40
|
+
async update(id, updates, res) {
|
|
41
|
+
const updated = await this.usersService.updateRecord({ id, ...updates });
|
|
42
|
+
if (!updated)
|
|
43
|
+
return res
|
|
44
|
+
.status(common_1.HttpStatus.NOT_FOUND)
|
|
45
|
+
.json({ message: 'User not found' });
|
|
46
|
+
return res.status(common_1.HttpStatus.OK).json(updated);
|
|
47
|
+
}
|
|
48
|
+
async delete(id, res) {
|
|
49
|
+
await this.usersService.deleteRecord(id);
|
|
50
|
+
return res.status(common_1.HttpStatus.NO_CONTENT).send();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.UserController = UserController;
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, common_1.Get)(':id'),
|
|
56
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.OK),
|
|
57
|
+
__param(0, (0, common_1.Param)('id')),
|
|
58
|
+
__param(1, (0, common_1.Res)()),
|
|
59
|
+
__metadata("design:type", Function),
|
|
60
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
61
|
+
__metadata("design:returntype", Promise)
|
|
62
|
+
], UserController.prototype, "getById", null);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, common_1.Get)(),
|
|
65
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.OK),
|
|
66
|
+
__param(0, (0, common_1.Res)()),
|
|
67
|
+
__metadata("design:type", Function),
|
|
68
|
+
__metadata("design:paramtypes", [Object]),
|
|
69
|
+
__metadata("design:returntype", Promise)
|
|
70
|
+
], UserController.prototype, "getAll", null);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, common_1.Post)(),
|
|
73
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
|
74
|
+
__param(0, (0, common_1.Body)()),
|
|
75
|
+
__param(1, (0, common_1.Res)()),
|
|
76
|
+
__metadata("design:type", Function),
|
|
77
|
+
__metadata("design:paramtypes", [user_entity_1.User, Object]),
|
|
78
|
+
__metadata("design:returntype", Promise)
|
|
79
|
+
], UserController.prototype, "create", null);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, common_1.Put)(':id'),
|
|
82
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.OK),
|
|
83
|
+
__param(0, (0, common_1.Param)('id')),
|
|
84
|
+
__param(1, (0, common_1.Body)()),
|
|
85
|
+
__param(2, (0, common_1.Res)()),
|
|
86
|
+
__metadata("design:type", Function),
|
|
87
|
+
__metadata("design:paramtypes", [String, Object, Object]),
|
|
88
|
+
__metadata("design:returntype", Promise)
|
|
89
|
+
], UserController.prototype, "update", null);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, common_1.Delete)(':id'),
|
|
92
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
93
|
+
__param(0, (0, common_1.Param)('id')),
|
|
94
|
+
__param(1, (0, common_1.Res)()),
|
|
95
|
+
__metadata("design:type", Function),
|
|
96
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
97
|
+
__metadata("design:returntype", Promise)
|
|
98
|
+
], UserController.prototype, "delete", null);
|
|
99
|
+
exports.UserController = UserController = __decorate([
|
|
100
|
+
(0, common_1.Controller)('users'),
|
|
101
|
+
__metadata("design:paramtypes", [users_service_1.UsersService])
|
|
102
|
+
], UserController);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
4
|
+
import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
|
|
5
|
+
export declare class DynamoDbBaseService<T = any> {
|
|
6
|
+
protected readonly awsUserKey: string;
|
|
7
|
+
protected readonly awsUserPassword: string;
|
|
8
|
+
protected readonly region: string;
|
|
9
|
+
protected readonly logger: Logger;
|
|
10
|
+
protected ddbClient: DynamoDBClient;
|
|
11
|
+
protected ddDocClient: DynamoDBDocumentClient;
|
|
12
|
+
protected readonly tableName: string;
|
|
13
|
+
protected readonly configService: ConfigService;
|
|
14
|
+
constructor(configService: ConfigService, tableEnvOrName: string, loggerContext: string);
|
|
15
|
+
getRecords(): Promise<T[]>;
|
|
16
|
+
getRecordById(id: string): Promise<T>;
|
|
17
|
+
createRecord(body: T): Promise<any>;
|
|
18
|
+
updateRecord(body: Partial<T> & {
|
|
19
|
+
id: string;
|
|
20
|
+
data?: unknown;
|
|
21
|
+
}): Promise<any>;
|
|
22
|
+
deleteRecord(id: string): Promise<any>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamoDbBaseService = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
6
|
+
const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
7
|
+
class DynamoDbBaseService {
|
|
8
|
+
awsUserKey;
|
|
9
|
+
awsUserPassword;
|
|
10
|
+
region;
|
|
11
|
+
logger;
|
|
12
|
+
ddbClient;
|
|
13
|
+
ddDocClient;
|
|
14
|
+
tableName;
|
|
15
|
+
configService;
|
|
16
|
+
constructor(configService, tableEnvOrName, loggerContext) {
|
|
17
|
+
this.configService = configService;
|
|
18
|
+
if (!configService) {
|
|
19
|
+
throw new Error('ConfigService is not provided to DynamoDbBaseService');
|
|
20
|
+
}
|
|
21
|
+
this.awsUserKey = configService.get('CLIPPY_AWS_USER_KEY');
|
|
22
|
+
this.awsUserPassword = configService.get('CLIPPY_AWS_USER_SECRET');
|
|
23
|
+
this.region = configService.get('CLIPPY_AWS_DEFAULT_REGION');
|
|
24
|
+
this.logger = new common_1.Logger(loggerContext);
|
|
25
|
+
this.ddbClient = new client_dynamodb_1.DynamoDBClient({
|
|
26
|
+
region: this.region,
|
|
27
|
+
credentials: {
|
|
28
|
+
accessKeyId: this.awsUserKey,
|
|
29
|
+
secretAccessKey: this.awsUserPassword,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
this.ddDocClient = lib_dynamodb_1.DynamoDBDocumentClient.from(this.ddbClient);
|
|
33
|
+
const envTable = this.configService.get(tableEnvOrName);
|
|
34
|
+
this.tableName = envTable || tableEnvOrName;
|
|
35
|
+
}
|
|
36
|
+
async getRecords() {
|
|
37
|
+
try {
|
|
38
|
+
const command = new lib_dynamodb_1.ScanCommand({ TableName: this.tableName });
|
|
39
|
+
const data = await this.ddDocClient.send(command);
|
|
40
|
+
return data.Items;
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
throw new common_1.InternalServerErrorException(e);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async getRecordById(id) {
|
|
47
|
+
try {
|
|
48
|
+
const command = new lib_dynamodb_1.GetCommand({
|
|
49
|
+
TableName: this.tableName,
|
|
50
|
+
Key: { id },
|
|
51
|
+
});
|
|
52
|
+
const data = await this.ddDocClient.send(command);
|
|
53
|
+
return data.Item;
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
throw new common_1.InternalServerErrorException(e);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async createRecord(body) {
|
|
60
|
+
try {
|
|
61
|
+
const command = new lib_dynamodb_1.PutCommand({ TableName: this.tableName, Item: body });
|
|
62
|
+
return await this.ddDocClient.send(command);
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw new common_1.InternalServerErrorException(e);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async updateRecord(body) {
|
|
69
|
+
try {
|
|
70
|
+
const params = {
|
|
71
|
+
TableName: this.tableName,
|
|
72
|
+
Key: { id: body.id },
|
|
73
|
+
ExpressionAttributeNames: { '#data': 'data' },
|
|
74
|
+
ExpressionAttributeValues: {},
|
|
75
|
+
UpdateExpression: 'SET ',
|
|
76
|
+
ReturnValues: 'UPDATED_NEW',
|
|
77
|
+
};
|
|
78
|
+
if (body.data !== undefined) {
|
|
79
|
+
params.ExpressionAttributeValues[':data'] = body.data;
|
|
80
|
+
params.UpdateExpression += '#data = :data';
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
throw new common_1.InternalServerErrorException('No data provided for update');
|
|
84
|
+
}
|
|
85
|
+
const command = new lib_dynamodb_1.UpdateCommand(params);
|
|
86
|
+
return await this.ddDocClient.send(command);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
throw new common_1.InternalServerErrorException(e);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async deleteRecord(id) {
|
|
93
|
+
try {
|
|
94
|
+
const command = new lib_dynamodb_1.DeleteCommand({
|
|
95
|
+
TableName: this.tableName,
|
|
96
|
+
Key: { id },
|
|
97
|
+
});
|
|
98
|
+
return await this.ddDocClient.send(command);
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
throw new common_1.InternalServerErrorException(e);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.DynamoDbBaseService = DynamoDbBaseService;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./dynamodb-base.service"), exports);
|
|
18
|
+
__exportStar(require("./projects.service"), exports);
|
|
19
|
+
__exportStar(require("./users.service"), exports);
|
|
20
|
+
__exportStar(require("./workspaces.service"), exports);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ProjectsService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
const dynamodb_base_service_1 = require("./dynamodb-base.service");
|
|
16
|
+
let ProjectsService = class ProjectsService extends dynamodb_base_service_1.DynamoDbBaseService {
|
|
17
|
+
constructor(configService) {
|
|
18
|
+
super(configService, 'projects-v1', 'ProjectsService');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.ProjectsService = ProjectsService;
|
|
22
|
+
exports.ProjectsService = ProjectsService = __decorate([
|
|
23
|
+
(0, common_1.Injectable)(),
|
|
24
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
25
|
+
], ProjectsService);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UsersService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
const dynamodb_base_service_1 = require("./dynamodb-base.service");
|
|
16
|
+
let UsersService = class UsersService extends dynamodb_base_service_1.DynamoDbBaseService {
|
|
17
|
+
constructor(configService) {
|
|
18
|
+
super(configService, 'users-v1', 'UsersService');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.UsersService = UsersService;
|
|
22
|
+
exports.UsersService = UsersService = __decorate([
|
|
23
|
+
(0, common_1.Injectable)(),
|
|
24
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
25
|
+
], UsersService);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WorkspacesService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
const dynamodb_base_service_1 = require("./dynamodb-base.service");
|
|
16
|
+
let WorkspacesService = class WorkspacesService extends dynamodb_base_service_1.DynamoDbBaseService {
|
|
17
|
+
constructor(configService) {
|
|
18
|
+
super(configService, 'workspaces-v1', 'WorkspacesService');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.WorkspacesService = WorkspacesService;
|
|
22
|
+
exports.WorkspacesService = WorkspacesService = __decorate([
|
|
23
|
+
(0, common_1.Injectable)(),
|
|
24
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
25
|
+
], WorkspacesService);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare enum AIFeatureType {
|
|
2
|
+
TEXT_GENERATION = "text_generation",
|
|
3
|
+
IMAGE_GENERATION = "image_generation",
|
|
4
|
+
CODE_GENERATION = "code_generation"
|
|
5
|
+
}
|
|
6
|
+
export declare class AIUsage {
|
|
7
|
+
id: string;
|
|
8
|
+
userId: string;
|
|
9
|
+
featureType: AIFeatureType;
|
|
10
|
+
usageAmount: number;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
createdAt?: string;
|
|
13
|
+
updatedAt?: string;
|
|
14
|
+
feature: string;
|
|
15
|
+
amount?: number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AIUsage = exports.AIFeatureType = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
var AIFeatureType;
|
|
15
|
+
(function (AIFeatureType) {
|
|
16
|
+
AIFeatureType["TEXT_GENERATION"] = "text_generation";
|
|
17
|
+
AIFeatureType["IMAGE_GENERATION"] = "image_generation";
|
|
18
|
+
AIFeatureType["CODE_GENERATION"] = "code_generation";
|
|
19
|
+
})(AIFeatureType || (exports.AIFeatureType = AIFeatureType = {}));
|
|
20
|
+
class AIUsage {
|
|
21
|
+
id;
|
|
22
|
+
userId;
|
|
23
|
+
featureType;
|
|
24
|
+
usageAmount;
|
|
25
|
+
timestamp;
|
|
26
|
+
createdAt;
|
|
27
|
+
updatedAt;
|
|
28
|
+
feature;
|
|
29
|
+
amount;
|
|
30
|
+
}
|
|
31
|
+
exports.AIUsage = AIUsage;
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], AIUsage.prototype, "id", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, class_validator_1.IsString)(),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], AIUsage.prototype, "userId", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, class_validator_1.IsEnum)(AIFeatureType),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], AIUsage.prototype, "featureType", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsNumber)(),
|
|
46
|
+
__metadata("design:type", Number)
|
|
47
|
+
], AIUsage.prototype, "usageAmount", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, class_validator_1.IsString)(),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], AIUsage.prototype, "timestamp", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, class_validator_1.IsString)(),
|
|
54
|
+
(0, class_validator_1.IsOptional)(),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], AIUsage.prototype, "createdAt", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, class_validator_1.IsString)(),
|
|
59
|
+
(0, class_validator_1.IsOptional)(),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], AIUsage.prototype, "updatedAt", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, class_validator_1.IsString)(),
|
|
64
|
+
(0, class_validator_1.IsOptional)(),
|
|
65
|
+
__metadata("design:type", String)
|
|
66
|
+
], AIUsage.prototype, "feature", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, class_validator_1.IsNumber)(),
|
|
69
|
+
(0, class_validator_1.IsOptional)(),
|
|
70
|
+
__metadata("design:type", Number)
|
|
71
|
+
], AIUsage.prototype, "amount", void 0);
|