package mapper;
import api.v1.PositionTag;
import exceptions.PoseidonException;
import models.PositionTagCount;
import models.PositionTagModel;
import play.mvc.Http;
import java.util.ArrayList;
import java.util.List;
public class PositionTagMapper {
public List<PositionTag> mapToApi(List<PositionTagModel> positionTagModels) {
if ( positionTagModels == null) return null;
List<PositionTag> tags = new ArrayList<>();
for(PositionTagModel model : positionTagModels){
tags.add(mapToApi(model));
}
return tags;
}
public PositionTag mapToApi(PositionTagModel model) {
PositionTag tag = new PositionTag(model.id,model.name,model.positionModels.size());
return tag;
}
public PositionTagModel mapToModel(PositionTag apiTag) {
PositionTagModel model = new PositionTagModel();
if (apiTag == null) {
throw new PoseidonException(Http.Status.BAD_REQUEST, "Ingen tag angitt");
}
if (apiTag.id != null) {
model.id = apiTag.id;
}
model.name = apiTag.name;
return model;
}
public List<PositionTag> mapToApiWithCount(List<PositionTagCount> tagsWithCount) {
if ( tagsWithCount == null) return null;
List<PositionTag> tags = new ArrayList<>();
for(PositionTagCount model : tagsWithCount){
tags.add(mapToApi(model));
}
return tags;
}
private PositionTag mapToApi(PositionTagCount model) {
PositionTag tag = new PositionTag(model.tag.id,model.tag.name,model.count);
return tag;
}
}