def install(self, request): """ Installation / app preferences service handler. Creates a new store object if it doesn't exists with all the shopify API shop attributes. """ self.before_install(request) token = request.session.get('shopify', {}).get("access_token") domain = request.session.get('shopify', {}).get("shop_url") shop = APIWrapper(token=token, api_domain=domain, log=True).current_shop() shop_model, created = self.get_or_create(shop_id=shop["id"]) for field in shop_model.update_fields(): setattr(shop_model, field, shop.get(field)) shop_model.token = token self.before_save(shop_model, request) shop_model.save() self.post_install(request) if not self._check_active_plan(shop_model): redirect_url = self.get_upgrade_plan_url(shop_model) LogService().log_shopify_request(redirect_url) return shop_model, redirect_url return shop_model, False
def is_valid_token(self, token, shop_url): try: api_wrapper = APIWrapper(token=token, shop_url=shop_url) api_wrapper.current_shop() return True except: return False