All files / blog/adapters/database blog.mapper.ts

33.33% Statements 4/12
100% Branches 0/0
40% Functions 2/5
27.27% Lines 3/11

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                  1x                             1x       1x                  
import {
  Blog,
  BlogPrincipal,
  BlogRecord,
} from '../../domain/models/blog.model';
import { BlogEntity } from './entities/main/blog.entity';
import { Injectable } from '@nestjs/common';
 
@Injectable()
class BlogDataMapper {
  fromRecord(domain: BlogRecord): BlogEntity {
    const entity = new BlogEntity();
    entity.text = domain.text;
    entity.tags = JSON.stringify(domain.tags);
    return entity;
  }
 
  fromPrincipal(domain: BlogPrincipal): BlogEntity {
    const entity = this.fromRecord(domain.record);
    entity.id = domain.id;
    return entity;
  }
 
  toRecord(data: BlogEntity): BlogRecord {
    return new BlogRecord(data.text, JSON.parse(data.tags));
  }
 
  toPrincipal(data: BlogEntity): BlogPrincipal {
    return new BlogPrincipal(data.id, this.toRecord(data));
  }
 
  toDomain(data: BlogEntity): Blog {
    return new Blog(this.toPrincipal(data), []);
  }
}
 
export { BlogDataMapper };