37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { createDirectusConnection } from "@/lib/directus";
|
|
import { print } from "graphql";
|
|
import getPhotos from '@/graphql/photos/getPhotos.graphql';
|
|
import md5 from "md5";
|
|
|
|
export async function getPhotoFromHash(albumUrl: string, hash: string): Promise<PhotoAlbumPhoto | null> {
|
|
const client = await createDirectusConnection();
|
|
const result = await client.query(print(getPhotos), {
|
|
albumUrl: albumUrl
|
|
});
|
|
|
|
let object: PhotoAlbumPhoto | null = null;
|
|
|
|
result["Photo_Albums"][0]["photos"].forEach((photo: any) => {
|
|
const hashObject = md5(JSON.stringify({
|
|
id: photo.id,
|
|
url: photo.photo.filename_disk,
|
|
width: photo.photo.width,
|
|
height: photo.photo.height
|
|
}));
|
|
|
|
if (hashObject.substring(hashObject.length - 10) === hash) {
|
|
object = {
|
|
id: photo.id,
|
|
text: photo.text,
|
|
photo: {
|
|
url: photo.photo.url,
|
|
width: photo.photo.width,
|
|
height: photo.photo.height
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
return object;
|
|
}
|