Skip to content
This repository has been archived by the owner on Oct 31, 2023. It is now read-only.

Commit

Permalink
Backend fixes for queries and showing entity info per mediaItem
Browse files Browse the repository at this point in the history
  • Loading branch information
prabhuomkar committed Oct 18, 2021
1 parent d9e69f4 commit aa7f486
Show file tree
Hide file tree
Showing 6 changed files with 102 additions and 14 deletions.
72 changes: 64 additions & 8 deletions api/internal/graph/generated/generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions api/internal/graph/resolvers/schema.resolvers.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,26 @@ func (r *entityResolver) MediaItems(ctx context.Context, obj *models.Entity, pag
}, nil
}

func (r *mediaItemResolver) Entities(ctx context.Context, obj *models.MediaItem) ([]*models.Entity, error) {
entityIDs := make([]primitive.ObjectID, len(obj.Entities))
for idx, strID := range obj.Entities {
oid, _ := primitive.ObjectIDFromHex(strID)
entityIDs[idx] = oid
}

cur, err := r.DB.Collection(models.ColEntity).Find(ctx, bson.M{"_id": bson.M{"$in": entityIDs}})
if err != nil {
return nil, err
}

var result []*models.Entity
if err = cur.All(ctx, &result); err != nil {
return nil, err
}

return result, nil
}

func (r *mutationResolver) Upload(ctx context.Context, file graphql.Upload) (bool, error) {
result, err := r.CDN.Upload(file.File, file.Filename, file.Size, "", "")
if err != nil {
Expand Down Expand Up @@ -302,12 +322,16 @@ func (r *queryResolver) Entity(ctx context.Context, id string) (*models.Entity,
// Entity returns generated.EntityResolver implementation.
func (r *Resolver) Entity() generated.EntityResolver { return &entityResolver{r} }

// MediaItem returns generated.MediaItemResolver implementation.
func (r *Resolver) MediaItem() generated.MediaItemResolver { return &mediaItemResolver{r} }

// Mutation returns generated.MutationResolver implementation.
func (r *Resolver) Mutation() generated.MutationResolver { return &mutationResolver{r} }

// Query returns generated.QueryResolver implementation.
func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} }

type entityResolver struct{ *Resolver }
type mediaItemResolver struct{ *Resolver }
type mutationResolver struct{ *Resolver }
type queryResolver struct{ *Resolver }
13 changes: 7 additions & 6 deletions api/internal/models/entity.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ package models
const ColEntity = "entities"

type Entity struct {
ID string `json:"id" bson:"_id"`
Name string `json:"name"`
ImageURL string `json:"imageUrl"`
EntityType string `json:"entityType"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
ID string `json:"id" bson:"_id"`
Name string `json:"name"`
ImageURL string `json:"imageUrl"`
EntityType string `json:"entityType"`
MediaItems []string `json:"mediaItems"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
1 change: 1 addition & 0 deletions api/internal/models/mediaitem.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ type (
FileName string `json:"fileName"`
FileSize int64 `json:"fileSize"`
MediaMetadata *MediaMetaData `json:"mediaMetadata"`
Entities []string `json:"entities"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
Expand Down
1 change: 1 addition & 0 deletions api/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ type MediaItem {
fileName: String!
fileSize: Int!
mediaMetadata: MediaMetaData
entities: [Entity!]
createdAt: Time!
updatedAt: Time!
}
Expand Down
5 changes: 5 additions & 0 deletions worker/pipeline/places.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import json
import urllib.request
import exiftool
from bson.objectid import ObjectId
from pymongo import ReturnDocument
from .component import Component

Expand All @@ -23,6 +24,10 @@ def upsert_entity(self, data):
upsert=True,
return_document=ReturnDocument.AFTER
)
self.db['entities'].update_one(
{'_id': result['_id']},
{'$addToSet': {'mediaItems': ObjectId(self.oid)}},
)
print(f'[place]: {result}')
return result['_id']

Expand Down

0 comments on commit aa7f486

Please sign in to comment.