Feat: show user bind providers

pull/39/head
zijiren233 2 years ago
parent 3dc5dbcc26
commit 9bbd43357e

@ -165,6 +165,8 @@ func Init(e *gin.Engine) {
needAuthUser.POST("/username", SetUsername)
needAuthUser.POST("/password", SetUserPassword)
needAuthUser.GET("/providers", UserBindProviders)
}
{

@ -7,6 +7,7 @@ import (
"github.com/synctv-org/synctv/internal/db"
dbModel "github.com/synctv-org/synctv/internal/model"
"github.com/synctv-org/synctv/internal/op"
"github.com/synctv-org/synctv/internal/provider/providers"
"github.com/synctv-org/synctv/server/middlewares"
"github.com/synctv-org/synctv/server/model"
"gorm.io/gorm"
@ -173,12 +174,30 @@ func UserBindProviders(ctx *gin.Context) {
return
}
resp := make([]model.UserBindProviderResp, len(up))
for i, v := range up {
resp[i] = model.UserBindProviderResp{
Provider: v.Provider,
ProviderUserID: v.ProviderUserID,
CreatedAt: v.CreatedAt.UnixMilli(),
m := providers.EnabledProvider()
resp := make(model.UserBindProviderResp, len(up))
for _, v := range up {
if _, ok := m[v.Provider]; ok {
resp[v.Provider] = struct {
ProviderUserID string "json:\"providerUserID\""
CreatedAt int64 "json:\"createdAt\""
}{
ProviderUserID: v.ProviderUserID,
CreatedAt: v.CreatedAt.UnixMilli(),
}
}
}
for p := range m {
if _, ok := resp[p]; !ok {
resp[p] = struct {
ProviderUserID string "json:\"providerUserID\""
CreatedAt int64 "json:\"createdAt\""
}{
ProviderUserID: "",
CreatedAt: 0,
}
}
}

@ -97,8 +97,7 @@ func (u *UserIDReq) Validate() error {
return nil
}
type UserBindProviderResp struct {
Provider provider.OAuth2Provider `json:"provider"`
ProviderUserID string `json:"providerUserID"`
CreatedAt int64 `json:"createdAt"`
type UserBindProviderResp map[provider.OAuth2Provider]struct {
ProviderUserID string `json:"providerUserID"`
CreatedAt int64 `json:"createdAt"`
}

Loading…
Cancel
Save