M api/graph/generated.go => api/graph/generated.go +1 -1
@@ 22624,7 22624,7 @@ func (ec *executionContext) unmarshalInputLinkInput(ctx context.Context, obj int
var err error
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("visibility"))
- it.Visibility, err = ec.unmarshalNInt2int(ctx, v)
+ it.Visibility, err = ec.unmarshalOInt2áš–int(ctx, v)
if err != nil {
return it, err
}
M api/graph/model/models_gen.go => api/graph/model/models_gen.go +1 -1
@@ 225,7 225,7 @@ type GetUserInput struct {
type LinkInput struct {
URL string `json:"url"`
Description *string `json:"description,omitempty"`
- Visibility int `json:"visibility"`
+ Visibility *int `json:"visibility,omitempty"`
Unread bool `json:"unread"`
Starred bool `json:"starred"`
Archive bool `json:"archive"`
M api/graph/schema.graphqls => api/graph/schema.graphqls +1 -1
@@ 358,7 358,7 @@ type QRObject {
input LinkInput {
url: String!
description: String
- visibility: Int!
+ visibility: Int
unread: Boolean!
starred: Boolean!
archive: Boolean!
M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +16 -7
@@ 175,11 175,13 @@ func (r *mutationResolver) AddLink(ctx context.Context, input *model.LinkInput)
validator := valid.New(ctx)
- validator.Expect(input.Visibility == models.OrgLinkVisibilityPublic ||
- input.Visibility == models.OrgLinkVisibilityPrivate,
- lt.Translate("Invalid Visibility value.")).
- WithField("visibility").
- WithCode(valid.ErrValidationCode)
+ if input.Visibility != nil {
+ validator.Expect(*input.Visibility == models.OrgLinkVisibilityPublic ||
+ *input.Visibility == models.OrgLinkVisibilityPrivate,
+ lt.Translate("Invalid Visibility value.")).
+ WithField("visibility").
+ WithCode(valid.ErrValidationCode)
+ }
_, err := url.ParseRequestURI(input.URL)
validator.Expect(err == nil, lt.Translate("Invalid URL.")).
WithField("url").
@@ 241,9 243,16 @@ func (r *mutationResolver) AddLink(ctx context.Context, input *model.LinkInput)
return nil, nil
}
+ var visibility int
+ if input.Visibility == nil {
+ visibility = org.Settings.DefaultPerm
+ } else {
+ visibility = *input.Visibility
+ }
+
srv := server.ForContext(ctx)
// We want to restrict private links only to paid users
- if input.Visibility == models.OrgLinkVisibilityPrivate &&
+ if visibility == models.OrgLinkVisibilityPrivate &&
links.BillingEnabled(srv.Config) && org.IsRestricted([]int{models.BillingStatusFree}) {
validator.Error(lt.Translate("Free organizations are not allowed to create private links. Please upgrade")).
WithField("visibility").
@@ 270,7 279,7 @@ func (r *mutationResolver) AddLink(ctx context.Context, input *model.LinkInput)
Title: input.Title,
OrgID: orgs[0].ID,
BaseURLID: sql.NullInt64{Valid: true, Int64: int64(BaseURL.ID)},
- Visibility: input.Visibility,
+ Visibility: visibility,
Unread: input.Unread,
Starred: input.Starred,
URL: input.URL,
M models/tag_links.go => models/tag_links.go +0 -4
@@ 75,10 75,6 @@ func CreateBatchTagLinks(ctx context.Context, linkID int, tagIDs []int) error {
PlaceholderFormat(sq.Dollar).
RunWith(tx).
ExecContext(ctx)
-
- if err != nil {
- return err
- }
return err
})
return err