o
    TLew;                     @   s   d dl mZ d dlmZmZ d dlmZ d dlZd dlZd dlm	Z	m
Z
 d dlmZmZ d dlmZ d dlZd dlmZmZ G d	d
 d
ZG dd deZG dd deZdS )    )render)HttpResponseJsonResponse)ViewN)credentials	firestore)FIREBASE_CREDENTIALS_PATHSCHEDULE_TIME)	messaging)datetime	timedeltac                   @   sF   e Zd Zdd Zdd Zdd Zdd ZdddZdd Zdd Z	d	S )FirebaseManagerc                 C   s(   t jstt}t | t | _d S N)	firebase_admin_appsr   Certificater   initialize_appr   clientdb)selfcred r   0/home/api_server/kakao_chatbot/userInfo/views.py__init__   s   

zFirebaseManager.__init__c                 C      d S r   r   r   r   r   r   authentication+      zFirebaseManager.authenticationc                 C   s$   | j d|d }|| d S )NPendingUsers
Request_id)r   
collectiondocumentset)r   paramsr!   r   r   r   setData-   s   zFirebaseManager.setDatac                 C   sF   | j d}|dd|d}zt| jW S  ty"   Y d S w )Nr   Request_namez==   )r   r    wherelimitnextstreamidStopIteration)r   	user_namepending_user_refqueryr   r   r   getId0   s   zFirebaseManager.getIdNKAKAOc                 C   s   | j |}|ddd }i }|d u r(|D ]}| }|d||j< q|S |D ]}| }|j|v r=|d||j< q*|S )NfcmTokenz!= )r   r    r'   r*   to_dictgetr+   )r   r#   r    	users_ref	query_reffcm_token_dictdoc	user_datar   r   r   getToken7   s   
zFirebaseManager.getTokenc                 C   s   ddl m} | jd }g }|D ]1}| }||d |d }|jtd}t	d| t	d| ||d	 krC||d
 krC|
| q|S )Nr   )TimeManagerPromisePlacedatetime)schedule_timezsch Time : zcur Time : min_timemax_time)scheduler.viewsr<   r   r    r5   r4   parsingDatetimegetCurrentTimer	   printappend)r   r<   schedule_refschedule_dict_listr9   doc_dictschedule_datetimecurrent_datetimer   r   r   getScheduleE   s   


zFirebaseManager.getSchedulec                 C   sJ   | j d|}| }|jr!td | }|d}d|gS ddgS )NApprovedUserszPending User Foundr%   TFr3   )r   r    r!   r5   existsrF   r4   )r   user_idapproved_user_refapproved_userdatar-   r   r   r   	userCheckR   s   
zFirebaseManager.userCheck)Nr1   )
__name__
__module____qualname__r   r   r$   r0   r;   rM   rT   r   r   r   r   r      s    
r   c                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
setNameViewreturnNc                 C   s   t  | _d S r   )r   fmr   r   r   r   r   ^   s   zsetNameView.__init__c                 C   r   r   r   )r   requestr   r   r   r5   `   r   zsetNameView.getc                 C   s
  t |j}zt |d d d }|d }t| |d d d |d d d |d d d	 |d d d
 |d d d ||d d d |d d d d}t }|j|d dddddddddddddddd|d dd|d	 dd|d
 dd|d dd|dd |d dd!|d dgd"d#d$d%d&d'd$d(d&gd)d*	igid+}d,d-lm} | jj	
d. }g }	|D ]}
|
 }
|	|
d  qt|jd/|d d d | jj|	d0d1d2 t|d3d4W S  ty } zt| td5d6id7d4W  Y d }~S d }~ww )8Nactionr#   Request_birthvalueuserRequestuserr+   r%   Request_student_idRequest_interestRequest_motivationRequest_phone_numberRequest_gender)r   r%   ra   rb   rc   r]   rd   re   )r#   z2.0outputsitemCardu   확인 후 제출해주세요r3   )titledescriptionz/https://i.ibb.co/bvS3b7w/cats-logo-bg-800x2.pngi   )imageUrlwidthheightCATS)rh   rj   u   이름u   학번u   관심 분야u   지원 동기u   생년월일u   전화번호u   성별rightu   제출하기block653508bc4bafae5aad4a01b7)labelr\   blockIdu	   재제출6510e5b76faba427636621b1
horizontal)	
imageTitlerh   ri   	thumbnailprofileitemListitemListAlignmentbuttonsbuttonLayout)versiontemplater   )pushNotificationViewadminu   신규 회원 등록r1   )r#   r    )	fcm_token   )statusmessage	KEY_ERRORi  )jsonloadsbodyrF   r   r$   	fcm.viewsr~   rZ   r   r    r5   r4   rG   multicastMessager;   r   	Exception)r   r[   rS   r   r#   fbreponseBodyr~   
admin_docs
admin_uidsr9   er   r   r   postb   s   
`
RzsetNameView.post)rY   N)rU   rV   rW   r   r5   r   r   r   r   r   rX   ]   s    
rX   c                   @   s   e Zd Zdd ZdS )	getIdViewc                 C   sL   t |j}|d d d }t }||}|d ur td|iS tddiS )Nr\   r#   namer+   r   z	KEY ERROR)r   r   r   r   r0   r   )r   r[   rS   r   tmprP   r   r   r   r   4  s   
zgetIdView.postN)rU   rV   rW   r   r   r   r   r   r   3  s    r   )django.shortcutsr   django.httpr   r   django.viewsr   r   r   r   r   kakao_chatbot.settingsr   r	   r
   r   r   r   rX   r   r   r   r   r   <module>   s    N W