feat: track LastLogin to provide it for friends & clan members
This commit is contained in:
parent
42c63ecbe8
commit
723bfff025
@ -1,4 +1,4 @@
|
||||
import { toOid } from "@/src/helpers/inventoryHelpers";
|
||||
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
|
||||
import { getJSONfromString } from "@/src/helpers/stringHelpers";
|
||||
import { Friendship } from "@/src/models/friendModel";
|
||||
import { Account } from "@/src/models/loginModel";
|
||||
@ -37,6 +37,7 @@ export const addPendingFriendController: RequestHandler = async (req, res) => {
|
||||
const friendInfo: IFriendInfo = {
|
||||
_id: toOid(account._id),
|
||||
DisplayName: account.DisplayName,
|
||||
LastLogin: toMongoDate(account.LastLogin),
|
||||
Note: payload.message
|
||||
};
|
||||
await addInventoryDataToFriendInfo(friendInfo);
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { toMongoDate } from "@/src/helpers/inventoryHelpers";
|
||||
import { Guild, GuildMember } from "@/src/models/guildModel";
|
||||
import { Account } from "@/src/models/loginModel";
|
||||
import { addInventoryDataToFriendInfo, areFriends } from "@/src/services/friendService";
|
||||
@ -75,6 +76,7 @@ export const addToGuildController: RequestHandler = async (req, res) => {
|
||||
const member: IGuildMemberClient = {
|
||||
_id: { $oid: account._id.toString() },
|
||||
DisplayName: account.DisplayName,
|
||||
LastLogin: toMongoDate(account.LastLogin),
|
||||
Rank: 7,
|
||||
Status: 2
|
||||
};
|
||||
|
@ -48,7 +48,8 @@ export const loginController: RequestHandler = async (request, response) => {
|
||||
ConsentNeeded: false,
|
||||
TrackedSettings: [],
|
||||
Nonce: nonce,
|
||||
BuildLabel: buildLabel
|
||||
BuildLabel: buildLabel,
|
||||
LastLogin: new Date()
|
||||
});
|
||||
logger.debug("created new account");
|
||||
response.json(createLoginResponse(myAddress, newAccount, buildLabel));
|
||||
@ -93,6 +94,7 @@ export const loginController: RequestHandler = async (request, response) => {
|
||||
account.Nonce = nonce;
|
||||
account.CountryCode = loginRequest.lang?.toUpperCase() ?? "EN";
|
||||
account.BuildLabel = buildLabel;
|
||||
account.LastLogin = new Date();
|
||||
}
|
||||
await account.save();
|
||||
|
||||
|
@ -48,7 +48,8 @@ const toDatabaseAccount = (createAccount: IAccountCreation): IDatabaseAccountReq
|
||||
CrossPlatformAllowed: true,
|
||||
ForceLogoutVersion: 0,
|
||||
TrackedSettings: [],
|
||||
Nonce: 0
|
||||
Nonce: 0,
|
||||
LastLogin: new Date()
|
||||
} satisfies IDatabaseAccountRequiredFields;
|
||||
};
|
||||
|
||||
|
@ -22,6 +22,7 @@ const databaseAccountSchema = new Schema<IDatabaseAccountJson>(
|
||||
Nonce: { type: Number, default: 0 },
|
||||
BuildLabel: String,
|
||||
Dropped: Boolean,
|
||||
LastLogin: { type: Date, default: 0 },
|
||||
LatestEventMessageDate: { type: Date, default: 0 },
|
||||
LastLoginRewardDate: { type: Number, default: 0 },
|
||||
LoginDays: { type: Number, default: 1 }
|
||||
|
@ -4,9 +4,12 @@ import { config } from "./configService";
|
||||
import { Account } from "../models/loginModel";
|
||||
import { Types } from "mongoose";
|
||||
import { Friendship } from "../models/friendModel";
|
||||
import { toMongoDate } from "../helpers/inventoryHelpers";
|
||||
|
||||
export const addAccountDataToFriendInfo = async (info: IFriendInfo): Promise<void> => {
|
||||
info.DisplayName = (await Account.findById(info._id.$oid, "DisplayName"))!.DisplayName;
|
||||
const account = (await Account.findById(info._id.$oid, "DisplayName LastLogin"))!;
|
||||
info.DisplayName = account.DisplayName;
|
||||
info.LastLogin = toMongoDate(account.LastLogin);
|
||||
};
|
||||
|
||||
export const addInventoryDataToFriendInfo = async (info: IFriendInfo): Promise<void> => {
|
||||
|
@ -17,6 +17,7 @@ export interface IDatabaseAccountRequiredFields extends IAccountAndLoginResponse
|
||||
email: string;
|
||||
password: string;
|
||||
BuildLabel?: string;
|
||||
LastLogin: Date;
|
||||
}
|
||||
|
||||
export interface IDatabaseAccount extends IDatabaseAccountRequiredFields {
|
||||
|
Loading…
x
Reference in New Issue
Block a user