{"id":2879,"date":"2025-11-12T09:52:12","date_gmt":"2025-11-12T02:52:12","guid":{"rendered":"https:\/\/portal-atlasx.cdg.co.th\/home\/?post_type=docs&#038;p=2879"},"modified":"2025-11-12T09:53:31","modified_gmt":"2025-11-12T02:53:31","slug":"identifycallback","status":"publish","type":"docs","link":"https:\/\/portal-atlasx.cdg.co.th\/home\/docs\/android\/map\/identifycallback\/","title":{"rendered":"IdentifyCallback"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"identifycallback\">IdentifyCallback<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"example-source-code\">Example Source Code<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>abstract class IdentifyCallback&lt;T> : retrofit2.Callback&lt;T> {\n\n    abstract fun onSuccess(response: JsonObject)\n\n    abstract fun onFailure(t: Throwable)\n\n    override fun onResponse(call: Call&lt;T>, response: Response&lt;T>) {\n        if (response.isSuccessful) {\n            val body = response.body()\n            val rawJson = body.toString()\n\n            val json: JsonObject =  JsonParser.parseString(rawJson).asJsonObject \n\n            if (json.get(JSON_RESULT) != null) {\n                onSuccess(json)\n            } else {\n                if(json.get(JSON_MESSAGE) != null){\n                    onFailure(Throwable(json.get(JSON_MESSAGE).asString))\n                } else onFailure(Throwable(\"Data not found\"))\n            }\n        } else onFailure(Throwable(response.message() ?: \"Response Invalid\"))\n    }\n\n    override fun onFailure(call: Call&lt;T>, t: Throwable) {\n        onFailure(t)\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #0000FF\">abstract<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">class<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">IdentifyCallback<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">T<\/span><span style=\"color: #000000\">&gt; : <\/span><span style=\"color: #267F99\">retrofit2<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #267F99\">Callback<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">T<\/span><span style=\"color: #000000\">&gt; {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0000FF\">abstract<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">fun<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">onSuccess<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">response<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">JsonObject<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0000FF\">abstract<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">fun<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">onFailure<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">t<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">Throwable<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0000FF\">override<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">fun<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">onResponse<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">call<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">Call<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">T<\/span><span style=\"color: #000000\">&gt;, <\/span><span style=\"color: #001080\">response<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">Response<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">T<\/span><span style=\"color: #000000\">&gt;) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\"> (<\/span><span style=\"color: #001080\">response<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">isSuccessful<\/span><span style=\"color: #000000\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">            <\/span><span style=\"color: #001080\">val<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">body<\/span><span style=\"color: #000000\"> = <\/span><span style=\"color: #001080\">response<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">body<\/span><span style=\"color: #000000\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">            <\/span><span style=\"color: #001080\">val<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">rawJson<\/span><span style=\"color: #000000\"> = <\/span><span style=\"color: #001080\">body<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">toString<\/span><span style=\"color: #000000\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">            <\/span><span style=\"color: #001080\">val<\/span><span style=\"color: #000000\"> json: <\/span><span style=\"color: #001080\">JsonObject<\/span><span style=\"color: #000000\"> =  <\/span><span style=\"color: #001080\">JsonParser<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">parseString<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">rawJson<\/span><span style=\"color: #000000\">).<\/span><span style=\"color: #001080\">asJsonObject<\/span><span style=\"color: #000000\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">            <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\"> (<\/span><span style=\"color: #001080\">json<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">get<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0070C1\">JSON_RESULT<\/span><span style=\"color: #000000\">) != <\/span><span style=\"color: #0000FF\">null<\/span><span style=\"color: #000000\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">                <\/span><span style=\"color: #795E26\">onSuccess<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">json<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">            } <\/span><span style=\"color: #AF00DB\">else<\/span><span style=\"color: #000000\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">                <\/span><span style=\"color: #AF00DB\">if<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">json<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">get<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0070C1\">JSON_MESSAGE<\/span><span style=\"color: #000000\">) != <\/span><span style=\"color: #0000FF\">null<\/span><span style=\"color: #000000\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">                    <\/span><span style=\"color: #795E26\">onFailure<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #795E26\">Throwable<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">json<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">get<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #0070C1\">JSON_MESSAGE<\/span><span style=\"color: #000000\">).<\/span><span style=\"color: #001080\">asString<\/span><span style=\"color: #000000\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">                } <\/span><span style=\"color: #AF00DB\">else<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">onFailure<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #795E26\">Throwable<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #A31515\">&quot;Data not found&quot;<\/span><span style=\"color: #000000\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        } <\/span><span style=\"color: #AF00DB\">else<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">onFailure<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #795E26\">Throwable<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">response<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">message<\/span><span style=\"color: #000000\">() ?: <\/span><span style=\"color: #A31515\">&quot;Response Invalid&quot;<\/span><span style=\"color: #000000\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0000FF\">override<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">fun<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">onFailure<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">call<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">Call<\/span><span style=\"color: #000000\">&lt;<\/span><span style=\"color: #267F99\">T<\/span><span style=\"color: #000000\">&gt;, <\/span><span style=\"color: #001080\">t<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">Throwable<\/span><span style=\"color: #000000\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #795E26\">onFailure<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">t<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n","protected":false},"featured_media":0,"parent":2835,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-2879","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/2879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/comments?post=2879"}],"version-history":[{"count":3,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/2879\/revisions"}],"predecessor-version":[{"id":2882,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/2879\/revisions\/2882"}],"up":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/2835"}],"wp:attachment":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/media?parent=2879"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs_category?post=2879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}