"""
 Parser for enum types 
"""
from fastapi import HTTPException
from src.data.model.schemas import Shop, PictureTypes
from functools import partialmethod, partial


def __parse_enum(value, enum_type):
    try:
        parsed = enum_type(value)
    except ValueError as err:
        raise HTTPException(status_code=400, detail=f"Provided value is not correct: {err}")
    return parsed


parse_shop = partial(__parse_enum, enum_type=Shop)

parse_picture_type = partial(__parse_enum, enum_type=PictureTypes)
