LCOV - code coverage report
Current view: top level - shared/valerr - domain.go Coverage Total Hit
Test: coverage.lcov Lines: 0.0 % 30 0
Test Date: 2026-04-14 06:42:22 Functions: - 0 0

            Line data    Source code
       1              : // Package valerr は、ドメイン層で発生する値検証エラーを表現するための共通インターフェースおよび型定義を提供します。
       2              : // バリデーションエラーの集約やエラーメッセージ整形などに利用します。
       3              : package valerr
       4              : 
       5              : import "resume/internal/domain/entity"
       6              : 
       7              : // FromDomain converts domain-level InvalidAddressError to a handler/presenter friendly details map.
       8              : // Same shape as your handlerutil's "details".
       9            0 : func FromDomain(inv entity.InvalidAddressError) map[string]any {
      10            0 :         if len(inv.Problems) == 0 {
      11            0 :                 return nil
      12            0 :         }
      13            0 :         out := make(map[string]any, len(inv.Problems))
      14            0 :         for _, p := range inv.Problems {
      15            0 :                 // last-wins(同一フィールドに複数ある場合は最後を採用)
      16            0 :                 out[p.Field] = map[string]any{
      17            0 :                         "tag":   p.Tag,
      18            0 :                         "param": p.Param,
      19            0 :                 }
      20            0 :         }
      21            0 :         return out
      22              : }
      23              : 
      24              : // FromDomainAll converts domain-level InvalidAddressError to a handler/presenter friendly details map.
      25              : // Same shape as your handlerutil's "details".
      26              : // “同一フィールドに複数エラーを全部出す”版
      27            0 : func FromDomainAll(inv entity.InvalidAddressError) map[string]any {
      28            0 :         if len(inv.Problems) == 0 {
      29            0 :                 return nil
      30            0 :         }
      31            0 :         out := make(map[string]any)
      32            0 :         for _, p := range inv.Problems {
      33            0 :                 d := map[string]any{"tag": p.Tag, "param": p.Param}
      34            0 :                 if cur, ok := out[p.Field]; ok {
      35            0 :                         switch vv := cur.(type) {
      36            0 :                         case []map[string]any:
      37            0 :                                 out[p.Field] = append(vv, d)
      38            0 :                         case map[string]any:
      39            0 :                                 out[p.Field] = []map[string]any{vv, d}
      40              :                         }
      41            0 :                 } else {
      42            0 :                         out[p.Field] = d
      43            0 :                 }
      44              :         }
      45            0 :         return out
      46              : }
        

Generated by: LCOV version 2.3.1-1