|
@@ -12,11 +12,14 @@ export interface TagDocument {
|
|
|
name: string;
|
|
name: string;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+export type IdToNameMap = {[key:Types.ObjectId] : string }
|
|
|
|
|
+
|
|
|
export interface TagModel extends Model<TagDocument>{
|
|
export interface TagModel extends Model<TagDocument>{
|
|
|
- getIdToNameMap(tagIds: Types.ObjectId[])
|
|
|
|
|
|
|
+ getIdToNameMap(tagIds: Types.ObjectId[]): IdToNameMap
|
|
|
findOrCreateMany(tagNames: string[])
|
|
findOrCreateMany(tagNames: string[])
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
const tagSchema = new Schema<TagDocument, TagModel>({
|
|
const tagSchema = new Schema<TagDocument, TagModel>({
|
|
|
name: {
|
|
name: {
|
|
|
type: String,
|
|
type: String,
|
|
@@ -28,7 +31,7 @@ tagSchema.plugin(mongoosePaginate);
|
|
|
tagSchema.plugin(uniqueValidator);
|
|
tagSchema.plugin(uniqueValidator);
|
|
|
|
|
|
|
|
|
|
|
|
|
-tagSchema.statics.getIdToNameMap = async function(tagIds: Types.ObjectId[]) {
|
|
|
|
|
|
|
+tagSchema.statics.getIdToNameMap = async function(tagIds: Types.ObjectId[]): Promise<IdToNameMap> {
|
|
|
const tags = await this.find({ _id: { $in: tagIds } });
|
|
const tags = await this.find({ _id: { $in: tagIds } });
|
|
|
|
|
|
|
|
const idToNameMap = {};
|
|
const idToNameMap = {};
|