fix: coords translation - validate whether server exists
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
This commit is contained in:
parent
7ed3bbb0d4
commit
8eb7032689
|
@ -68,6 +68,20 @@ func (t *TWHelpHTTP) listServers(ctx context.Context, version string, params twh
|
|||
}
|
||||
|
||||
func (t *TWHelpHTTP) GetOpenServer(ctx context.Context, versionCode, serverKey string) (domain.TWServer, error) {
|
||||
server, err := t.GetServer(ctx, versionCode, serverKey)
|
||||
if err != nil {
|
||||
return domain.TWServer{}, err
|
||||
}
|
||||
if !server.Open {
|
||||
return domain.TWServer{}, domain.TWServerNotFoundError{
|
||||
VersionCode: versionCode,
|
||||
Key: serverKey,
|
||||
}
|
||||
}
|
||||
return server, nil
|
||||
}
|
||||
|
||||
func (t *TWHelpHTTP) GetServer(ctx context.Context, versionCode, serverKey string) (domain.TWServer, error) {
|
||||
server, err := t.client.GetServer(ctx, versionCode, serverKey)
|
||||
if err != nil {
|
||||
var apiErr twhelp.APIError
|
||||
|
@ -79,12 +93,6 @@ func (t *TWHelpHTTP) GetOpenServer(ctx context.Context, versionCode, serverKey s
|
|||
Key: serverKey,
|
||||
}
|
||||
}
|
||||
if !server.Open {
|
||||
return domain.TWServer{}, domain.TWServerNotFoundError{
|
||||
VersionCode: versionCode,
|
||||
Key: serverKey,
|
||||
}
|
||||
}
|
||||
return t.convertServerToDomain(server), nil
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ type TWHelpService interface {
|
|||
ListOpenServers(ctx context.Context, version string, offset, limit int32) ([]domain.TWServer, error)
|
||||
ListClosedServers(ctx context.Context, version string, offset, limit int32) ([]domain.TWServer, error)
|
||||
GetOpenServer(ctx context.Context, versionCode, serverKey string) (domain.TWServer, error)
|
||||
GetServer(ctx context.Context, versionCode, serverKey string) (domain.TWServer, error)
|
||||
GetTribeByID(ctx context.Context, versionCode, serverKey string, id int64) (domain.Tribe, error)
|
||||
GetExistingTribeByTag(ctx context.Context, versionCode, serverKey, tribeTag string) (domain.Tribe, error)
|
||||
ListTribesByTag(ctx context.Context, versionCode, serverKey string, tribeTags []string, offset, limit int32) ([]domain.Tribe, error)
|
||||
|
|
|
@ -34,6 +34,10 @@ func (v *Village) TranslateCoords(
|
|||
return domain.TranslateVillageCoordsResult{}, domain.LessEqualThanError{Field: "page", Threshold: int(params.MaxPage())}
|
||||
}
|
||||
|
||||
if _, err := v.twhelpSvc.GetServer(ctx, params.VersionCode(), params.ServerKey()); err != nil {
|
||||
return domain.TranslateVillageCoordsResult{}, err
|
||||
}
|
||||
|
||||
if err := v.repo.SaveTranslateCoordsParams(ctx, params); err != nil {
|
||||
return domain.TranslateVillageCoordsResult{}, err
|
||||
}
|
||||
|
|
|
@ -19,6 +19,13 @@ func TestVillage_TranslateCoords(t *testing.T) {
|
|||
t.Run("OK", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
server := domain.TWServer{
|
||||
Key: "pl181",
|
||||
URL: "https://pl181.plemiona.pl",
|
||||
Open: true,
|
||||
}
|
||||
versionCode := server.Key[:2]
|
||||
|
||||
villages := []domain.Village{
|
||||
{
|
||||
X: 123,
|
||||
|
@ -49,7 +56,7 @@ func TestVillage_TranslateCoords(t *testing.T) {
|
|||
builderCoordsStr.WriteString(coords + " ")
|
||||
}
|
||||
|
||||
params, err := domain.NewTranslateVillageCoordsParams("pl", "pl181", builderCoordsStr.String(), 2)
|
||||
params, err := domain.NewTranslateVillageCoordsParams(versionCode, server.Key, builderCoordsStr.String(), 2)
|
||||
require.NoError(t, err)
|
||||
|
||||
tests := []struct {
|
||||
|
@ -121,6 +128,15 @@ func TestVillage_TranslateCoords(t *testing.T) {
|
|||
|
||||
return res, nil
|
||||
})
|
||||
twhelpSvc.GetServerCalls(func(ctx context.Context, versionCode string, serverKey string) (domain.TWServer, error) {
|
||||
if versionCode != params.VersionCode() || serverKey != params.ServerKey() {
|
||||
return domain.TWServer{}, domain.TWServerNotFoundError{
|
||||
VersionCode: params.VersionCode(),
|
||||
Key: params.ServerKey(),
|
||||
}
|
||||
}
|
||||
return server, nil
|
||||
})
|
||||
|
||||
res, err := service.NewVillage(&mock.FakeVillageRepository{}, twhelpSvc).
|
||||
TranslateCoords(context.Background(), params, tt.page)
|
||||
|
|
Loading…
Reference in New Issue