Fetch images

This commit is contained in:
Amit Jakubowicz 2019-11-25 11:17:47 +01:00
parent eba5f2d925
commit 449dfee86c
4 changed files with 24 additions and 8 deletions

1
@types/graphql.d.ts vendored
View File

@ -130,6 +130,7 @@ declare namespace GQL {
interface IEventImages {
__typename: 'EventImages';
event: ICalendarEvent | null;
thumb: IEventImage | null;
cover: IEventImage | null;
poster: IEventImage | null;

View File

@ -85,7 +85,7 @@ export class Event extends BaseEntity {
@OneToMany(type => EventImage, image => image.event, {
onDelete: 'CASCADE'
})
images: EventImage[]
images: Promise<EventImage[]>
@Column(type => EventLocation)
location: EventLocation

View File

@ -8,7 +8,7 @@ import { getTags } from "./EventsService"
import { equals } from "ramda"
import { User } from "../Auth/User.entity"
import { hasAnyRole } from "../Auth/authUtils"
import { EventTag } from "../Calendar/EventTag.entity"
import { ImageType } from "../Image/EventImage.entity";
const resolvers: ResolverMap = {
Query: {
@ -53,9 +53,17 @@ const resolvers: ResolverMap = {
},
tags: async (event: Event) => {
return event.tags
}
},
images: async (event: Event) => {
const allImages = await event.images
return {
thumb: allImages.filter(image => image.type === ImageType.Thumbnail)[0],
cover: allImages.filter(image => image.type === ImageType.Cover)[0],
poster: allImages.filter(image => image.type === ImageType.Poster)[0],
gallery: allImages.filter(image => image.type === ImageType.Gallery),
}
},
},
EventOccurrence: {
start: (eOcc: EventOccurrence) => {
return eOcc.start
@ -105,7 +113,7 @@ const resolvers: ResolverMap = {
}
if (input.tagNames) {
const tags = await getTags(input.tagNames)
console.log('will set tags', tags)
console.log("will set tags", tags)
event.tags = Promise.resolve(tags)
}
event.location = input.location
@ -124,7 +132,10 @@ const resolvers: ResolverMap = {
throw Error("not authenticated")
}
const event = await Event.findOne(id)
const isSuperUser = hasAnyRole(await context.user.roles, ['admin','embassador'])
const isSuperUser = hasAnyRole(await context.user.roles, [
"admin",
"embassador",
])
const isOwner = (await event.owner).id !== context.user.id
if (!(isSuperUser || isOwner)) {
@ -162,7 +173,7 @@ const resolvers: ResolverMap = {
}
if (input.tagNames) {
const tagsToSet = await getTags(input.tagNames)
console.log('tagsToSet, ', tagsToSet)
console.log("tagsToSet, ", tagsToSet)
event.tags = Promise.resolve(tagsToSet)
}
if (input.location) {
@ -173,7 +184,10 @@ const resolvers: ResolverMap = {
deleteEvent: async (_, id: string, context: Context): Promise<User> => {
const event = await Event.findOne(id)
const isSuperUser = hasAnyRole(await context.user.roles, ['admin','embassador'])
const isSuperUser = hasAnyRole(await context.user.roles, [
"admin",
"embassador",
])
const isOwner = (await event.owner).id !== context.user.id
if (!(isSuperUser || isOwner)) {

View File

@ -48,6 +48,7 @@ type EventImage {
}
type EventImages {
event: CalendarEvent
thumb: EventImage
cover: EventImage
poster: EventImage