3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-18 23:09:59 +00:00
zeppelin/backend/src/data/AllowedGuilds.ts

57 lines
1.4 KiB
TypeScript
Raw Normal View History

import { AllowedGuild } from "./entities/AllowedGuild";
import { getRepository, Repository } from "typeorm";
import { BaseRepository } from "./BaseRepository";
2019-11-08 00:04:24 +02:00
import { ApiPermissionTypes } from "./ApiPermissionAssignments";
export class AllowedGuilds extends BaseRepository {
private allowedGuilds: Repository<AllowedGuild>;
constructor() {
super();
this.allowedGuilds = getRepository(AllowedGuild);
}
async isAllowed(guildId) {
const count = await this.allowedGuilds.count({
where: {
2019-06-23 19:18:41 +03:00
id: guildId,
},
});
return count !== 0;
}
find(guildId) {
return this.allowedGuilds.findOne(guildId);
}
2019-06-23 19:18:41 +03:00
getForApiUser(userId) {
return this.allowedGuilds
.createQueryBuilder("allowed_guilds")
.innerJoin(
2019-06-23 19:18:41 +03:00
"api_permissions",
"api_permissions",
2019-11-08 00:04:24 +02:00
"api_permissions.guild_id = allowed_guilds.id AND api_permissions.type = :type AND api_permissions.target_id = :userId",
{ type: ApiPermissionTypes.User, userId },
)
.getMany();
}
2019-06-23 19:18:41 +03:00
2019-07-12 14:25:27 +03:00
updateInfo(id, name, icon, ownerId) {
return this.allowedGuilds.update({ id }, { name, icon, owner_id: ownerId });
2019-06-23 19:18:41 +03:00
}
add(id, data: Partial<Omit<AllowedGuild, "id">> = {}) {
return this.allowedGuilds.insert({
name: "Server",
icon: null,
owner_id: "0",
...data,
id,
});
}
remove(id) {
return this.allowedGuilds.delete({ id });
}
}