Skip to content

Commit 238c604

Browse files
committed
feat: support for /Character endpoint
1 parent f54bfc2 commit 238c604

File tree

12 files changed

+129
-1
lines changed

12 files changed

+129
-1
lines changed

src/model/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ export { XivapiOptions } from './xivapi-options';
88
export { XivapiRequestOptions } from './xivapi-request-options';
99
export { XivapiSearchFilter } from './xivapi-search-filter';
1010
export { XivapiSearchOptions } from './xivapi-search-options';
11+
export * from './schema/index';
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { Character } from './character';
2+
3+
export interface CharacterResponse {
4+
Payload: Character;
5+
/**
6+
* State | Number | Details
7+
* --- | --- | ---
8+
* STATE_ADDING | 1 | This state is returned when the character does not exist on the API
9+
* and needs adding (the first ever request and sub-sequent requests until the character is added).
10+
* The Payload should be empty if this state is provided.
11+
* You are advised to inform your audience that a character add request has been performed.
12+
* It should take 2 minutes or less to add your character.
13+
*
14+
* STATE_CACHED | 2 | This state is returned when the character exists in the system and you're being provided a cached response.
15+
* The Payload will contain the character information which will include useful information such as LastUpdated
16+
* which you can use to base on if a character update request is required
17+
* STATE_NOT_FOUND | 3 | This state is returned when a character does not exist on The Lodestone.
18+
* If a character is attempted to be added but the system does not find it then it will be registered as not found.
19+
* The Payload will return empty. Characters in this state are checked every 24 hours,
20+
* if the character continues to not be found after several tries then this entry will be deleted.
21+
* You can also request a deletion of this entry via the /Delete endpoint.
22+
*/
23+
State: 1 | 2 | 3;
24+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export interface CharacterVerification {
2+
ID: number;
3+
VerificationToken: string;
4+
VerificationTokenPass: boolean;
5+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { ClassJob } from './class-job';
2+
import { GearSet } from './gear-set';
3+
import { GrandCompany } from './grand-company';
4+
5+
export interface Character {
6+
ActiveClassJob: ClassJob;
7+
Added: number;
8+
Avatar: string;
9+
Bio: string;
10+
ClassJobs: { [index: string]: ClassJob };
11+
FreeCompanyId: number;
12+
GearSet: GearSet;
13+
Gender: 1 | 2;
14+
GrandCompany: GrandCompany;
15+
GuardianDeity: number;
16+
ID: number;
17+
Minions: number[];
18+
Mounts: number[];
19+
Name: string;
20+
Nameday: string;
21+
Portrait: string;
22+
PvPTeam: null;
23+
Race: number;
24+
Server: string;
25+
Title: number;
26+
Town: number;
27+
Tribe: number;
28+
Updated: number;
29+
VerificationToken: string;
30+
VerificationTokenPass: boolean;
31+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export interface ClassJob {
2+
ClassID: number;
3+
ExpLevel: number;
4+
ExpLevelMax: number;
5+
ExpLevelTogo: number;
6+
JobID: number;
7+
Level: number;
8+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { GearPiece } from './gear-piece';
2+
3+
export interface GearDetails {
4+
Body: GearPiece;
5+
Bracelets: GearPiece;
6+
Earrings: GearPiece;
7+
Feet: GearPiece;
8+
Hands: GearPiece;
9+
Head: GearPiece;
10+
Legs: GearPiece;
11+
MainHand: GearPiece;
12+
Necklace: GearPiece;
13+
Ring1: GearPiece;
14+
Ring2: GearPiece;
15+
SoulCrystal: GearPiece;
16+
Waist: GearPiece;
17+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export interface GearPiece {
2+
Creator: any; // Typed to any for now as I don't have more details, didn't have this information on my char.
3+
Dye: any; // Typed to any for now as I don't have more details, didn't have this information on my char.
4+
ID: number;
5+
Materia: any[]; // Typed to any for now as I don't have more details, didn't have this information on my char.
6+
Mirage: any; // Typed to any for now as I don't have more details, didn't have this information on my char.
7+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { GearDetails } from './gear-details';
2+
3+
export interface GearSet {
4+
Attributes: { [index: string]: number };
5+
ClassID: number;
6+
Gear: GearDetails;
7+
GearKey: string;
8+
JobID: number;
9+
Level: number;
10+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export interface GrandCompany {
2+
NameID: number;
3+
RankID: number;
4+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export * from './character';
2+
export * from './character-response';
3+
export * from './character-verification';
4+
export * from './class-job';
5+
export * from './gear-details';
6+
export * from './gear-piece';
7+
export * from './gear-set';
8+
export * from './grand-company';

0 commit comments

Comments
 (0)