{"version":3,"file":"AuthStore-efd79221.js","sources":["../../src/views/auth/stores/AuthStore.ts"],"sourcesContent":["import { ApiResponseError } from '@axl/accel-framework/api';\r\nimport { InviteStatus } from '@axl/accel-framework/enums';\r\nimport { Contact } from '@axl/accel-framework/models';\r\nimport { TokenStore } from '@axl/accel-framework/stores';\r\nimport { LangDetector, isEmpty } from '@axl/accel-framework/utils';\r\nimport Api from 'api';\r\nimport { FetchContactRequest } from 'api/methods/auth/types/contact';\r\nimport { LoginAsModel, LoginAsRequest } from 'api/methods/auth/types/login-as';\r\nimport { LoginTokenRequest } from 'api/methods/auth/types/login-token';\r\nimport { LogoutRequest } from 'api/methods/auth/types/logout';\r\nimport { SendInviteRequest } from 'api/methods/auth/types/send-invite';\r\nimport { action, computed, observable, runInAction } from 'mobx';\r\nimport moment from 'moment';\r\nimport { inject } from 'react-ioc';\r\nimport { SchoolStore } from 'stores';\r\nimport { CheckInviteRequest } from '../../../api/methods/auth/types/check-invite';\r\nimport { ConfirmEmailRequest } from '../../../api/methods/auth/types/confirm-email';\r\nimport { ConfirmInviteModel, ConfirmInviteRequest } from '../../../api/methods/auth/types/confirm-invite';\r\nimport { ForgotPasswordRequest } from '../../../api/methods/auth/types/forgot-password';\r\nimport { LoginRequest } from '../../../api/methods/auth/types/login';\r\nimport { RegisterRequest } from '../../../api/methods/auth/types/register';\r\nimport { ResetPasswordRequest } from '../../../api/methods/auth/types/reset-password';\r\n\r\ntype ConfirmEmailModel = {\r\n token: string,\r\n userId: string,\r\n}\r\n\r\nexport default class AuthStore {\r\n constructor(protected api: Api,\r\n private langDetector: LangDetector,\r\n private tokenStore: TokenStore,\r\n private schoolStore: SchoolStore) {\r\n this.api = api || inject(this, Api);\r\n this.langDetector = langDetector || inject(this, LangDetector);\r\n this.tokenStore = tokenStore || inject(this, TokenStore);\r\n this.schoolStore = schoolStore || inject(this, SchoolStore);\r\n }\r\n\r\n @observable inProgress = false;\r\n @observable errors: ApiResponseError[] = [];\r\n @observable email: string = '';\r\n @observable password: string = '';\r\n @observable confirmPassword: string = '';\r\n @observable urlParameters: any;\r\n @observable isAgreementAccepted: boolean = false;\r\n @observable contact: Contact | null = null;\r\n\r\n @action async login() {\r\n this.inProgress = true;\r\n const result = await this.api.auth.login(new LoginRequest(this.email, this.password, this.contact?.id));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false;\r\n });\r\n return result.success;\r\n }\r\n\r\n @action async logout() {\r\n const token = this.tokenStore.refreshToken;\r\n if (token == null)\r\n return false;\r\n\r\n const result = await this.api.auth.logout(new LogoutRequest(token));\r\n return result.success;\r\n }\r\n\r\n @action async register(inviteToken?: string) {\r\n this.inProgress = true;\r\n const result = await this.api.auth.register(new RegisterRequest({\r\n contactId: this.contact?.id,\r\n email: this.email,\r\n password: this.password,\r\n confirmPassword: this.confirmPassword,\r\n lang: this.schoolStore.school.lang || this.langDetector.lang,\r\n timezoneOffset: moment().format('ZZ'),\r\n urlParameters: this.urlParameters,\r\n isAgreementAccepted: this.isAgreementAccepted,\r\n inviteToken: inviteToken\r\n }));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success;\r\n }\r\n\r\n\r\n @action async forgotPassword() {\r\n this.inProgress = true;\r\n var result = await this.api.auth.forgotPassword(new ForgotPasswordRequest(this.email));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success;\r\n }\r\n\r\n @action async resetPassword(token: string) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.resetPassword(new ResetPasswordRequest(token, this.password, this.confirmPassword));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success;\r\n }\r\n\r\n @action async confirmEmail(confirmModel: ConfirmEmailModel) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.confirmEmail(new ConfirmEmailRequest(confirmModel));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success;\r\n }\r\n\r\n @action async confirmInvite(model: ConfirmInviteModel) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.confirmInvite(new ConfirmInviteRequest(model));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success;\r\n }\r\n\r\n @action async checkInvite(token: string) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.checkInvite(new CheckInviteRequest(token));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success ? result.response.status : InviteStatus.NotFound;\r\n }\r\n\r\n @action async sendInvite(email: string) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.sendInvite(new SendInviteRequest(email));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result.success;\r\n }\r\n\r\n @action async loginToken(token: string) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.loginToken(new LoginTokenRequest(token));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result;\r\n }\r\n\r\n @action async loginAs(model: LoginAsModel) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.loginAs(new LoginAsRequest(model));\r\n runInAction(() => {\r\n this.errors = result.response.errors;\r\n this.inProgress = false\r\n });\r\n return result;\r\n }\r\n\r\n @action async fetchContact(contactId: string) {\r\n this.inProgress = true;\r\n var result = await this.api.auth.fetchContact(new FetchContactRequest(contactId));\r\n runInAction(() => {\r\n this.inProgress = false\r\n });\r\n return result;\r\n }\r\n\r\n @action setPassword(value: string): void {\r\n this.password = value;\r\n }\r\n\r\n @action setPasswordConfirm(value: string): void {\r\n this.confirmPassword = value;\r\n }\r\n\r\n @action setEmail(value: string): void {\r\n this.email = value?.trimSpaces();\r\n }\r\n\r\n @action setUrlParameters(urlParameters: any): void {\r\n this.urlParameters = urlParameters;\r\n }\r\n\r\n @action setIsAgreementAccepted(value: boolean) {\r\n this.isAgreementAccepted = value;\r\n }\r\n\r\n @action setContact(contact: Contact) {\r\n this.contact = contact;\r\n this.setEmail(contact.email);\r\n }\r\n\r\n @computed get hasContactEmail() {\r\n return !isEmpty(this.contact?.email);\r\n }\r\n}"],"names":["AuthStore","api","langDetector","tokenStore","schoolStore","inject","Api","LangDetector","TokenStore","SchoolStore","result","LoginRequest","_a","runInAction","token","LogoutRequest","inviteToken","RegisterRequest","moment","ForgotPasswordRequest","ResetPasswordRequest","confirmModel","ConfirmEmailRequest","model","ConfirmInviteRequest","CheckInviteRequest","InviteStatus","email","SendInviteRequest","LoginTokenRequest","LoginAsRequest","contactId","FetchContactRequest","value","urlParameters","contact","isEmpty","__decorateClass","observable","action","computed"],"mappings":"wcA4BA,MAAqBA,CAAU,CAC3B,YAAsBC,EACVC,EACAC,EACAC,EAA0B,CAHhB,KAAA,IAAAH,EACV,KAAA,aAAAC,EACA,KAAA,WAAAC,EACA,KAAA,YAAAC,EAOa,KAAA,WAAA,GACb,KAAA,OAA6B,GACb,KAAA,MAAA,GACG,KAAA,SAAA,GACO,KAAA,gBAAA,GAEK,KAAA,oBAAA,GACL,KAAA,QAAA,KAblC,KAAK,IAAMH,GAAOI,EAAO,KAAMC,CAAG,EAClC,KAAK,aAAeJ,GAAgBG,EAAO,KAAME,CAAY,EAC7D,KAAK,WAAaJ,GAAcE,EAAO,KAAMG,CAAU,EACvD,KAAK,YAAcJ,GAAeC,EAAO,KAAMI,CAAW,CAC9D,CAWQ,MAAM,OAAQ,OAClB,KAAK,WAAa,GAClB,MAAMC,EAAS,MAAM,KAAK,IAAI,KAAK,MAAM,IAAIC,EAAa,KAAK,MAAO,KAAK,UAAUC,EAAA,KAAK,UAAL,YAAAA,EAAc,EAAE,CAAC,EACtG,OAAAC,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAEQ,MAAM,QAAS,CACb,MAAAI,EAAQ,KAAK,WAAW,aAC9B,OAAIA,GAAS,KACF,IAEI,MAAM,KAAK,IAAI,KAAK,OAAO,IAAIC,EAAcD,CAAK,CAAC,GACpD,OAClB,CAEQ,MAAM,SAASE,EAAsB,OACzC,KAAK,WAAa,GAClB,MAAMN,EAAS,MAAM,KAAK,IAAI,KAAK,SAAS,IAAIO,EAAgB,CAC5D,WAAWL,EAAA,KAAK,UAAL,YAAAA,EAAc,GACzB,MAAO,KAAK,MACZ,SAAU,KAAK,SACf,gBAAiB,KAAK,gBACtB,KAAM,KAAK,YAAY,OAAO,MAAQ,KAAK,aAAa,KACxD,eAAgBM,EAAA,EAAS,OAAO,IAAI,EACpC,cAAe,KAAK,cACpB,oBAAqB,KAAK,oBAC1B,YAAAF,CACH,CAAA,CAAC,EACF,OAAAH,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAGQ,MAAM,gBAAiB,CAC3B,KAAK,WAAa,GACd,IAAAA,EAAS,MAAM,KAAK,IAAI,KAAK,eAAe,IAAIS,EAAsB,KAAK,KAAK,CAAC,EACrF,OAAAN,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAEQ,MAAM,cAAcI,EAAe,CACvC,KAAK,WAAa,GAClB,IAAIJ,EAAS,MAAM,KAAK,IAAI,KAAK,cAAc,IAAIU,EAAqBN,EAAO,KAAK,SAAU,KAAK,eAAe,CAAC,EACnH,OAAAD,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAEQ,MAAM,aAAaW,EAAiC,CACxD,KAAK,WAAa,GACd,IAAAX,EAAS,MAAM,KAAK,IAAI,KAAK,aAAa,IAAIY,EAAoBD,CAAY,CAAC,EACnF,OAAAR,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAEQ,MAAM,cAAca,EAA2B,CACnD,KAAK,WAAa,GACd,IAAAb,EAAS,MAAM,KAAK,IAAI,KAAK,cAAc,IAAIc,EAAqBD,CAAK,CAAC,EAC9E,OAAAV,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAEQ,MAAM,YAAYI,EAAe,CACrC,KAAK,WAAa,GACd,IAAAJ,EAAS,MAAM,KAAK,IAAI,KAAK,YAAY,IAAIe,EAAmBX,CAAK,CAAC,EAC1E,OAAAD,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,QAAUA,EAAO,SAAS,OAASgB,EAAa,QAClE,CAEQ,MAAM,WAAWC,EAAe,CACpC,KAAK,WAAa,GACd,IAAAjB,EAAS,MAAM,KAAK,IAAI,KAAK,WAAW,IAAIkB,EAAkBD,CAAK,CAAC,EACxE,OAAAd,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,EAAO,OAClB,CAEQ,MAAM,WAAWI,EAAe,CACpC,KAAK,WAAa,GACd,IAAAJ,EAAS,MAAM,KAAK,IAAI,KAAK,WAAW,IAAImB,EAAkBf,CAAK,CAAC,EACxE,OAAAD,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,CACX,CAEQ,MAAM,QAAQa,EAAqB,CACvC,KAAK,WAAa,GACd,IAAAb,EAAS,MAAM,KAAK,IAAI,KAAK,QAAQ,IAAIoB,EAAeP,CAAK,CAAC,EAClE,OAAAV,EAAY,IAAM,CACT,KAAA,OAASH,EAAO,SAAS,OAC9B,KAAK,WAAa,EAAA,CACrB,EACMA,CACX,CAEQ,MAAM,aAAaqB,EAAmB,CAC1C,KAAK,WAAa,GACd,IAAArB,EAAS,MAAM,KAAK,IAAI,KAAK,aAAa,IAAIsB,EAAoBD,CAAS,CAAC,EAChF,OAAAlB,EAAY,IAAM,CACd,KAAK,WAAa,EAAA,CACrB,EACMH,CACX,CAEQ,YAAYuB,EAAqB,CACrC,KAAK,SAAWA,CACpB,CAEQ,mBAAmBA,EAAqB,CAC5C,KAAK,gBAAkBA,CAC3B,CAEQ,SAASA,EAAqB,CAC7B,KAAA,MAAQA,GAAA,YAAAA,EAAO,YACxB,CAEQ,iBAAiBC,EAA0B,CAC/C,KAAK,cAAgBA,CACzB,CAEQ,uBAAuBD,EAAgB,CAC3C,KAAK,oBAAsBA,CAC/B,CAEQ,WAAWE,EAAkB,CACjC,KAAK,QAAUA,EACV,KAAA,SAASA,EAAQ,KAAK,CAC/B,CAEU,IAAI,iBAAkB,OAC5B,MAAO,CAACC,GAAQxB,EAAA,KAAK,UAAL,YAAAA,EAAc,KAAK,CACvC,CACJ,CAtKgByB,EAAA,CAAXC,CAAA,EAXgBtC,EAWL,UAAA,aAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAZgBtC,EAYL,UAAA,SAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAbgBtC,EAaL,UAAA,QAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAdgBtC,EAcL,UAAA,WAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAfgBtC,EAeL,UAAA,kBAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAhBgBtC,EAgBL,UAAA,gBAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAjBgBtC,EAiBL,UAAA,sBAAA,CAAA,EACAqC,EAAA,CAAXC,CAAA,EAlBgBtC,EAkBL,UAAA,UAAA,CAAA,EAEEqC,EAAA,CAAbE,CAAA,EApBgBvC,EAoBH,UAAA,QAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EA9BgBvC,EA8BH,UAAA,SAAA,CAAA,EASAqC,EAAA,CAAbE,CAAA,EAvCgBvC,EAuCH,UAAA,WAAA,CAAA,EAqBAqC,EAAA,CAAbE,CAAA,EA5DgBvC,EA4DH,UAAA,iBAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EAtEgBvC,EAsEH,UAAA,gBAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EAhFgBvC,EAgFH,UAAA,eAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EA1FgBvC,EA0FH,UAAA,gBAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EApGgBvC,EAoGH,UAAA,cAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EA9GgBvC,EA8GH,UAAA,aAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EAxHgBvC,EAwHH,UAAA,aAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EAlIgBvC,EAkIH,UAAA,UAAA,CAAA,EAUAqC,EAAA,CAAbE,CAAA,EA5IgBvC,EA4IH,UAAA,eAAA,CAAA,EASNqC,EAAA,CAAPE,CAAA,EArJgBvC,EAqJT,UAAA,cAAA,CAAA,EAIAqC,EAAA,CAAPE,CAAA,EAzJgBvC,EAyJT,UAAA,qBAAA,CAAA,EAIAqC,EAAA,CAAPE,CAAA,EA7JgBvC,EA6JT,UAAA,WAAA,CAAA,EAIAqC,EAAA,CAAPE,CAAA,EAjKgBvC,EAiKT,UAAA,mBAAA,CAAA,EAIAqC,EAAA,CAAPE,CAAA,EArKgBvC,EAqKT,UAAA,yBAAA,CAAA,EAIAqC,EAAA,CAAPE,CAAA,EAzKgBvC,EAyKT,UAAA,aAAA,CAAA,EAKMqC,EAAA,CAAbG,CAAA,EA9KgBxC,EA8KH,UAAA,kBAAA,CAAA"}