@defikitdotnet/x-ai-combat
Version:
XCombatAI - Social Media Engagement Template for the Agent Framework
78 lines • 3.22 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.XAICombatUserController = void 0;
const agent_framework_backend_1 = require("@defikitdotnet/agent-framework-backend");
const uuid_1 = require("uuid");
const User_1 = require("../models/User");
const XAIAdapter_1 = require("../db/XAIAdapter");
// Create a resource implementation for UserResource
const createUserResource = (adapter) => ({
name: "users",
findAll: async (agentId) => {
// Get users filtered by agentId if provided
return adapter.getAllUsers(agentId);
},
findById: async (id, agentId) => {
const user = await adapter.findUserById(id);
// Filter by agentId if provided
if (user && agentId && user.agentId !== agentId) {
return null;
}
return user;
},
findByTwitterId: async (twitterId, agentId) => {
const user = await adapter.findUserByTwitterId(twitterId);
// Filter by agentId if provided
if (user && agentId && user.agentId !== agentId) {
return null;
}
return user;
},
create: async (data) => {
const id = (0, uuid_1.v4)();
const newUser = new User_1.UserResource();
Object.assign(newUser, data, {
id,
linkedAt: data.linkedAt || new Date(),
});
await adapter.createUser(newUser);
return newUser;
},
update: async (id, data) => {
const existingUser = await adapter.findUserById(id);
if (!existingUser)
return null;
const updated = { ...existingUser, ...data, updatedAt: new Date() };
await adapter.updateUser(updated);
return updated;
},
delete: async (id) => {
// Implementation will be added later if needed
return false;
},
});
/**
* User API controller
* Handles user CRUD operations
*/
let XAICombatUserController = class XAICombatUserController extends agent_framework_backend_1.ResourceController {
constructor(adapter) {
super(createUserResource(adapter));
this.adapter = adapter;
}
};
exports.XAICombatUserController = XAICombatUserController;
exports.XAICombatUserController = XAICombatUserController = __decorate([
(0, agent_framework_backend_1.Controller)("/xaicombat/api/users"),
__metadata("design:paramtypes", [XAIAdapter_1.XAIAdapter])
], XAICombatUserController);
//# sourceMappingURL=UserController.js.map