Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement remaining endpoints for python-icat #145

Closed
5 tasks done
stuartpullinger opened this issue Jun 17, 2020 · 0 comments · Fixed by #171
Closed
5 tasks done

implement remaining endpoints for python-icat #145

stuartpullinger opened this issue Jun 17, 2020 · 0 comments · Fixed by #171
Assignees

Comments

@stuartpullinger
Copy link
Contributor

stuartpullinger commented Jun 17, 2020

  • count for the get all endpoint
  • get one
  • create entity/row
  • update
  • delete
@MRichards99 MRichards99 self-assigned this Sep 29, 2020
MRichards99 added a commit that referenced this issue Oct 8, 2020
- Currently breaks when you add a distinct filter so that needs fixing
MRichards99 added a commit that referenced this issue Oct 8, 2020
MRichards99 added a commit that referenced this issue Oct 8, 2020
- Python ICAT backend doesn't need this conversion, so this has been moved into the relevant DB backend helper function
MRichards99 added a commit that referenced this issue Oct 8, 2020
…request

- This works some of the time, but not all as of this commit
MRichards99 added a commit that referenced this issue Oct 8, 2020
…H request

- Related entities (i.e. includes="1") must be retrieved when updating data to avoid an IcatException which highlights that a related entity field is trying to be set to null which is invalid
MRichards99 added a commit that referenced this issue Oct 8, 2020
- This has only been tested on /investigations so far, so further changes may be needed when I test on the rest of the entities
MRichards99 added a commit that referenced this issue Oct 8, 2020
- This is required for created ICAT objects in Python ICAT
MRichards99 added a commit that referenced this issue Oct 8, 2020
- I've also made use of this in create_entities() which made me notice that said parameter wasn't used
MRichards99 added a commit that referenced this issue Oct 8, 2020
- This code needs to be recursed over, since multiple 'levels' of mandatory MANY relationships don't happen currently and this results in a database related error
MRichards99 added a commit that referenced this issue Oct 8, 2020
- Recursing through related objects is no longer required
MRichards99 added a commit that referenced this issue Oct 8, 2020
- In the future, these could be used by other backends so I've moved these 3 functions into their own utility class. This change helps clean up common.icat.helpers a bit which is another reason this change has been made
MRichards99 added a commit that referenced this issue Oct 8, 2020
MRichards99 added a commit that referenced this issue Oct 9, 2020
- This helps to make these types of requests more snappy, without impacting the output
MRichards99 added a commit that referenced this issue Oct 9, 2020
- This functionality has been replaced with a limit filter as per the previous commit
MRichards99 added a commit that referenced this issue Oct 9, 2020
- This will help clean up common.icat.helpers and move filter-specific functions to the relevant file
- This commit also adds a function that calls other functions in its class to reduce code duplication
- This is a 'leave the code in a better state than you found it' kind of commit
MRichards99 added a commit that referenced this issue Nov 20, 2020
- This will prevent an issue where you're updating multiple pieces of data and the request returns a 400, you don't know which pieces of data have been updated
MRichards99 added a commit that referenced this issue Nov 20, 2020
…ted in if POST returns an error

- Similar purpose to the previous commit but expanded so changes are 'rolled back' if an exception occurs on the .create()
MRichards99 added a commit that referenced this issue Nov 20, 2020
- This is a solution to a comment made on the PR for this branch
- This solution doesn't need to be applied to update by ID because if an error occurs there, there's no other data that could possibly be updated
MRichards99 added a commit that referenced this issue Jan 5, 2021
- The 'accepted_date_format' constant is removed since it's no longer used. Datetime to string conversion will convert to ISO format and string to datetime can be converted using the same format (allowing for easy-tripping of datetimes for API users).
MRichards99 added a commit that referenced this issue Jan 5, 2021
- Remove rounding on the expireDateTime value and ensure it always returns a consistent, accurate result
- Change the keys to camelCase, in line with the rest of the API
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants