package
com.psw.pswinstagram.navigation.util;
import
android.util.Log;
import
androidx.annotation.NonNull;
import
com.google.android.gms.tasks.OnCompleteListener;
import
com.google.android.gms.tasks.Task;
import
com.google.firebase.firestore.DocumentSnapshot;
import
com.google.firebase.firestore.FirebaseFirestore;
import
com.google.gson.Gson;
import
com.psw.pswinstagram.navigation.model.PushDTO;
import
java.io.IOException;
import
okhttp3.Call;
import
okhttp3.Callback;
import
okhttp3.MediaType;
import
okhttp3.OkHttpClient;
import
okhttp3.Request;
import
okhttp3.RequestBody;
import
okhttp3.Response;
public
class
FcmPush {
private
MediaType JSON = MediaType.parse(
"application/json; charset=utf-8"
);
private
String serverKey =
"AIzaSyBzf2ainfRVjomSeGAKAiMZplLrJKbrZNk"
;
private
Gson gson;
private
OkHttpClient okHttpClient;
public
static
final
FcmPush fcmPush =
new
FcmPush();
public
FcmPush(){
gson =
new
Gson();
okHttpClient =
new
OkHttpClient();
}
public
void
sendMessage(String destinationUid,String title,String message){
FirebaseFirestore.getInstance()
.collection(
"pushTokens"
)
.document(destinationUid)
.get().addOnCompleteListener(
new
OnCompleteListener<DocumentSnapshot>() {
@Override
public
void
onComplete(
@NonNull
Task<DocumentSnapshot> task) {
if
(task.isSuccessful()){
String token = task.getResult().get(
"pushToken"
).toString();
PushDTO pushDTO =
new
PushDTO();
pushDTO.setTo(token);
pushDTO.setTitle(title);
pushDTO.setBady(message);
RequestBody body = RequestBody.create(JSON,gson.toJson(pushDTO));
Request request =
new
Request.Builder()
.addHeader(
"Content-Type"
,
"application/json"
)
.addHeader(
"Authorization"
,
"key="
+serverKey)
.url(url)
.post(body)
.build();
okHttpClient.newCall(request).enqueue(
new
Callback() {
@Override
public
void
onFailure(Call call, IOException e) {
Log.e(
"메세지TAG"
,
"onResponse: 실패"
);
}
@Override
public
void
onResponse(Call call, Response response)
throws
IOException {
Log.e(
"메세지TAG"
,
"onResponse: 성공"
);
}
});
}
}
});
}
}