ErrorParser.smali
.class Lcom/stripe/android/net/ErrorParser;
.super Ljava/lang/Object;
.source "ErrorParser.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/stripe/android/net/ErrorParser$StripeError;
}
.end annotation
# static fields
.field private static final FIELD_CHARGE:Ljava/lang/String; = "charge"
.field private static final FIELD_CODE:Ljava/lang/String; = "code"
.field private static final FIELD_DECLINE_CODE:Ljava/lang/String; = "decline_code"
.field private static final FIELD_ERROR:Ljava/lang/String; = "error"
.field private static final FIELD_MESSAGE:Ljava/lang/String; = "message"
.field private static final FIELD_PARAM:Ljava/lang/String; = "param"
.field private static final FIELD_TYPE:Ljava/lang/String; = "type"
.field static final MALFORMED_RESPONSE_MESSAGE:Ljava/lang/String; = "An improperly formatted error response was found."
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>()V
.registers 1
.line 14
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static parseError(Ljava/lang/String;)Lcom/stripe/android/net/ErrorParser$StripeError;
.registers 5
.param p0, "rawError" # Ljava/lang/String;
.line 30
new-instance v0, Lcom/stripe/android/net/ErrorParser$StripeError;
invoke-direct {v0}, Lcom/stripe/android/net/ErrorParser$StripeError;-><init>()V
.line 32
.local v0, "stripeError":Lcom/stripe/android/net/ErrorParser$StripeError;
:try_start_5
new-instance v1, Lorg/json/JSONObject;
invoke-direct {v1, p0}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
.line 33
.local v1, "jsonError":Lorg/json/JSONObject;
const-string v2, "error"
invoke-virtual {v1, v2}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v2
.line 34
.local v2, "errorObject":Lorg/json/JSONObject;
const-string v3, "charge"
invoke-static {v2, v3}, Lcom/stripe/android/util/StripeJsonUtils;->optString(Lorg/json/JSONObject;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->charge:Ljava/lang/String;
.line 35
const-string v3, "code"
invoke-static {v2, v3}, Lcom/stripe/android/util/StripeJsonUtils;->optString(Lorg/json/JSONObject;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->code:Ljava/lang/String;
.line 36
const-string v3, "decline_code"
invoke-static {v2, v3}, Lcom/stripe/android/util/StripeJsonUtils;->optString(Lorg/json/JSONObject;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->decline_code:Ljava/lang/String;
.line 37
const-string v3, "message"
invoke-static {v2, v3}, Lcom/stripe/android/util/StripeJsonUtils;->optString(Lorg/json/JSONObject;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->message:Ljava/lang/String;
.line 38
const-string v3, "param"
invoke-static {v2, v3}, Lcom/stripe/android/util/StripeJsonUtils;->optString(Lorg/json/JSONObject;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->param:Ljava/lang/String;
.line 39
const-string/jumbo v3, "type"
invoke-static {v2, v3}, Lcom/stripe/android/util/StripeJsonUtils;->optString(Lorg/json/JSONObject;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->type:Ljava/lang/String;
:try_end_41
.catch Lorg/json/JSONException; {:try_start_5 .. :try_end_41} :catch_42
.line 42
.end local v1 # "jsonError":Lorg/json/JSONObject;
.end local v2 # "errorObject":Lorg/json/JSONObject;
goto :goto_47
.line 40
:catch_42
move-exception v1
.line 41
.local v1, "jsonException":Lorg/json/JSONException;
const-string v2, "An improperly formatted error response was found."
iput-object v2, v0, Lcom/stripe/android/net/ErrorParser$StripeError;->message:Ljava/lang/String;
.line 43
.end local v1 # "jsonException":Lorg/json/JSONException;
:goto_47
return-object v0
.end method