add item (missing upload)
This commit is contained in:
@@ -6,6 +6,7 @@ package resolvers
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.aiterp.net/stufflog/server/graph/graphcore"
|
||||
@@ -123,6 +124,41 @@ func (r *mutationResolver) EditActivity(ctx context.Context, input graphcore.Act
|
||||
return activity, nil
|
||||
}
|
||||
|
||||
func (r *mutationResolver) CreateItem(ctx context.Context, input *graphcore.ItemCreateInput) (*models.Item, error) {
|
||||
user := r.Auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
return nil, xlerrors.PermissionDenied
|
||||
}
|
||||
|
||||
if input.Name == "" {
|
||||
return nil, errors.New("name cannot be blank")
|
||||
}
|
||||
if input.Description == "" {
|
||||
return nil, errors.New("name cannot be blank")
|
||||
}
|
||||
if len(input.Tags) == 0 {
|
||||
return nil, errors.New("at least one tag is required")
|
||||
}
|
||||
|
||||
if input.Image != nil {
|
||||
panic("todo: implement image upload")
|
||||
}
|
||||
|
||||
item := models.Item{
|
||||
Name: input.Name,
|
||||
Description: input.Description,
|
||||
Tags: input.Tags,
|
||||
QuantityUnit: input.QuantityUnit,
|
||||
ImageURL: nil,
|
||||
}
|
||||
|
||||
return r.Database.Items().Insert(ctx, item)
|
||||
}
|
||||
|
||||
func (r *mutationResolver) EditItem(ctx context.Context, input *graphcore.ItemEditInput) (*models.Item, error) {
|
||||
panic(fmt.Errorf("not implemented"))
|
||||
}
|
||||
|
||||
func (r *mutationResolver) CreateIssue(ctx context.Context, input graphcore.IssueCreateInput) (*models.Issue, error) {
|
||||
user := r.Auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
|
||||
@@ -6,7 +6,6 @@ package resolvers
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"git.aiterp.net/stufflog/server/graph/graphcore"
|
||||
"git.aiterp.net/stufflog/server/internal/xlerrors"
|
||||
"git.aiterp.net/stufflog/server/models"
|
||||
@@ -58,6 +57,37 @@ func (r *queryResolver) Issues(ctx context.Context, filter *models.IssueFilter)
|
||||
return issues, nil
|
||||
}
|
||||
|
||||
func (r *queryResolver) Item(ctx context.Context, id string) (*models.Item, error) {
|
||||
user := r.Auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
return nil, xlerrors.PermissionDenied
|
||||
}
|
||||
|
||||
return r.Database.Items().Find(ctx, id)
|
||||
}
|
||||
|
||||
func (r *queryResolver) Items(ctx context.Context, filter *models.ItemFilter) ([]*models.Item, error) {
|
||||
user := r.Auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
return nil, xlerrors.PermissionDenied
|
||||
}
|
||||
|
||||
if filter == nil {
|
||||
filter = &models.ItemFilter{}
|
||||
}
|
||||
|
||||
return r.Database.Items().List(ctx, *filter)
|
||||
}
|
||||
|
||||
func (r *queryResolver) ItemTags(ctx context.Context) ([]string, error) {
|
||||
user := r.Auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
return nil, xlerrors.PermissionDenied
|
||||
}
|
||||
|
||||
return r.Database.Items().GetTags(ctx)
|
||||
}
|
||||
|
||||
func (r *queryResolver) Project(ctx context.Context, id string) (*models.Project, error) {
|
||||
user := r.Auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
|
||||
Reference in New Issue
Block a user