{"version":3,"mappings":"geAkBK,IAAAA,OACHA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,aAAe,eAJZA,OAAA,IAYL,MAAMC,EAAS,CAAC,CAAC,MAAAC,EAAO,UAAAC,EAAW,MAAAC,EAAO,SAAAC,KACjCC,EAAQ,QAAAC,EAAA,IACb,OACE,wBACF,OAED,KAAMC,GACEC,EACL,CACE,IAAUD,EAAO,0CAA0C,EAC3D,OAAU,OACV,SAAU,OACV,KAAU,CACR,MAAAN,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,CAAA,CAEJ,EACA,CACE,qBAAsB,CAAC,CAAC,iBAAAK,KAClBA,IAAqB,IAChBC,EAA2B,WAG7BA,EAA2B,cACpC,CAEJ,CACD,EACA,KAAK,KACI,CAAC,YAAa,SAAuB,EAC9C,EACA,MAAOC,GAAoB,CAC1B,GAAIA,aAA2B,MACvB,MAAAA,EAGF,MAAE,SAAAC,GAAaD,EACrB,OAAQC,EAAS,OAAQ,CACvB,IAAK,KACK,OAAC,YAAa,UAAwB,EAEhD,IAAK,KACK,OAAC,YAAa,cAA4B,EAEpD,QACU,OAAC,YAAa,SAAuB,EACjD,CACD","names":["ResultTypeEnums","create","email","full_name","image","id_token","Promise","__vitePreload","Routes","q_ajax_3","http_status_code","AJAX_ERROR_HANDLER_ACTIONS","reason_or_error","response"],"ignoreList":[],"sources":["../../../app/assets/javascripts/app/resources/users/create_with_google/index.ts"],"sourcesContent":["\n/* eslint-disable no-unused-vars */\nimport Promise from \"plugins/bluebird/index\"\n/* eslint-enable no-unused-vars */\nimport {\n  q_ajax_3,\n  ERROR_HANDLER_ACTIONS as AJAX_ERROR_HANDLER_ACTIONS,\n} from \"app/utils/q_ajax/q_ajax_3\"\n\n\ninterface Input {\n  email: string,\n  full_name: string,\n  image: string,\n  id_token: string,\n}\n\n/* eslint-disable no-unused-vars */\nenum ResultTypeEnums {\n  SUCCESS = \"SUCCESS\",\n  INVALID = \"INVALID\",\n  CONFLICT = \"CONFLICT\",\n  UNAUTHORIZED = \"UNAUTHORIZED\",\n}\n/* eslint-enable no-unused-vars */\n\ninterface PromiseResolvePayload {\n  result_type: ResultTypeEnums,\n}\n\nconst create = ({email, full_name, image, id_token}: Input): Promise<PromiseResolvePayload> => {\n  return Promise.resolve(\n    import(\n      \"plugins/js-routes\"\n    )\n  )\n  .then((Routes) => {\n    return q_ajax_3(\n      {\n        url:      Routes.create_with_google_api_web_app_users_path(),\n        method:   \"POST\",\n        dataType: \"json\",\n        data:     {\n          email:      email,\n          full_name:  full_name,\n          image:      image,\n          id_token:   id_token,\n        },\n      },\n      {\n        custom_error_handler: ({http_status_code}) => {\n          if (http_status_code === 409) {\n            return AJAX_ERROR_HANDLER_ACTIONS.STOP_RETRY\n          }\n\n          return AJAX_ERROR_HANDLER_ACTIONS.CONTINUE_RETRY\n        },\n      },\n    )\n  })\n  .then(() => {\n    return ({result_type: ResultTypeEnums.SUCCESS})\n  })\n  .catch((reason_or_error) => {\n    if (reason_or_error instanceof Error) {\n      throw reason_or_error\n    }\n\n    const { response } = reason_or_error\n    switch (response.status) {\n      case 409: {\n        return ({result_type: ResultTypeEnums.CONFLICT})\n      }\n      case 401: {\n        return ({result_type: ResultTypeEnums.UNAUTHORIZED})\n      }\n      default:\n        return ({result_type: ResultTypeEnums.INVALID})\n    }\n  })\n}\n\nexport {\n  create as default,\n  create,\n  ResultTypeEnums,\n}\n"],"file":"assets/index-D6lxhAOs.js"}