73 lines
2.2 KiB
TypeScript
73 lines
2.2 KiB
TypeScript
import { initDB, create, get, update, remove, list, query, uploadFile, getFile, deleteFile, stopDB, logger } from '../src';
|
|
|
|
// Alternative import method
|
|
// import debros from '../src';
|
|
// const { db } = debros;
|
|
|
|
async function databaseExample() {
|
|
try {
|
|
logger.info('Starting database example...');
|
|
|
|
// Initialize the database service (abstracts away IPFS and OrbitDB)
|
|
await initDB();
|
|
logger.info('Database service initialized');
|
|
|
|
// Create a new user document
|
|
const userId = 'user123';
|
|
const userData = {
|
|
username: 'johndoe',
|
|
walletAddress: '0x1234567890',
|
|
avatar: null
|
|
};
|
|
|
|
const createResult = await create('users', userId, userData);
|
|
logger.info(`Created user with ID: ${createResult.id} and hash: ${createResult.hash}`);
|
|
|
|
// Retrieve the user
|
|
const user = await get('users', userId);
|
|
logger.info('Retrieved user:', user);
|
|
|
|
// Update the user
|
|
const updateResult = await update('users', userId, {
|
|
avatar: 'profile.jpg',
|
|
bio: 'Software developer'
|
|
});
|
|
logger.info(`Updated user with hash: ${updateResult.hash}`);
|
|
|
|
// Query users
|
|
const filteredUsers = await query('users', (user) => user.username === 'johndoe');
|
|
logger.info(`Found ${filteredUsers.length} matching users`);
|
|
|
|
// List all users
|
|
const allUsers = await list('users', { limit: 10 });
|
|
logger.info(`Retrieved ${allUsers.length} users`);
|
|
|
|
// Upload a file
|
|
const fileData = Buffer.from('This is a test file content');
|
|
const fileUpload = await uploadFile(fileData, { filename: 'test.txt' });
|
|
logger.info(`Uploaded file with CID: ${fileUpload.cid}`);
|
|
|
|
// Retrieve the file
|
|
const file = await getFile(fileUpload.cid);
|
|
logger.info('Retrieved file:', {
|
|
content: file.data.toString(),
|
|
metadata: file.metadata
|
|
});
|
|
|
|
// Delete the file
|
|
await deleteFile(fileUpload.cid);
|
|
logger.info('File deleted');
|
|
|
|
// Delete the user
|
|
await remove('users', userId);
|
|
logger.info('User deleted');
|
|
|
|
// Stop the database service
|
|
await stopDB();
|
|
logger.info('Database service stopped');
|
|
} catch (error) {
|
|
logger.error('Error in database example:', error);
|
|
}
|
|
}
|
|
|
|
databaseExample(); |