All files / src/lib/services user-splash-service.ts

71.43% Statements 10/14
0% Branches 0/1
80% Functions 4/5
71.43% Lines 10/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55                  60x                 147x 147x       4x     4x 4x     1x           4x                         1x       60x  
import { Logger } from '../logger';
import { IUnleashStores } from '../types/stores';
import { IUnleashConfig } from '../types/option';
import User from '../types/user';
import {
    IUserSplash,
    IUserSplashStore,
} from '../types/stores/user-splash-store';
 
export default class UserSplashService {
    private userSplashStore: IUserSplashStore;
 
    private logger: Logger;
 
    constructor(
        { userSplashStore }: Pick<IUnleashStores, 'userSplashStore'>,
        { getLogger }: Pick<IUnleashConfig, 'getLogger'>,
    ) {
        this.userSplashStore = userSplashStore;
        this.logger = getLogger('services/user-splash-service.js');
    }
 
    async getAllUserSplashs(user: User): Promise<Object> {
        Iif (user.isAPI) {
            return [];
        }
        try {
            const splashs = (
                await this.userSplashStore.getAllUserSplashs(user.id)
            ).reduce(
                (splashObject, splash) => ({
                    ...splashObject,
                    [splash.splashId]: splash.seen,
                }),
                {},
            );
            return splashs;
        } catch (err) {
            this.logger.error(err);
 
            return {};
        }
    }
 
    async getSplash(user_id: number, splash_id: string): Promise<IUserSplash> {
        return this.userSplashStore.getSplash(user_id, splash_id);
    }
 
    async updateSplash(splash: IUserSplash): Promise<IUserSplash> {
        return this.userSplashStore.updateSplash(splash);
    }
}
 
module.exports = UserSplashService;