@meowinc/meow-sdk 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -5,14 +5,21 @@ import type { UndefinedString } from "./types";
5
5
  export { AuthorizationProvider } from "./auth-provider";
6
6
  export { UndefinedString };
7
7
  export { AccessToken } from "./token";
8
+ type AuthorizationUpdateHandler = (data: {
9
+ accessToken: UndefinedString;
10
+ refreshToken: UndefinedString;
11
+ }) => void;
8
12
  export declare class MeowSdkClient<T extends AuthorizationProvider> {
9
13
  readonly account: AccountClient;
10
14
  readonly mail: MailClient;
15
+ private authorizationUpdateHandlers;
11
16
  private readonly authProvider;
12
17
  protected constructor(authProvider: T);
13
18
  isAuthorizationExist(): boolean;
14
19
  updateAccessToken(accessToken: string): void;
15
20
  updateRefreshToken(refreshToken: string): void;
21
+ updateTokens(accessToken: string, refreshToken: string): void;
16
22
  getAccessToken(): UndefinedString;
23
+ onAuthorizationUpdated(callback: AuthorizationUpdateHandler): this;
17
24
  static fromAuthorizationProvider<T extends AuthorizationProvider>(provider: AuthorizationProvider): MeowSdkClient<T>;
18
25
  }
package/dist/index.js CHANGED
@@ -4,24 +4,43 @@ export { AccessToken } from "./token";
4
4
  export class MeowSdkClient {
5
5
  account;
6
6
  mail;
7
+ authorizationUpdateHandlers;
7
8
  authProvider;
8
9
  constructor(authProvider) {
9
10
  this.authProvider = authProvider;
10
11
  this.account = new AccountClient(authProvider);
11
12
  this.mail = new MailClient(authProvider);
13
+ this.authorizationUpdateHandlers = [];
12
14
  }
13
15
  isAuthorizationExist() {
14
16
  return this.authProvider.getAccessToken() != undefined || this.authProvider.getRefreshToken() != undefined;
15
17
  }
16
18
  updateAccessToken(accessToken) {
17
19
  this.authProvider.setAccessToken(accessToken);
20
+ for (const handler of this.authorizationUpdateHandlers) {
21
+ handler({ accessToken, refreshToken: this.authProvider.getRefreshToken() });
22
+ }
18
23
  }
19
24
  updateRefreshToken(refreshToken) {
20
25
  this.authProvider.setRefreshToken(refreshToken);
26
+ for (const handler of this.authorizationUpdateHandlers) {
27
+ handler({ accessToken: this.authProvider.getAccessToken(), refreshToken });
28
+ }
29
+ }
30
+ updateTokens(accessToken, refreshToken) {
31
+ this.authProvider.setAccessToken(accessToken);
32
+ this.authProvider.setRefreshToken(refreshToken);
33
+ for (const handler of this.authorizationUpdateHandlers) {
34
+ handler({ accessToken, refreshToken });
35
+ }
21
36
  }
22
37
  getAccessToken() {
23
38
  return this.authProvider.getAccessToken();
24
39
  }
40
+ onAuthorizationUpdated(callback) {
41
+ this.authorizationUpdateHandlers.push(callback);
42
+ return this;
43
+ }
25
44
  static fromAuthorizationProvider(provider) {
26
45
  return new MeowSdkClient(provider);
27
46
  }
@@ -0,0 +1,8 @@
1
+ import { AuthorizationProvider } from "../../auth-provider";
2
+ import { MeowResult } from "../../types";
3
+ export interface Response {
4
+ allEmailCount: number;
5
+ receivedUnreadEmailCount: number;
6
+ unreadEmailCount: number;
7
+ }
8
+ export declare function request(authorizationProvider: AuthorizationProvider): Promise<MeowResult<Response>>;
@@ -0,0 +1,11 @@
1
+ import { MAIL_API } from "..";
2
+ import { ErrorToMessage } from "../../error";
3
+ import { HttpClient } from "../../http-client";
4
+ export async function request(authorizationProvider) {
5
+ return await new HttpClient()
6
+ .withMethodGet()
7
+ .withUrl(`${MAIL_API}/v1/email/statistic/`)
8
+ .withAuthorization(authorizationProvider)
9
+ .send()
10
+ .then((r) => r.mapError(ErrorToMessage));
11
+ }
@@ -9,7 +9,7 @@ export async function request(queryParameters, authorizationProvider) {
9
9
  .withParam("subject", subject)
10
10
  .withParam("offset", offset)
11
11
  .withParam("emailsPerPage", emailsPerPage)
12
- .withUrl(`${MAIL_API}/v1/email/filter`)
12
+ .withUrl(`${MAIL_API}/v1/email`)
13
13
  .send()
14
14
  .then((res) => res.mapError(ErrorToMessage));
15
15
  }
@@ -6,6 +6,7 @@ export declare class EmailRequests {
6
6
  deleteEmailById(id: number): Promise<import("../../types").MeowResult<void>>;
7
7
  sendEmail(to: string, subject: string, content: string): Promise<import("../../types").MeowResult<void>>;
8
8
  setReadStatus(id: number, isRead: boolean): Promise<import("../../types").MeowResult<void>>;
9
+ getEmailStatistic(): Promise<import("../../types").MeowResult<import("./get-email-statistic").Response>>;
9
10
  getEmails(queryParameters: {
10
11
  subject?: string;
11
12
  offset?: number;
@@ -1,6 +1,7 @@
1
1
  import { request as getEmailById } from "./get-email-by-id";
2
2
  import { request as deleteEmailById } from "./delete-email-by-id";
3
3
  import { request as sendEmail } from "./send-message";
4
+ import { request as getEmailStatistic } from "./get-email-statistic";
4
5
  import { request as setReadStatus } from "./set-read";
5
6
  import { request as getEmailWithFilter } from "./get-emails";
6
7
  export class EmailRequests {
@@ -20,6 +21,9 @@ export class EmailRequests {
20
21
  async setReadStatus(id, isRead) {
21
22
  return await setReadStatus(id, isRead, this.authorizationProvider);
22
23
  }
24
+ async getEmailStatistic() {
25
+ return await getEmailStatistic(this.authorizationProvider);
26
+ }
23
27
  async getEmails(queryParameters) {
24
28
  return await getEmailWithFilter(queryParameters, this.authorizationProvider);
25
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meowinc/meow-sdk",
3
- "version": "0.0.9",
3
+ "version": "0.1.0",
4
4
  "description": "Meow SDK",
5
5
  "keywords": [
6
6
  "sdk"