- request also hash values of the files via pai
This commit is contained in:
parent
df6f05a032
commit
466fdfbd14
|
@ -56,12 +56,20 @@ export class DatasetController {
|
||||||
through: { where: { role: "contributor" } },
|
through: { where: { role: "contributor" } },
|
||||||
as: "contributors",
|
as: "contributors",
|
||||||
},
|
},
|
||||||
|
|
||||||
"subjects",
|
"subjects",
|
||||||
"coverage",
|
"coverage",
|
||||||
"licenses",
|
"licenses",
|
||||||
"references",
|
"references",
|
||||||
"project",
|
"project",
|
||||||
"files",
|
// "files",
|
||||||
|
{
|
||||||
|
model: dbContext.File,
|
||||||
|
as: "files",
|
||||||
|
include: [
|
||||||
|
"hashvalues"
|
||||||
|
]
|
||||||
|
},
|
||||||
"identifier",
|
"identifier",
|
||||||
],
|
],
|
||||||
order: [
|
order: [
|
||||||
|
|
|
@ -54,6 +54,7 @@ import sequelizeConnection from "../config/db.config";
|
||||||
import DocumentXmlCache from "./DocumentXmlCache";
|
import DocumentXmlCache from "./DocumentXmlCache";
|
||||||
import Collection from "./Collection";
|
import Collection from "./Collection";
|
||||||
import Reference from "./Reference";
|
import Reference from "./Reference";
|
||||||
|
import File from "./File";
|
||||||
|
|
||||||
class Dataset extends Model<InferAttributes<Dataset>, InferCreationAttributes<Dataset>> {
|
class Dataset extends Model<InferAttributes<Dataset>, InferCreationAttributes<Dataset>> {
|
||||||
// id can be undefined during creation when using `autoIncrement`
|
// id can be undefined during creation when using `autoIncrement`
|
||||||
|
@ -80,6 +81,7 @@ class Dataset extends Model<InferAttributes<Dataset>, InferCreationAttributes<Da
|
||||||
|
|
||||||
declare collections?: NonAttribute<Collection[]>;
|
declare collections?: NonAttribute<Collection[]>;
|
||||||
declare references?: NonAttribute<Reference[]>;
|
declare references?: NonAttribute<Reference[]>;
|
||||||
|
declare files?: NonAttribute<File[]>;
|
||||||
// declare static associations: {
|
// declare static associations: {
|
||||||
|
|
||||||
// };
|
// };
|
||||||
|
@ -94,6 +96,7 @@ class Dataset extends Model<InferAttributes<Dataset>, InferCreationAttributes<Da
|
||||||
xmlCache: Association<Dataset, DocumentXmlCache>;
|
xmlCache: Association<Dataset, DocumentXmlCache>;
|
||||||
collections: Association<Dataset, Collection>;
|
collections: Association<Dataset, Collection>;
|
||||||
references: Association<Dataset, Reference>;
|
references: Association<Dataset, Reference>;
|
||||||
|
files: Association<Dataset, File>;
|
||||||
};
|
};
|
||||||
|
|
||||||
public static async earliestPublicationDate(): Promise<Dataset | null> {
|
public static async earliestPublicationDate(): Promise<Dataset | null> {
|
||||||
|
|
46
src/models/HashValue.ts
Normal file
46
src/models/HashValue.ts
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
import { Model, DataTypes, InferAttributes, InferCreationAttributes, CreationOptional } from "sequelize";
|
||||||
|
import sequelizeConnection from "../config/db.config";
|
||||||
|
|
||||||
|
class HashValue extends Model<InferAttributes<HashValue>, InferCreationAttributes<HashValue>> {
|
||||||
|
// id can be undefined during creation when using `autoIncrement`
|
||||||
|
declare file_id: number;
|
||||||
|
|
||||||
|
declare type: string;
|
||||||
|
declare value: string;
|
||||||
|
|
||||||
|
// // createdAt can be undefined during creation
|
||||||
|
// declare created_at: CreationOptional<Date>;
|
||||||
|
// // updatedAt can be undefined during creation
|
||||||
|
// declare updated_at: CreationOptional<Date>;
|
||||||
|
}
|
||||||
|
|
||||||
|
HashValue.init(
|
||||||
|
{
|
||||||
|
file_id: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
primaryKey: true,
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: DataTypes.STRING(50),
|
||||||
|
allowNull: false,
|
||||||
|
primaryKey: true,
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: DataTypes.STRING(255),
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// created_at: DataTypes.DATE,
|
||||||
|
// updated_at: DataTypes.DATE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// createdAt: "created_at",
|
||||||
|
// updatedAt: "updated_at",
|
||||||
|
timestamps: false,
|
||||||
|
tableName: "file_hashvalues",
|
||||||
|
sequelize: sequelizeConnection,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
export default HashValue;
|
|
@ -14,6 +14,7 @@ import Reference from "./Reference";
|
||||||
import Project from "./Project";
|
import Project from "./Project";
|
||||||
// import File from "./file.model.js";
|
// import File from "./file.model.js";
|
||||||
import File from "./File";
|
import File from "./File";
|
||||||
|
import HashValue from "./HashValue";
|
||||||
import Identifier from "./Identifier";
|
import Identifier from "./Identifier";
|
||||||
import DocumentXmlCache from "./DocumentXmlCache";
|
import DocumentXmlCache from "./DocumentXmlCache";
|
||||||
import CollectionRole from "./CollectionRole";
|
import CollectionRole from "./CollectionRole";
|
||||||
|
@ -35,6 +36,7 @@ export {
|
||||||
Identifier,
|
Identifier,
|
||||||
DocumentXmlCache,
|
DocumentXmlCache,
|
||||||
File,
|
File,
|
||||||
|
HashValue,
|
||||||
Collection,
|
Collection,
|
||||||
CollectionRole,
|
CollectionRole,
|
||||||
};
|
};
|
||||||
|
@ -230,6 +232,15 @@ export function initModels() {
|
||||||
as: "dataset",
|
as: "dataset",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
File.hasMany(HashValue, {
|
||||||
|
as: "hashvalues",
|
||||||
|
foreignKey: "file_id",
|
||||||
|
});
|
||||||
|
HashValue.belongsTo(File, {
|
||||||
|
foreignKey: "file_id",
|
||||||
|
as: "file",
|
||||||
|
});
|
||||||
|
|
||||||
// collection an collectionRole relations
|
// collection an collectionRole relations
|
||||||
CollectionRole.hasMany(Collection, {
|
CollectionRole.hasMany(Collection, {
|
||||||
as: "collections",
|
as: "collections",
|
||||||
|
@ -268,5 +279,6 @@ export function initModels() {
|
||||||
Subject: Subject,
|
Subject: Subject,
|
||||||
License: License,
|
License: License,
|
||||||
DocumentPersons: DocumentPersons,
|
DocumentPersons: DocumentPersons,
|
||||||
|
File: File
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user