Skip to content
Snippets Groups Projects
homeService.js 2.02 KiB
Newer Older
import {Home_entity} from "../models/index.js";

class HomeService {
    async getEntities() {
        return await Home_entity.findAll({
            order: [
                ['entity_order', 'ASC']
            ]
        });
    }
    async createEntity(body) {
        return Home_entity.create(body);
    }
    async editEntity(body) {
        return Home_entity.upsert({...body});
    }
    async deleteEntity(body) {
        const deletedEntity = await Home_entity.findOne({
            where: {
                entity_uuid: body.entity_uuid
            }
        })
        await Home_entity.destroy({
            where: {
                entity_uuid: body.entity_uuid
            }
        });
        return deletedEntity;
    }
    async changeOrderEntity(body) {
        const allEntities = await Home_entity.findAll({
            order: [
                ['entity_order', 'ASC']
            ]
        });
        const currentEntity = allEntities.find(entity => entity.entity_uuid === body.entity_uuid);
        console.log('currentEntity: ', currentEntity);
        const nextEntity = body.direction === 'up'
            ? allEntities
                .reverse()
                .find(entity => entity.entity_order < currentEntity.entity_order)
            : allEntities
                .find(entity => entity.entity_order > currentEntity.entity_order);
        console.log('nextEntity: ', nextEntity);
        await Home_entity.update({
            entity_order: nextEntity.entity_order,
        }, {
            where: {
                entity_uuid: currentEntity.entity_uuid
            }
        });
        // await Home_entity.upsert({...currentEntity, entity_order: nextEntity.entity_order});
        await Home_entity.update({
            entity_order: currentEntity.entity_order,
        }, {
            where: {
                entity_uuid: nextEntity.entity_uuid
            }
        });
        // await Home_entity.upsert({...nextEntity, entity_order: currentEntity.entity_order});
        return body;
    }
}

export default new HomeService;