o
    h                     @   s   d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ ej	Z
ejZejZejZejZdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)datetimezone)Configc               
   C   sJ   zt jtttd} | W S  ty$ } ztd| W Y d }~d S d }~ww )N)Zapi_urlz?An error occured while instantiating the Contentful CDA client.)
contentfulClientSPACE_IDCDA_ACCESS_TOKENCDA_API_HOST	Exceptionloggingerrorcliente r   A/home/cmiss/Jenkins/workspace/SPARC-API/app/metrics/contentful.pyinit_cf_cda_client   s   r   c               
   C   sD   zt t} | W S  ty! } ztd| W Y d }~d S d }~ww )Nz?An error occured while instantiating the Contentful CMA client.)contentful_managementr   CMA_ACCESS_TOKENr
   r   r   r   r   r   r   init_cf_cma_client    s   r   c                 C   s   |  ddi}|jS )Ncontent_typeZ
sparcAward)entriestotal)r   responser   r   r   get_funded_projects_count,   s   r   c                 C   s   t  }|| S )N)r   entry)idr   r   r   r   get_cda_client_entry3   s   
r   c              	   C   s<   dt j dt j dt j d|  d	}tj|d}| d S )Nhttps:///spaces/z*/environments/master/entries?access_token=&content_type=
&limit=999urlitemsr   CTF_CMA_API_HOSTCTF_SPACE_IDCTF_CMA_ACCESS_TOKENrequestsgetjsonZcontent_type_idr#   r   r   r   r   get_all_entries8   s   $r-   c              	   C   s:   dt j dt j dt j d|  d	}t|}| d S )Nr   r   z1/environments/master/public/entries?access_token=r    r!   r$   r%   r,   r   r   r   get_all_published_entries>   s   $
r.   c                 C   s4   dt j dt j d|  dt j }t|}| S )Nr   r   z$/environments/master/public/entries/?access_token=r%   r   r#   r   r   r   r   get_cma_published_entryD   s   "
r1   c                 C   s6   dt j dt j d|  dt j }tj|d}| S )Nr   r   /environments/master/entries/r/   r"   r%   r0   r   r   r   get_cma_entryJ   s   "r3   c                 C   s`   t |d d }dtj dtj d| }dtj ddt| t|d	}tj|||d
}| S )Nsysversionr   r   r2   Bearer z-application/vnd.contentful.management.v1+jsonzapplication/json)AuthorizationzContent-TypeAcceptzX-Contentful-Content-TypeX-Contentful-Version)headersr#   r+   )	r3   r   r&   r'   r(   strr)   putr+   )r   r   datar5   r#   hedr   r   r   r    update_entry_using_json_responseR   s   r?   c                 C   sF   dt j dt j d|  d}dt j t|d}tj||d}| S )Nr   r   r2   z
/publishedr6   )r7   r9   )r:   r#   )r   r&   r'   r(   r;   r)   r<   r+   )r   r5   r#   r>   r   r   r   r   publish_entryf   s   r@   c                 C   s<   t | d d dkr| d d }d|d v od|d v S dS )Nr$   r      featuredDatasetsfieldsdateToClearFeaturedDatasetsF)len)resultfeatured_datar   r   r   _have_featured_datasetst   s   rH   c            
      C   s   dt j dt j d} ddt j i}ddd}tj||| d	}g }|jtjjkrU|	 }t
|rU|d
 d }|d d }|d d }|d urUt }t|}	|	|k rUg }|S )Nr   r   z/environments/master/entriesr7   r6   Zhomepagez:fields.featuredDatasets,fields.dateToClearFeaturedDatasets)r   select)r:   paramsr#   r$   r   rC   rD   rB   )r   CTF_CDA_API_HOSTr'   CTF_CDA_ACCESS_TOKENr)   r*   status_codecodesokr+   rH   r   todayfromisoformat)
r#   r>   qr   Zfeatured_datasets	json_datarG   Zdate_to_clearZtime_nowZexpiration_timer   r   r   get_featured_datasets|   s0   

rT   )r   r   r   r)   datetimer   r   
app.configr   rK   r	   r&   ZCMA_API_HOSTrL   r   r(   r   r'   r   r   r   r   r   r-   r.   r1   r3   r?   r@   rH   rT   r   r   r   r   <module>   s.    