moira

Форк
0
/
user.go 
49 строк · 1.3 Кб
1
package controller
2

3
import (
4
	"go.avito.ru/DO/moira"
5
	"go.avito.ru/DO/moira/api"
6
	"go.avito.ru/DO/moira/api/dto"
7
)
8

9
// GetUserSettings gets user contacts and subscriptions
10
func GetUserSettings(database moira.Database, userLogin string, superUsers map[string]bool) (*dto.UserSettings, *api.ErrorResponse) {
11
	userSettings := &dto.UserSettings{
12
		User: dto.User{
13
			Login:       userLogin,
14
			IsSuperUser: superUsers[userLogin],
15
		},
16
		Contacts:      make([]moira.ContactData, 0),
17
		Subscriptions: make([]moira.SubscriptionData, 0),
18
	}
19

20
	subscriptionIDs, err := database.GetUserSubscriptionIDs(userLogin)
21
	if err != nil {
22
		return nil, api.ErrorInternalServer(err)
23
	}
24

25
	subscriptions, err := database.GetSubscriptions(subscriptionIDs)
26
	if err != nil {
27
		return nil, api.ErrorInternalServer(err)
28
	}
29
	for _, subscription := range subscriptions {
30
		if subscription != nil {
31
			userSettings.Subscriptions = append(userSettings.Subscriptions, *subscription)
32
		}
33
	}
34
	contactIDs, err := database.GetUserContactIDs(userLogin)
35
	if err != nil {
36
		return nil, api.ErrorInternalServer(err)
37
	}
38

39
	contacts, err := database.GetContacts(contactIDs)
40
	if err != nil {
41
		return nil, api.ErrorInternalServer(err)
42
	}
43
	for _, contact := range contacts {
44
		if contact != nil {
45
			userSettings.Contacts = append(userSettings.Contacts, *contact)
46
		}
47
	}
48
	return userSettings, nil
49
}
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.