Skip to content
Snippets Groups Projects
Select Git revision
  • a71d1779582b5f0cad1e90a4986296318f5356d5
  • main default protected
2 results

myRepository.js

  • myRepository.js 2.22 KiB
    import pool from '../db.js';
    
    const myRepository = {
      async checkUserExists(userId) {
        const query = `
          SELECT 1
          FROM users
          WHERE id = $1
        `;
        const values = [userId];
    
        const { rows } = await pool.query(query, values);
        return rows.length > 0;
      },
    
      async getCombinationById(combinationId) {
        const query = `
          SELECT id, name, owner_id AS "userId"
          FROM combinations
          WHERE id = $1
        `;
        const values = [combinationId];
    
        const { rows } = await pool.query(query, values);
        return rows.length > 0 ? rows[0] : null;
      },
    
      async getCombinationsByUserId(userId) {
        const query = `
          SELECT id, name 
          FROM combinations 
          WHERE owner_id = $1
        `;
        const values = [userId];
    
        const { rows } = await pool.query(query, values);
        return rows;
      },
    
      async getPartIdsByCombinationId(combinationId) {
        const query = `
          SELECT part_id 
          FROM relations 
          WHERE combination_id = $1
        `;
        const values = [combinationId];
    
        const { rows } = await pool.query(query, values);
        return rows.map((row) => row.part_id);
      },
    
      async saveTransaction(userId, transactionId) {
        const query = `
          INSERT INTO transactions (user_id, id, created_at, updated_at)
          VALUES ($1, $2, NOW(), NOW())
        `;
        const values = [userId, transactionId];
        await pool.query(query, values);
      },
    
      async getCombinationIdByTransactionId(transactionId) {
        const query = `
          SELECT combination_id
          FROM transactions
          WHERE id = $1
        `;
        const values = [transactionId];
        const { rows } = await pool.query(query, values);
    
        return rows.length > 0 ? rows[0].combination_id : null;
      },
    
      async updateCombinationName(combinationId, newName) {
        const query = `
          UPDATE combinations
          SET name = $1
          WHERE id = $2
        `;
        const values = [newName, combinationId];
    
        const { rowCount } = await pool.query(query, values);
        return rowCount > 0;
      },
    
     async deleteCombinationById(combinationId) {
      const query = `
        UPDATE combinations
        SET owner_id = NULL
        WHERE id = $1
      `;
      const values = [combinationId];
    
      const { rowCount } = await pool.query(query, values);
      return rowCount > 0;
    }
    };
    
    export default myRepository;