/* Ċ MIT ĠLicense Ċ Ċ Copyright Ġ( c ) Ġ 2 0 1 7 ĠMar cel ĠB rag het to Ċ Ċ Permission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ of Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ in Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ to Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ copies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ furnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ċ The Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ copies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ċ THE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ IMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ FITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ AUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ LIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ OUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ SOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġnotifications . handler Ċ Ċ import Ġnotifications . amazon . Amazon Ċ import Ġnotifications . framework . Platform Ċ import Ġnotifications . framework . Response Builder Ċ import Ġnotifications . framework . parse Ċ import Ġjavax . ws . rs . Cons umes Ċ import Ġjavax . ws . rs . POST Ċ import Ġjavax . ws . rs . Path Ċ import Ġjavax . ws . rs . Produces Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjavax . ws . rs . core . Response Ċ Ċ /** Ċ Ġ* ĠThis Ġhandler Ġdemonstrates Ġhow Ġa Ġclient Ġdevice Ġcould Ġ' register ' Ġitself Ġto Ġour Ġserver Ġwith Ġits Ġpush Ċ Ġ* Ġnotification Ġtoken . ĠBecause ĠAmazon Ġrequires Ġknowledge Ġof Ġwhich Ġplatform Ġtokens Ġbelong Ġto , Ġthe Ġclient Ċ Ġ* Ġneeds Ġto Ġsupply Ġits Ġplatform Ġon Ġregistration . Ċ Ġ* Ċ Ġ* ĠIn Ġthis Ġexample , Ġwe Ġare Ġsim ulating Ġa Ġparticular Ġ' userId ' Ġregistering , Ġto Ġcreate Ġan Ġassociation Ġto Ċ Ġ* Ġa Ġpret end Ġ' user ' Ġwith Ġthe Ġgiven Ġpush Ġnotification Ġtoken . Ċ Ġ*/ Ċ @ Path ("/ register ") Ċ class ĠRegistration Handler Ġ{ ĊĠĠĠ Ġdata Ġclass ĠRequest Body ( val Ġplatform : ĠString , Ġval ĠuserId : ĠString , Ġval Ġtoken : ĠString ) ĊĊĠĠĠ Ġ@ POST ĊĠĠĠ Ġ@ Cons umes ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġfun Ġregister Token ( json : ĠString ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġjson . parse < RequestBody >() ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( platform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . IOS . json Key Ġ-> Ġif Ġ( Amazon . register EndPoint ( Platform . IOS , ĠuserId , Ġtoken )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Builder . success (" iOS Ġtoken Ġregistered Ġsuccessfully ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Builder . internal ServerError (" iOS Ġtoken Ġfailed Ġto Ġupdate ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . ANDROID . json Key Ġ-> Ġif Ġ( Amazon . register EndPoint ( Platform . ANDROID , ĠuserId , Ġtoken )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Builder . success (" Android Ġtoken Ġregistered Ġsuccessfully ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Builder . internal ServerError (" Android Ġtoken Ġfailed Ġto Ġupdate ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse Builder . bad Request (" Missing Ġvalid Ġplatform Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠResponse Builder . bad Request (" Bad Ġregistration Ġrequest Ġor Ġrequest ") ĊĠĠĠ Ġ} Ċ } Ċ