-
Notifications
You must be signed in to change notification settings - Fork 0
/
translator_client.go
86 lines (69 loc) · 2.64 KB
/
translator_client.go
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//go:generate mockery --output mock --name TranslatorClient
package service
import (
"context"
"errors"
appD "github.com/kujilabo/cocotola-api/src/app/domain"
libD "github.com/kujilabo/cocotola-api/src/lib/domain"
"github.com/kujilabo/cocotola-api/src/plugin/common/domain"
)
var ErrTranslationNotFound = errors.New("translation not found")
var ErrTranslationAlreadyExists = errors.New("custsomtranslation already exists")
type TranslatorClient interface {
DictionaryLookup(ctx context.Context, fromLang, toLang appD.Lang2, text string) ([]domain.Translation, error)
DictionaryLookupWithPos(ctx context.Context, fromLang, toLang appD.Lang2, text string, pos domain.WordPos) (domain.Translation, error)
FindTranslationsByFirstLetter(ctx context.Context, lang2 appD.Lang2, firstLetter string) ([]domain.Translation, error)
FindTranslationByTextAndPos(ctx context.Context, lang2 appD.Lang2, text string, pos domain.WordPos) (domain.Translation, error)
FindTranslationsByText(ctx context.Context, lang2 appD.Lang2, text string) ([]domain.Translation, error)
AddTranslation(ctx context.Context, param TranslationAddParameter) error
UpdateTranslation(ctx context.Context, lang2 appD.Lang2, text string, pos domain.WordPos, param TranslationUpdateParameter) error
RemoveTranslation(ctx context.Context, lang2 appD.Lang2, text string, pos domain.WordPos) error
}
type TranslationAddParameter interface {
GetText() string
GetPos() domain.WordPos
GetLang2() appD.Lang2
GetTranslated() string
}
type translationAddParameter struct {
Text string `validate:"required"`
Pos domain.WordPos
Lang2 appD.Lang2
Translated string
}
func NewTransalationAddParameter(text string, pos domain.WordPos, lang2 appD.Lang2, translated string) (TranslationAddParameter, error) {
m := &translationAddParameter{
Text: text,
Pos: pos,
Lang2: lang2,
Translated: translated,
}
return m, libD.Validator.Struct(m)
}
func (p *translationAddParameter) GetText() string {
return p.Text
}
func (p *translationAddParameter) GetPos() domain.WordPos {
return p.Pos
}
func (p *translationAddParameter) GetLang2() appD.Lang2 {
return p.Lang2
}
func (p *translationAddParameter) GetTranslated() string {
return p.Translated
}
type TranslationUpdateParameter interface {
GetTranslated() string
}
type translationUpdateParameter struct {
Translated string `validate:"required"`
}
func NewTransaltionUpdateParameter(translated string) (TranslationUpdateParameter, error) {
m := &translationUpdateParameter{
Translated: translated,
}
return m, libD.Validator.Struct(m)
}
func (p *translationUpdateParameter) GetTranslated() string {
return p.Translated
}