GraphQL (part 2): Model changes and resolvers (#19486)
This PR adds the necessary resolvers to support the graphQL front-end. Some additional methods need to be added to the model structs to support this. Comments have been made to clarify their purpose. There is a slight duplication of code in the api layer. But eventually that's going to go away when we move away from the REST API entirely. The schema is in api4/schema.graphqls and gets compiled into the binary as an asset. The GraphiQL editor url is at GET /api/v5/graphql. Everything is behind the feature flag MM_FEATUREFLAGS_GRAPHQL. ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
88968f9e17
Коммит
3f52bd197a
@@ -409,6 +409,23 @@ func (u *User) PreSave() {
|
||||
}
|
||||
}
|
||||
|
||||
// The following are some GraphQL methods necessary to return the
|
||||
// data in float64 type. The spec doesn't support 64 bit integers,
|
||||
// so we have to pass the data in float64. The _ at the end is
|
||||
// a hack to keep the attribute name same in GraphQL schema.
|
||||
|
||||
func (u *User) CreateAt_() float64 {
|
||||
return float64(u.CreateAt)
|
||||
}
|
||||
|
||||
func (u *User) DeleteAt_() float64 {
|
||||
return float64(u.DeleteAt)
|
||||
}
|
||||
|
||||
func (u *User) LastPictureUpdateAt() float64 {
|
||||
return float64(u.LastPictureUpdate)
|
||||
}
|
||||
|
||||
// PreUpdate should be run before updating the user in the db.
|
||||
func (u *User) PreUpdate() {
|
||||
u.Username = SanitizeUnicode(u.Username)
|
||||
@@ -630,6 +647,15 @@ func (u *User) GetCustomStatus() *CustomStatus {
|
||||
return o
|
||||
}
|
||||
|
||||
func (u *User) CustomStatus() *CustomStatus {
|
||||
var o *CustomStatus
|
||||
|
||||
data := u.Props[UserPropsKeyCustomStatus]
|
||||
_ = json.Unmarshal([]byte(data), &o)
|
||||
|
||||
return o
|
||||
}
|
||||
|
||||
func (u *User) ClearCustomStatus() {
|
||||
u.MakeNonNil()
|
||||
u.Props[UserPropsKeyCustomStatus] = ""
|
||||
|
||||
Ссылка в новой задаче
Block a user