2020-08-19 00:19:12 +03:00
|
|
|
import { getRepository, Repository } from "typeorm/index";
|
2021-06-06 23:51:32 +02:00
|
|
|
import { BaseGuildRepository } from "./BaseGuildRepository";
|
2020-08-19 00:19:12 +03:00
|
|
|
import { connection } from "./db";
|
2021-06-06 23:51:32 +02:00
|
|
|
import { MemberTimezone } from "./entities/MemberTimezone";
|
2020-08-19 00:19:12 +03:00
|
|
|
|
|
|
|
export class GuildMemberTimezones extends BaseGuildRepository {
|
|
|
|
protected memberTimezones: Repository<MemberTimezone>;
|
|
|
|
|
|
|
|
constructor(guildId: string) {
|
|
|
|
super(guildId);
|
|
|
|
this.memberTimezones = getRepository(MemberTimezone);
|
|
|
|
}
|
|
|
|
|
|
|
|
get(memberId: string) {
|
|
|
|
return this.memberTimezones.findOne({
|
|
|
|
guild_id: this.guildId,
|
|
|
|
member_id: memberId,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async set(memberId, timezone: string) {
|
|
|
|
await connection.transaction(async entityManager => {
|
|
|
|
const repo = entityManager.getRepository(MemberTimezone);
|
|
|
|
const existingRow = await repo.findOne({
|
|
|
|
guild_id: this.guildId,
|
|
|
|
member_id: memberId,
|
|
|
|
});
|
|
|
|
|
|
|
|
if (existingRow) {
|
|
|
|
await repo.update(
|
|
|
|
{
|
|
|
|
guild_id: this.guildId,
|
|
|
|
member_id: memberId,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
timezone,
|
|
|
|
},
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
await repo.insert({
|
|
|
|
guild_id: this.guildId,
|
|
|
|
member_id: memberId,
|
|
|
|
timezone,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2020-08-19 00:47:31 +03:00
|
|
|
|
|
|
|
reset(memberId: string) {
|
|
|
|
return this.memberTimezones.delete({
|
|
|
|
guild_id: this.guildId,
|
|
|
|
member_id: memberId,
|
|
|
|
});
|
|
|
|
}
|
2020-08-19 00:19:12 +03:00
|
|
|
}
|